我正在尝试<select>
仅使用CSS设置元素的下拉箭头的样式,它在Chrome / Safari中非常有效:
select {
-webkit-appearance: button;
-webkit-border-radius: 2px;
-webkit-box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.1);
-webkit-padding-end: 20px;
-webkit-padding-start: 2px;
-webkit-user-select: none;
background-image: url('./select-arrow1.png') ;
background-position: center right;
background-repeat: no-repeat;
border: 1px solid #AAA;
margin: 0;
padding-top: 2px;
padding-bottom: 2px;
width: 200px;
}
如在这里看到的那样呈现精美
按照这种逻辑,我要做的唯一使它在Firefox中工作的就是将所有-webkit-*
内容添加为-moz-*
:
-moz-appearance: button;
-moz-border-radius: 2px;
-moz-box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.1);
-moz-padding-end: 20px;
-moz-padding-start: 2px;
-moz-user-select: none;
它适用于99%,唯一的问题是默认下拉箭头不会消失,而是停留在背景图片的顶部,如下所示
似乎-moz-appearance: button;
不适用于某个<select>
元素。也-moz-appearance: none;
没有影响到删除默认的下拉箭头。
那么-moz-appearance
,删除默认下拉箭头的正确值是什么?
更新:
2014年12月11日:停止发明新的hack。经过4年半的时间,-moz-appearance:none
从Firefox 35开始可以使用。尽管moz-appearance:button
它仍然坏了,但是您仍然不需要使用它。这是一个非常基本的工作示例。
2014年4月28日:提到的CSS hack工作了几个月,但自2014年4月开始以来,此漏洞在所有平台上每晚都重新出现到Firefox 31.0.a1中。