我非常喜欢使用::selection
和::-moz-selection
来修改一个网站 - 我讨厌默认的蓝白色!
然而,我发现一件让我感到困惑的小事:我不能将::selection
和::-moz-selection
放在同一个CSS规则中,如下所示:
::selection, ::-moz-selection {
background:#8A1920;
color:#FFFF;
}
我觉得这很烦人,因为这意味着如果我想改变我的背景颜色(或其他一些选择方式),我必须编辑两个单独的规则。它也违反了我几乎虔诚地遵循的政策:D.R.Y。 (不要重复)。
我在Chrome 28,Chrome Canary 30,Firefox 22,Firefox 23,IE 9和IE 10中对此进行了测试,它们都得到了相同的结果。这里出了什么问题?
如果他们必须保持分开,有没有办法让他们进一步加入?类似的东西:
.selected {
background:#8A1920;
color:#FFF;
}
::selection {
@copy-from(.selected); /* I know this line is completely made up */
}
::-moz-selection {
@copy-from(.selected);
}
真的很有用。
答案 0 :(得分:4)
这来自文档:
Gecko是唯一需要前缀的引擎。由于这个事实 CSS解析规则要求在删除整个规则时 遇到无效的伪元素,必须有两个单独的规则 书面::: - moz-selection,:: selection {...}。规则是 放在非Gecko浏览器上,因为:: - moz-selection对它们无效。
https://developer.mozilla.org/en-US/docs/Web/CSS/::selection