17370845950

如何通过css::selection改变文本选中样式
通过::selection伪元素可自定义文本选中样式,支持color和background-color等属性,如设置白色文字蓝色背景;需注意兼容性可添加::-moz-selection前缀,且仅限特定CSS属性使用,避免影响可读性。

在网页中,当用户选中文本时,默认的选中样式通常是蓝色背景。通过 CSS 的 ::selection 伪元素,你可以自定义选中状态下的文本颜色和背景色,让页面更具个性和可读性。

基本语法

::selection 用于设置被用户选中的文本部分的样式。它支持以下常用属性:

  • color:改变选中文字的颜色
  • background-color:设置选中区域的背景色
  • text-shadow:为选中文字添加阴影(可选)

示例代码:

::selection {
  color: #fff;
  background-color: #007acc;
}

这段代码会让所有被选中的文本显示为白色文字、蓝色背景。

兼容性与前缀

虽然现代浏览器普遍支持 ::selection,但为了兼容一些旧版本浏览器,建议加上私有前缀:

::-moz-selection {
  color: #fff;
  background-color: #007acc;
}

::selection {
  color: #fff;
  background-color: #007acc;
}

注意:Firefox 以前使用 ::-moz-selection,但现在新版已统一支持标准写法,加前缀主要用于确保老版本兼容。

针对特定元素设置选中样式

你也可以只为某个元素或类定义特殊的选中效果。比如只想让标题的选中样式不同:

h1::selection {
  color: yellow;
  background-color: red;
}

这样只有 h1 标签内的文本被选中时,才会显示黄字红底,其他文本仍使用全局或默认样式。

注意事项

使用 ::selection 时需注意几点:

  • 只能应用有限的 CSS 属性,如 color、background-color、cursor 等,不支持 margin、padding 或字体大小等布局属性
  • 避免使用过于刺眼的颜色组合,影响可读性
  • 透明背景(transparent)是允许的,但某些浏览器可能表现不一致

基本上就这些。合理使用 ::selection 能提升用户体验,让界面更协调。不复杂但容易忽略。