13

我正在使用以下代码来自定义我的选择下拉箭头:

HTML

<span class="selectWrapper">
    <select id="rowselect" class="pageinfoselect input-mini">
        <option>...</option>
    </select>
</span>

CSS

span.selectWrapper {
    position: relative;
    display: inline-block;
          width:65px;
}

span.selectWrapper select {
    display: inline-block;
    padding: 4px 3px 3px 5px;
    margin: 0;
    font: inherit;
    outline:none; /* remove focus ring from Webkit */
    line-height: 1.2;
    background: #f5f5f5;
    height:30px;
    color:#666666;
    border:1px solid #dddddd;
}




/* Select arrow styling */
span.selectWrapper:after {
    content: url("../images/arrow_down.png");
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    line-height: 30px;
    padding: 0 7px;
    background: #f5f5f5;
    color: white;
    border:1px solid #dddddd;
    border-left:0px;
}

这可以正常工作并替换默认的下拉箭头,但问题是箭头图像不可点击。如果我单击选择框,它会打开,但我希望它在我单击箭头图像时也能打开

4

1 回答 1

45

添加以下规则

pointer-events:none;

编辑:

应该注意的是,IE 还不支持此属性(尽管根据caniuse - IE11 将支持)

但是,如果您仍然想要这种方法,您可以使用 Modernizer 或条件注释(对于 IE < 10)和这个 css hack(对于 IE10)使 IE 恢复到内置的标准 arrow

/*target Internet Explorer 9 and Internet Explorer 10:*/
@media screen and (min-width:0\0) { 
    span.selectWrapper:after
    {
        display:none;
    }
}

但是,对此有一种解决方法(以及不同的解决方案),我在此处的回答中提到了这一点-其中还包含此 Codepen

于 2013-07-23T13:47:00.980 回答