【发布时间】:2011-10-10 21:18:30
【问题描述】:
我正在尝试仅使用 CSS 为 <select> 元素的下拉箭头设置样式,它在 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;
}
渲染精美as seen here
按照这种逻辑,要让它在 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%,唯一的问题是默认的下拉箭头不会消失,而是停留在背景图像的顶部 as seen here
看起来-moz-appearance: button; 不适用于<select> 元素。 -moz-appearance: none; 也无法移除默认的下拉箭头。
那么-moz-appearance 删除默认下拉箭头的正确值是多少?
更新:
2014 年 12 月 11 日:停止发明新的技巧。 4 年半之后,-moz-appearance:none 从 Firefox 35 开始就开始工作了。虽然moz-appearance:button 仍然坏掉了,但无论如何你都不需要使用它。 Here is a very basic working example.
2014 年 4 月 28 日:上面提到的 css hack 工作了几个月,但自 2014 年 4 月开始,这个错误又悄悄回到了所有平台上的 Firefox 31.0.a1 Nightly。
【问题讨论】:
-
只是为了让您知道该错误已在 Firefox 35 中修复 \o/
-
@MatTheCat 4.5 年后哇!与此同时,我换了 2 个女朋友、3 条狗和 2 套公寓。但我想我们必须感谢他们最终还是修复了一半。
-
这意味着