更改select标签的默认图标后,单击下拉图标无法填充下拉列表

3

我有一段使用 select 标签的 html 代码。我需要用新的Segoe图标覆盖默认的下拉菜单图标。我使用以下代码实现了这个功能:

.select {
  border: 1px solid #ccc;
  overflow: hidden;
  height: 40px;
  width: 240px;
  position: relative;
  display: block;
}

select {
  height: 40px;
  padding: 5px;
  border: 0;
  font-size: 16px;
  width: 240px;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

.select:after {
  content: "\e0e5";
  font-family: segoe mdl2 assets;
  color: #000;
  padding: 12px 8px;
  position: absolute;
  right: 0;
  top: 0;
  background: red;
  z-index: 1;
  text-align: center;
  width: 10%;
  height: 100%;
  box-sizing: border-box;
}
<link href="http://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css" rel="stylesheet" />
<label class="select">
    <select name="email" id="email">
        <option>aaaa1</option>
        <option>aaaa2</option>
        <option>aaaa3</option>
        <option>aaaa4</option>
        <option>aaaa5</option>
        <option>aaaa6</option>
    </select>
</label>

我的问题是,当点击新的下拉图标时,下拉菜单不会弹出。因为它就像是覆盖在选择选项标签上的一个图标。我尝试使用z-index,但它将图标完全移到后面。有人能提供解决方案吗?


也许尝试将其设置为背景图像。 - Viira
2个回答

4
我找到了解决办法。通过添加CSS属性。
.select:after { 
    pointer-events: none;   
}

除了上述所有CSS属性外,它也可以正常工作。

1

修改一些 CSS

select{
    height: 40px;
    padding: 5px;
    border: 0;
    font-size: 16px;
    width: 240px;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    z-index:1; /*Add Z-index*/
    position:relative; /*Add Position*/
    background:transparent; /*Add Background*/
}
.select:after {
    content:"\e0e5";
    font-family: segoe mdl2 assets;
    color: #000;
    padding: 12px 8px;
    position: absolute;
    right: 0;
    top: 0;
    background: red;
    /*z-index:1;*/ /*Remove Z-index */
    text-align: center;
    width: 10%;
    height: 100%;
    box-sizing: border-box;
}

https://jsfiddle.net/yqmb3wxL/


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接