在css中如何使用::selection自定义文字选中效果

::selection伪元素可自定义文本选中样式,常用background-color和color属性设置高亮效果,支持全局或特定元素的样式定义,如h1::selection改变标题选中颜色,需注意仅部分CSS属性生效且应保证文字可读性。

在CSS中,::selection 伪元素用于自定义用户选中文本时的高亮样式。通过它,可以改变选中文字的背景色、文字颜色、甚至添加一些简单的视觉效果,提升页面的交互体验。

基本语法与使用方式

::selection 可以应用于任何块级或内联元素中的可选中文本。最常见的是设置全局选中样式,也可以针对特定元素单独设置。

常用属性包括:
  • background-color:选中区域的背景色(最常用)
  • color:选中文本的颜色
  • text-shadow:文本阴影(部分浏览器支持)
  • cursor:鼠标光标样式(一般不生效)

示例:设置整个页面的选中样式

::selection {
  background-color: #ff6b6b;
  color: white;
}

为特定元素设置不同选中效果

如果只想对某个类或标签内的文本设置特殊选中样式,可以直接结合选择器使用。

例如,只对标题或强调文本设置不同效果:
h1::selection {
  background-color: yellow;
  color: black;
}

.highlight::selection {
  background-color: purple;
  color: #fff;
}

这样,只有 h1 标签或带有 .highlight 类的文本被选中时,才会显示对应的样式。

兼容性与注意事项

::selection 在现代浏览器中支持良好,但在老版本IE中不被支持(IE8及以下不支持)。另外需要注意:

  • 只能设置有限的CSS属性,如 background、color、outline 等,不能使用 margin、padding、font-size 等布局或尺寸属性
  • 建议始终提供良好的对比度,避免选中后文字难以阅读
  • 在深色背景下选中浅色文字时,尤其要注意背景与文字颜色的搭配

基本上就这些。合理使用 ::selection 能让页面更具个性,同时保持可用性。