In CSS, ::before and ::after are pseudo-elements that are used to insert additional content before and after the content of the element without changing HTML. 1. When using it, it needs to be matched with content attributes to support strings, attribute values, pictures, etc.; 2. It is common to add quotes, icons, and build complex graphics; 3. Note that the pseudo-element defaults to inline, and display needs to be set to adjust the width and height, and events cannot be bound; 4. It can be combined with positioning to achieve hierarchical control, and adapt to responsive design through media queries. Mastering them can improve page expression and reduce structural redundancy.
In CSS, ::before
and ::after
are two very practical pseudo-elements that allow you to insert some extra content before or after the element content without changing HTML. This not only makes the page structure cleaner, but also achieves many visual effects.

1. Basic usage and syntax
The prerequisite for using ::before
and ::after
is that the target element must be a container class element, such as div
, p
, span
, etc., and must be used with content
attribute. If content
is not set, the pseudo-element will not be displayed.

The basic writing method is as follows:
.selector::before { content: "Prompt text"; } .selector::after { content: "End Supplement"; }
-
content
can be a string, an attribute value (such asattr(data-text)
), an image (usingurl()
) or even an empty content""
. - Usually,
display
,position
,color
and other styles are combined to control the appearance.
2. Common application scenarios
Add decorative content
For example, put quotes before and after the quotation block:

blockquote::before { content: """; color: #888; } blockquote::after { content: """; color: #888; }
In this way, you can add quotation marks in a uniform manner without modifying HTML.
Create small icons or tags
Commonly, add a small external link icon after the link:
a.external::after { content: " (external link)"; font-size: 0.8em; color: gray; }
Or use background images instead of text content:
a.external::after { content: ""; display: inline-block; width: 12px; height: 12px; background: url("external-icon.png"); margin-left: 4px; }
Build complex graphics (combining border and transform)
For example, using ::before
and ::after
can draw dialogue bubbles, triangles, badges and other effects. This type of technique is very common in button and label design.
3. Details to be paid attention to when using
- The pseudo-element is an inline element by default . If you want to set the width and height, you need to set
display: block
orinline-block
. - Pseudo-elements cannot bind events because they are not DOM nodes.
- If you want the pseudo-element to be positioned outside the parent element, you can combine
position: absolute
and parentposition: relative
to implement it. - When multiple pseudo-elements are used simultaneously, you should pay attention to hierarchy issues, and the order can be controlled through
z-index
. - In responsive design, media query can be used to control whether pseudo-elements are displayed to avoid excessive mobile content affecting reading.
For example: You want a prompt box to hide the ::after
icon on the small screen:
@media (max-width: 600px) { .tip::after { display: none; } }
4. Summarize it
::before
and ::after
are very flexible gadgets in CSS. Although the functions are simple, they can produce many practical effects when paired with different styles. Mastering their usage can not only reduce the redundancy of HTML structure, but also improve the expressiveness of the page. Basically all that, if you use it too much, you will find that it is really easy.
The above is the detailed content of Using ::before and ::after pseudo-elements in css. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

There are three ways to selectively include CSS on a specific page: 1. Inline CSS, suitable for pages that are not frequently accessed or require unique styles; 2. Load external CSS files using JavaScript conditions, suitable for situations where flexibility is required; 3. Containment on the server side, suitable for scenarios using server-side languages. This approach can optimize website performance and maintainability, but requires balance of modularity and performance.

Flexboxisidealforone-dimensionallayouts,whileGridsuitstwo-dimensional,complexlayouts.UseFlexboxforaligningitemsinasingleaxisandGridforprecisecontroloverrowsandcolumnsinintricatedesigns.

The HTML popover attribute transforms elements into top-layer elements that can be opened and closed with a button or JavaScript. Popovers can be dismissed a number of ways, but there is no option to auto-close them. Preethi has a technique you can u

CSS blocks page rendering because browsers view inline and external CSS as key resources by default, especially with imported stylesheets, header large amounts of inline CSS, and unoptimized media query styles. 1. Extract critical CSS and embed it into HTML; 2. Delay loading non-critical CSS through JavaScript; 3. Use media attributes to optimize loading such as print styles; 4. Compress and merge CSS to reduce requests. It is recommended to use tools to extract key CSS, combine rel="preload" asynchronous loading, and use media delayed loading reasonably to avoid excessive splitting and complex script control.

In the following tutorial, I will show you how to create Lottie animations in Figma. We'll use two colorful designs to exmplify how you can animate in Figma, and then I'll show you how to go from Figma to Lottie animations. All you need is a free Fig

We put it to the test and it turns out Sass can replace JavaScript, at least when it comes to low-level logic and puzzle behavior. With nothing but maps, mixins, functions, and a whole lot of math, we managed to bring our Tangram puzzle to life, no J

ThebestapproachforCSSdependsontheproject'sspecificneeds.Forlargerprojects,externalCSSisbetterduetomaintainabilityandreusability;forsmallerprojectsorsingle-pageapplications,internalCSSmightbemoresuitable.It'scrucialtobalanceprojectsize,performanceneed

No,CSSdoesnothavetobeinlowercase.However,usinglowercaseisrecommendedfor:1)Consistencyandreadability,2)Avoidingerrorsinrelatedtechnologies,3)Potentialperformancebenefits,and4)Improvedcollaborationwithinteams.
