为什么CSS3伪::选择不会改变所有部分的颜色?

Nat*_*han 8 css css3 textselection pseudo-element

为什么CSS3伪元素selection不会改变突出显示的所有部分?正如您在此屏幕截图中看到的,我选择了部分页面,部分选项是默认的亮蓝色:

在此输入图像描述

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

::selection { background: #3B3B3B; color: #fff; }
::-moz-selection { background: #3B3B3B; color: #fff; }
Run Code Online (Sandbox Code Playgroud)

它似乎是输入(文本,复选框等)和白色空间的亮点不会改变.有谁知道这是为什么,有没有办法改变它的页面的每个部分,所以高亮颜色是一致的?我正在使用Chrome.

Thi*_*iff 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

  • 我很想提交一个新错误,因此使用了正确的术语(伪元素,而不是伪类). (3认同)