gpt4 book ai didi

CSS :after content below a select element causes click not to work

转载 作者:技术小花猫 更新时间:2023-10-29 10:19:29 25 4
gpt4 key购买 nike

我有这个(简化的)css 用于选择元素以摆脱特定于浏览器的外观

.select{
display:inline-block;
position:relative;
}
.select:after{
position:absolute;
bottom:0;right:0;
content:'\2193';
}
select{
appearance:none; (-moz and -webkit too)
width:100%;
height:100%;
}

(最好在 http://jsfiddle.net/kwpke3xh/ 中看到)

body{
background:#eef;
font-family:sans-serif;
}
.select{
display:inline-block;
background-color:#fff;
border-radius:.5em;
border:.1rem solid #000;
color:#013;
width:8em;
height:1.5em;
vertical-align:middle;
position:relative;
}
.select:after{
position:absolute;
bottom:.15em;top:.15em;right:.5rem;
content:'\2193';
}
select{
-webkit-appearance:none;
-moz-appearance:none;
appearance:none;
font:inherit;
border:none;
background-color:transparent;
color:inherit;
width:100%;
height:100%;
padding:0 .5em;
}
<span class="select">
<select>
<option>A</option>
<option>B</option>
</select>
</span>

它看起来不错,除了 Firefox 仍然显示箭头(如描述的 Firefox 30.0 - -moz-appearance: none not working )

唯一的技术问题是,当我点击选择元素时,它会显示选项元素,但如果我直接点击箭头,则不会。

有没有办法避免这种情况?

最佳答案

最简单的 CSS 解决方案是添加 pointer-events: none到伪元素。这样做时,您可以点击该元素,因为鼠标事件已被删除。

Updated Example

.select:after {
position:absolute;
bottom:.15em;
top:.15em;
right:.5rem;
content:'\2193';
pointer-events: none;
}

(只需考虑 browser support for the property。)

关于CSS :after content below a select element causes click not to work,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25777599/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com