是否可以通过JavaScript更改CSS伪元素样式?
例如,我想像这样动态设置滚动条的颜色:
document.querySelector("#editor::-webkit-scrollbar-thumb:vertical").style.background = localStorage.getItem("Color");
而且我还希望能够告诉滚动条这样隐藏:
document.querySelector("#editor::-webkit-scrollbar").style.visibility = "hidden";
但是,这两个脚本都返回:
未捕获的TypeError:无法读取null的属性“样式”
还有其他解决方法吗?跨浏览器的互操作性并不重要,我只需要它在Webkit浏览器中即可工作。
编辑 : 从技术上讲,有一种通过JavaScript直接更改CSS伪元素样式的方法,但是此处提供的方法是可取的。
与更改JavaScript中的伪元素样式最接近的是添加和删除类,然后将伪元素与这些类一起使用。隐藏滚动条的示例:
CSS
.hidden-scrollbar::-webkit-scrollbar {
visibility: hidden;
}
JavaScript
document.getElementById("editor").classList.add('hidden-scrollbar');
要以后删除相同的类,可以使用:
document.getElementById("editor").classList.remove('hidden-scrollbar');
问题内容: 是否可以使用或在angular2中更改伪元素的样式? 为了使div上的模糊效果像叠加层一样,我应该在伪元素上设置背景图像。 我尝试了类似的东西 它没有用。我也试过了 问题答案: 不,这不可能。实际上,这不是一个Angular问题:伪元素不是DOM树的一部分,因此不会暴露任何可用于与其交互的DOM API。 如果要以编程方式处理伪元素,通常的方法是间接的:添加/删除/更改类,并在CSS中
主要内容:1. ::after,2. ::before,3. ::first-letter,4. ::first-line,5. ::selection,6. ::placeholder伪元素是一个附加在选择器末尾的关键词,通过伪元素您不需要借助元素的 ID 或 class 属性就可以对被选择元素的特定部分定义样式。例如通过伪元素您可以设置段落中第一个字母的样式,或者在元素之前、之后插入一些内容等等。 在 CSS1 和 CSS2 中,伪元素的使用与伪类相同,都是使一个冒号 与选择器相连。但在 C
CSS伪元素是用来添加一些选择器的特殊效果。 语法 伪元素的语法:selector:pseudo-element {property:value;} CSS类也可以使用伪元素:selector.class:pseudo-element {property:value;} :first-line 伪元素 "first-line" 伪元素用于向文本的首行设置特殊样式。 在下面的例子中,浏览器会根据 "
我试着用chrome webdriver和selenium2使用.NET测试弹出页面,但我遇到了一些问题。我需要更改一个元素的值后,它的窗口弹出。我需要将默认的“selectedindexes”:[“1”]“改为”selectedindexes“:[”0“]” javascript在Selenium IDE中工作,用于运行脚本来设置另一个隐藏客户机的文本字段,所以我想在这里做类似的事情。我知道它会
问题内容: 我有一个div的特定样式表。现在我想使用js动态修改div的一个属性。 我该怎么做? 它是否正确? 问题答案: 几乎是正确的。 由于是JavaScript操作符,因此您实际上不能在属性名称中使用它。如果您正在设置,或者类似的单字,您的代码就可以正常工作。 但是,对于任何带连字符的属性名称,您都需要记住的是,在javascript中,您删除了连字符,并使下一个字母变为大写,因此应为。 还
问题内容: 我正在构建React组件。正如React背后的一位专家在本次精彩的演讲中所建议的那样,我已经在组件中添加了CSS内联。我一直在努力寻找一种方法来内联添加CSS伪类,就像在演示文稿中名为“ :: after”的幻灯片上一样。不幸的是,我不仅需要添加该属性,还需要添加该属性。幻灯片显示了如何通过添加内容,但是如何添加其他属性? 问题答案: 得到了@Vjeux在React团队的回复: 普通H