我有一个用 CSS3 设计的气球形状。
JS Fiddle Example
它有三 Angular 形
:after {
content: "";
}
我需要用 Jquery 修改 left css 参数来左右移动三 Angular 形。
我知道我不能从 DOM 中选择伪元素,但是有没有另一种方法可以改变 :after style with js?
是的,我们可以像这样在里面放另一个div
<div class="pop"><div class="arr"></div></div>
但是很丑
有一个更简单的方法:只需将伪元素的 content
属性值设置为 attr(some-attribute-name)
,它将使用 HTML 的值父元素的属性作为伪元素的内容。然后,您可以在父元素上使用 setAttribute()
方法来动态更改值。下面是此方法实际效果的模拟片段。我也做了 blog post with further details包含一个现场示例 fiddle 。
CSS
#SomeElement:after {
content: attr(some-attribute-name);
}
HTML
<div id="SomeElement" some-attribute-name="Pseudo content here!"></div>
JavaScript (更改伪内容)
var someElement = document.getElementById('SomeElement');
someElement.setAttribute('some-attribute-name', 'New pseudo content here!');