一个影响文本选择的超奇怪的 CSS Bug

Avatar of Chris Coyier
Chris Coyier

DigitalOcean 为您旅程的每个阶段提供云产品。 立即开始使用 200 美元的免费信用额度!

您知道您可以使用 ::selection(某种程度上)来设置选中文本的样式吗?好吧,Jeff Starr 发现了一个非常奇怪的 CSS Bug。

如果您

  1. 将该选择器留空
  2. 从外部样式表(而不是 <style> 块)链接它

选择文本将完全没有样式。😳😬😕

换句话说,如果您使用 <link rel="stylesheet" ...> 加载包含这些*空*选择器的 CSS

::-moz-selection {
}
::selection {
}

那么文本*看起来*是不可选择的。您实际上仍然可以选择文本,所以它有点像您使用了 ::selection { background: transparent; } 而不是 user-select: none;

大多数浏览器(Safari 是唯一例外)都以这种方式表现,这使得它看起来像是规范中规定的,但我认为这是一个 Bug。一个没有任何属性的选择器应该基本上被忽略,而不是做一些如此强硬的事情。

Jeff 做了一个演示。我也做了同样的操作来确认这一点。

查看 CodePen 上 Chris Coyier (@chriscoyier) 的 Pen
不可见的文本选择 Bug

CodePen 上。