html - Firefox::-moz-selection 选择器错误(?)有解决方法吗?

标签 html firefox css css-selectors

我在一个拥有大量颜色样式的网站上工作,大约有 250 行 CSS 来定义 7 种配色方案中的一种,因此尽可能将各种颜色规则分组很重要。

当我尝试堆叠与已弃用的 CSS3 ::selection 伪元素相关的选择器时,Firefox 4 的最新 RC 表现不佳。

这个有效:

.green ::-moz-selection {
    /* 'Pure Hue' Color */
    background-color: #62BA21;
    color: white;
}

但是一旦我尝试与 webkit 选择器共享规则,它就会崩溃。

不适用于 FireFox:

.green ::selection, .green ::-moz-selection {
    /* 'Pure Hue' Color */
    background-color: #62BA21;
    color: white;
}

我知道他们可能不会解决这个错误,因为 ::selection 不再出现在工作草案中,但我更愿意,如果我不必再膨胀我的 CSS它已经是这个怪癖了。

最佳答案

Firefox 似乎根本不理解 ::selection(因此需要以供应商为前缀的 ::-moz-selection),所以它忽略了遇到无法识别的选择器 per the spec .

浏览器不理解一组中的一个或多个选择器的常见解决方法是拆分/复制规则集:

/* Firefox sees this */
.green ::-moz-selection {
    background-color: #62BA21;
    color: white;
}

/* Other browsers see this */
.green ::selection {
    background-color: #62BA21;
    color: white;
}

事实上,在这种情况下,这是您唯一可以做的事情,即您将不得不忍受这种轻微的膨胀。

jsFiddle demo

关于html - Firefox::-moz-selection 选择器错误(?)有解决方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5302172/

相关文章:

html - 第二个 flex 元素的元素也应该并排排列

javascript - 如何停止这个移动的div

css - 旋转变换在 FF 中无法正常工作,在 IE 中根本无法工作

javascript - HTML+JQuery 均衡器条与底部/中间对齐

jquery - 将 li 添加到 ul 的中间(jquery)

html - div 最右边的列在小屏幕上向下推

html - 将我的产品列表排列成行

firefox - 作为一名程序员,如何报告我在 Firefox 的核心 Gecko 浏览器引擎行为中发现的错误

javascript - 火狐扩展开发 : How to set an observer only once

javascript - 没有滚动条的 CSS 可拖动导航