悠悠楠杉
网站页面
正文:
在网页设计中,文本选中效果往往被忽视,但一个精致的::selection样式能显著提升用户体验。当用户在页面上拖动鼠标选中文字时,默认的蓝底白字可能与你精心设计的配色方案格格不入。这时,CSS3提供的::selection伪元素就是你的秘密武器。
/* 基础用法示例 */
::selection {
background-color: #FFD700; /* 金色背景 */
color: #333; /* 深灰色文字 */
text-shadow: none; /* 去除文字阴影 */
}
这个简单的代码就能将默认的高亮色替换为土豪金配色。但::selection的潜力远不止于此,以下是几个实战技巧:
/* 标题匹配 */
.title-match::selection {
background: linear-gradient(to right, #FF416C, #FF4B2B);
}
/* 正文匹配 */
.content-match::selection {
background: #7BFF00;
color: #000;
}
.no-select {
user-select: none;
}
.no-select::selection {
background: transparent;
color: inherit;
}
::-moz-selection { /* Firefox专属前缀 */
background: #3D9970;
}
::selection {
background: rgba(61, 153, 112, 0.7);
}
需要注意的是,::selection对以下属性有效:
- color
- background-color
- text-shadow
- cursor
- outline
但尝试设置padding或font-size等属性会被浏览器忽略。在移动端使用时,建议测试不同设备的触摸选择行为,有些设备的长按选择可能不会触发::selection样式。
进阶技巧是结合CSS变量实现动态主题:
:root {
--highlight-bg: #6200EA;
--highlight-text: #FFFFFF;
}
@media (prefers-color-scheme: dark) {
:root {
--highlight-bg: #BB86FC;
--highlight-text: #121212;
}
}
::selection {
background: var(--highlight-bg);
color: var(--highlight-text);
}
最后提醒,过度设计选中效果可能适得其反。保持足够的对比度(WCAG建议至少4.5:1),避免使用快速闪烁的颜色,这些都能确保你的::selection样式既美观又实用。