javascript - 有没有办法使用 JavaScript 更改 ::selection (选定文本)的背景颜色?
问题描述
我想使用 HTML 按钮更改文本选择的背景。有没有办法::selection
使用 JavaScript 更改(选定文本)的背景颜色?
解决方案
通常,在无法通过 JS 直接更改伪元素设置的情况下,可以使用 JS 设置 CSS 变量。
因此,如果您的样式表中有这样的内容:
::selection {
background-color: var(--selcolor);
}
在你的 JS 中是这样的:
element.style.setProperty('--selcolor', selcolor)
它会起作用的。
这是一个小例子。它改变了 body 中的选择颜色变量:
function selChange(color) {
document.body.style.setProperty('--selcolor', color);
}
body {
--selcolor: yellow;
}
::selection {
background-color: var(--selcolor);
}
<button onclick="selChange('cyan');">Cyan</button>
<button onclick="selChange('magenta');">Magenta</button>
<button onclick="selChange('yellow');">Yellow</button>
<p>Highlight some of this text, then click a color and highlight some text...</p>
推荐阅读
- python - tkiner 如何从条目中获取文本并使其全局化
- python - 为什么在 Rossum API 中上传文档时出现此错误,提示解包值太多(预期为 2)?
- php - PHP - .htaccess 问题 $_SERVER['PATH_INFO'] 为空
- jquery - 在dataTable中使用本地json数据
- javascript - 反应引导导航栏1
- python - 没有这样的选项:安装 tensorflow 对象检测 api 时的 --use-feature
- r - 在 FDA 图中绘制凸包 - R
- python - 从 Xgboost 拟合模型中获取置信区间
- reactjs - Animation 和 LayoutAnimation API 的区别?
- scala - 在 Akka Typed 中测试消息适配器