html - Firefox 30 不再隐藏选择框箭头

标签 html css firefox

我一直用的“绝招”:

select {
    -moz-appearance: none;
    text-indent: 0.01px;
    text-overflow: '';
}

在 FF 上做自定义选择框,但自版本 30 发布以来,这完全停止工作。我试图找出是否已弃用但找不到任何东西。是否有解决方法或其他替代方法?

最佳答案

更新

自 2015 年 1 月起,随着 Firefox 35 的发布,这又可以正常工作了。请参阅下面的答案以获取历史引用。




背景

使用的 hack 是这样的:

select {
    -moz-appearance: none;
    text-indent: 0.01px;
    text-overflow: '';
}

在我的测试中,在 FF 29 上,-moz-appearance:none; 没有任何影响。导致箭头框没有出现的是后两行。它说任何溢出都要用空字符串替换,然后它使用文本缩进导致 select 溢出。由于箭头框被呈现为单个元素,类似于单个字母,这导致它被空字符串替换。

发生了什么

Mozilla 的某人注意到,如果您在下拉列表 select 上填充,箭头不会改变大小。 According to the bug report ,此问题现已修复:

enter image description here

问题是这使箭头脱离了正常的 CSS 规则。我试过 paddingtext-indentmarginwhite-spacetext-wrap ,还有一些,我找不到任何会影响它的东西。 Elsewhere around the internet ,不幸的是,人们在说同样的话。

现在怎么办

  1. 我们有几个选择。您可以使用叠加层和 pointer-events:none 来根据需要设置下拉菜单的样式:Tutorial

  2. 您可以使用 Javascript 创建一个完全独立的下拉列表来替换 select:Tutorial

我们还可以观看 request on Firefox's Bugzilla ,并希望有一天他们会创造一种非 hacky 的方式来做到这一点。 请注意:不要去那里并开始发表关于想要它的评论。它被推迟的部分原因是人们大发雷霆。这可能有助于vote for the issue .


2014 年 9 月更新

现在是actively worked on对于火狐。提交了2个patch,等了一周的review。最有可能的情况是它进入了 FF35 Aurora,我们有几周的时间在截止日期之前对其进行审查和批准(Firefox 按照 6 周的发布时间表运行)。它也可能会被延迟,甚至理论上可能会被“提升”,这意味着在当前的 Aurora 和 Beta 版本中打补丁,以便更快地发布。


2014 年 10 月更新

这是怎么回事 officially resolved !有点儿。允许用户隐藏下拉箭头元素的补丁已经提交并将与 Firefox 35 一起发布。 2015 年 1 月。

这将只允许用户隐藏箭头。设计它的样式是另一个问题,它已被拆分到 another bug ticket 中。这将在未来考虑。


2015 年 1 月更新

现在已经修复了! Firefox 35 1 月 13 日发布,您现在可以使用 -moz-appearance:none 删除箭头。

关于html - Firefox 30 不再隐藏选择框箭头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23920990/

相关文章:

html - Bootstrap垂直对齐

firefox - 如何使 Vimperator/Pentadactyl 在全屏模式下保持状态行可见?

python - Ubuntu 在使用 Firefox 的系统启动时运行 python 脚本

html - 绘制具有透明背景的html

firefox - 如何使用 Firefox 扩展将选项卡栏移动到窗口底部?

javascript - Bootstrap 3 悬停时折叠

javascript - 输入范围更新值,同时更改值

javascript - html 是否在同一个对象上使用相同的 id

html - 在文本上进行精确填充

html - 添加按钮后包装尺寸增加