The CSS :after pseudo-element adds content after an element's content in the document tree. However, its applicability raises questions.
Element Restrictions
The CSS spec states that :after can be applied to content before or after an element's tree content, seemingly without restrictions. Yet, in practice, certain elements, such as images (), inputs (), and tables (
), exhibit varying behavior.
Understanding Replaced Elements
The key to understanding this behavior lies in the concept of replaced elements. Replaced elements are those whose appearance and dimensions are defined by an external resource, including images, plugins, and form elements.
:after and Replaced Elements
Crucially, the CSS spec explicitly states that :before and :after only work with non-replaced elements. Therefore, replaced elements like and cannot have :after or :before properties.
DOM Structure Considerations
When using :before and :after with non-replaced elements, the DOM structure looks like this:
Content of span
For replaced elements like images, this structure is not feasible, hence the inconsistency in behavior.
The above is the detailed content of Why Doesn't the CSS :after Pseudo-element Work on All HTML Elements?. For more information, please follow other related articles on the PHP Chinese website!
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
I had someone write in with this very legit question. Lea just blogged about how you can get valid CSS properties themselves from the browser. That's like this.
The other day, I spotted this particularly lovely bit from Corey Ginnivan’s website where a collection of cards stack on top of one another as you scroll.
There are a number of these desktop apps where the goal is showing your site at different dimensions all at the same time. So you can, for example, be writing
CSS Grid is a collection of properties designed to make layout easier than it’s ever been. Like anything, there's a bit of a learning curve, but Grid is
I see Google Fonts rolled out a new design (Tweet). Compared to the last big redesign, this feels much more iterative. I can barely tell the difference