2012-01-15 50 views
8

为什么CSS3伪元素selection不会更改高亮的所有部分?正如你在这个画面我已经选定的页面的部分看,和选择的部分是默认的亮蓝色:为什么CSS3 pseudo :: selection不会更改所有部件的颜色?

enter image description here

这是我使用的CSS,它是在我的CSS文件顶部:

::selection { background: #3B3B3B; color: #fff; } 
::-moz-selection { background: #3B3B3B; color: #fff; } 

它看起来像投入(文本,复选框等)和空白的亮点不会改变。有谁知道这是为什么,有没有办法改变它的页的一部分,所以突出显示颜色是一致的?我正在使用Chrome。

回答

11

::selection伪元素不会在Chrome/Safari浏览器正常工作。 <input>元素将成为标准的高亮颜色。这是一个很旧,依然突出缺陷:

https://bugs.webkit.org/show_bug.cgi?id=38943

唯一的解决办法,我已经能够拿出使用contenteditable元素,而不是<input>元素。

这里是我创建了一个演示:http://jsfiddle.net/ThinkingStiff/FcCgA/
和后我写它:https://stackoverflow.com/a/8529323/918414

+0

啊,我明白了。谢谢你。希望webkit团队能尽快修复它,因为这是一个非常烦人的错误。顺便说一下,您是如何在您链接到上面的jsFiddle Demo上获得那个小堆栈溢出横幅的?我没有看到你的jsFiddle的HTML框中的任何地方的标记... – Nathan 2012-01-15 02:01:59

+0

@Nathan在HTML框中向下滚动。 – ThinkingStiff 2012-01-15 02:08:28

+0

哦。没有看到:P – Nathan 2012-01-15 02:34:08

相关问题