DigitalOcean 为您旅程的每个阶段提供云产品。立即开始使用 $200 免费信用额度!
用光标选择这句话。注意,当您选择文本时,背景颜色如何填充空格?您可以通过为 ::selection
设置样式来更改选定文本的背景颜色和颜色。为这个伪元素设置样式非常适合将用户选择的文本与网站的配色方案相匹配。
p::selection {
background: #fff;
color: #ff0000;
}

请注意,尽管 其他伪元素接受单个冒号,但此伪元素的语法中需要使用双冒号。
如上所见,您可以为单个元素设置 ::selection
的样式。您也可以通过将裸伪元素放在样式表中来为整个页面设置样式。
::selection { background: yellow; }
::selection
只能与三个属性一起使用。
color
background
(特别是background-color
、background-image
长手属性)text-shadow
如果您尝试使用列表中未列出的属性为 ::selection
设置样式,则该属性将被忽略。在列表中看到 background
可能很棘手,因为该属性仅在应用于 ::selection
时才会呈现颜色,它不会呈现背景图像或渐变。
也不要尝试这样做。
p::-moz-selection,
p::selection { color: red; }
当浏览器找到它们不理解的选择器部分时,它们会放弃整个选择器,因此这将始终失败。
::selection
最有用的用途之一是在选择时关闭 text-shadow
。text-shadow
可能与选择的背景颜色冲突,使文本难以阅读。设置 text-shadow: none;
使文本在选择时清晰易读。
::selection
花哨的 与 Sass 或任何其他预处理器配对,您可以使用 ::selection
创建非常酷的效果。选择以下演示中的文本。
您可能会注意到,在某些浏览器中,效果并不那么平滑。让我们将这个演示归类为:可能的事情,但可能只是为了好玩。
另一个愚蠢但有趣的技巧是 通过选定文本显示图像。
浏览器支持
此浏览器支持数据来自 Caniuse,其中包含更多详细信息。数字表示浏览器在该版本及更高版本上支持该功能。
台式机
Chrome | Firefox | IE | Edge | Safari |
---|---|---|---|---|
4 | 2* | 9 | 12 | 3.1 |
移动/平板
Android Chrome | Android Firefox | Android | iOS Safari |
---|---|---|---|
127 | 127 | 4.4 | 否 |
这里有一篇不错的文章,我的博客也值得一看 http://codeforwin.blogspot.in/
使用起来很不错
嗨。
我在锚点方面遇到了一些问题。我希望所有选定的区域都为红色,因此我添加了一个简单的
::selection{ background-color: red }
,一切都正常,但是当我向文档添加链接时,标签下方总是一条线,它仍然使用默认颜色。我认为没有必要在这里发布代码,因为这种情况在任何地方都会发生。谢谢。
嗨,
我知道它说这对 IOS 来说不起作用,但是有没有什么方法可以为 IOS 获取一个解决方法?我已经为所有其他浏览器完成了,但是我们也需要它用于 IOS。
此致,
Kay
抱歉。没有办法。
嗨,我在 mozilla Firefox 开发者版 39.0a2 (2015-04-22) 中遇到了这个页面的问题,当我向上滚动到带有绝对定位和黑色背景颜色的标题时,一个 div 会显示在顶部,我无法看到页面的其他元素。
但是当我向下滚动到“您如何看待完全在 JavaScript 中管理样式?”div 时,它会消失!
::selection 现在是 CSS 伪元素级别 4 工作草案的一部分。因此,它可能在大多数地方都能正常工作。
https://mdn.org.cn/en-US/docs/Web/CSS/::selection#Summary
我不确定这是否会永远需要,但这非常酷。
background: linear-gradient(to right, #EB3349 0%, #F45C43 50%);
不适用于 ::selection。有没有什么方法可以做到这一点?
Webkit 特定问题。
您是否注意到
::selection{ background-color: white }
不会 创建一个完全白色的背景?相反,它显示一个灰色背景 (#989898)似乎完全的白色 (#fff) 是禁止的。我的猜测是,这是为了确保选择足够可见:大多数页面都有白色背景,选择背景设置为相同的颜色将无法形成任何对比。
我在 Stack Overflow 上问了这个问题,到目前为止还没有引起太多兴趣 http://stackoverflow.com/questions/32820767/css-text-selection-styling-can-not-make-background-white
您有什么想法吗?您在 Webkit 浏览器中遇到相同的情况吗?
这是 Chrome 和 Safari 的问题。使颜色略微透明,例如
rgba(255,255,255,0.99)
,它(几乎)会显示为白色。它适用于所有颜色,不仅仅是白色 ;-)有人知道如何将
::selection
属性重置回浏览器默认值吗?我在使用 vuematerial 时遇到问题,它设置了一些自定义颜色。我已经阅读了该网站上许多文章,但其中大多数关于实际问题的介绍很少,或者写得不好,有时甚至毫无用处。但这篇文章非常好。我真的很喜欢它。它写得很好,也很生动。我觉得我学到了很多,还有更多学习的空间。