Accessing Style Properties of Pseudo-Elements with jQuery
Given the limitations of traversing through CSS rules, this article explores using jQuery selectors to locate elements with specific effects caused by pseudo-element rules.
For instance, consider an element:
.commentarea .author:before { background-image: url(http://...); background-position: -9999px -9999px; }
which may be modified selectively:
.author[href$="gbacon"]:before /* ... */ { content: ""; background-position: 0 -140px }
To select pseudo-elements with their default background positions, the following selector syntax does not work:
$(".commentarea .author:before")
Similarly, attempts to use .siblings() to find elements with specific background images return empty results.
The crux of the issue lies in the nature of pseudo-elements. They do not have independent selectors and instead modify the surrounding elements. In other words, :before and :after do not select; they modify.
For example, in the HTML:
<span>
and CSS:
.a .b:before { content: "|Inserted using :before|"; }
the text "|Inserted using :before|" is inserted before the inner span element because class b is a descendant of class a. This demonstrates that pseudo-elements do not have their own selectors but affect their parent elements.
Therefore, it is not possible to directly select pseudo-elements using standard jQuery selector syntax. One potential solution is to utilize a jQuery plugin like jQueryRule (http://flesler.blogspot.com/2007/11/jqueryrule.html) to extract the original CSS rule.
The above is the detailed content of How Can I Access the Style Properties of CSS Pseudo-elements with jQuery?. For more information, please follow other related articles on the PHP Chinese website!