使用JavaScript修改CSS选择器 :after
问题的出现原因是Firefox 26不支持addRule函数,导致在其他浏览器上,宽度值被应用于主要元素,而不是:after伪元素(整个div增长但不是蓝色条内部)。
解决方法是使用insertRule函数来添加样式规则。通过创建一个新的style元素,并将其添加到文档头部,然后获取样式表对象,并使用insertRule函数向样式表中插入规则。
具体的解决方法如下所示:
//创建新的style元素 var style = document.createElement("style"); //将style元素添加到文档头部 document.head.appendChild(style); //获取样式表对象 sheet = style.sheet //使用insertRule函数向样式表中插入规则 -- 将这一行改为insertRule sheet.insertRule('.progressbar::after { width: 50% }', 0);
你可以尝试使用上述代码来修改CSS选择器:after的样式。点击这里查看更新后的示例。
这样,无论是在Firefox 26还是其他浏览器中,都能够正确地将宽度值应用于:after伪元素。