目前,我已经阅读了几乎整个stackoverflow论坛,以寻找任何更改伪元素:after和:before的解决方案。
据我理解:它不能被更改,因为当浏览器显示它时,它不在DOM中。但那它在哪里呢?在浏览器内存中吗?
无论如何,看起来使用:after/:before抓取伪元素是不可能的。
所以我尝试了另一种方法:
// read CSS value
var color = window.getComputedStyle(document.querySelector('.myCssClass'), ':before').getPropertyValue('background-color');
// write CSS value
window.getComputedStyle(document.querySelector('.myCssClass'), ':before').setProperty('background-color', "#FF0000");
但是...浏览器返回的不是成功信息,而是:
NoModificationAllowedError: Modifications are not allowed for this document
天啊!!! 看起来似乎没有办法改变这些东西。
那么我有个大问题: 是否有其他方法使用CSS创建类似于:after/:before的额外类? 我尝试了,但结果完全不同。
<style>
元素,使用任何你需要的新CSS。 - Pointy