Why Doesn't the CSS :after Pseudo-element Work on All HTML Elements?
Susan Sarandon
Release: 2024-12-16 14:41:10
Original
669 people have browsed it
Unveiling the Constraints of CSS :after Property
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!
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