Core points
-
The
- CSS
content
attribute is used in conjunction with the::before
and::after
pseudo-elements to insert generated content into a web page. It supports a variety of values ??includingnormal
,counter
,attr
, strings,open-quote
,url
,initial
,inherit
, and . -
content
attr()
Properties can be used to insert values ??of text, encoded characters, media files, and even counters. For example, the function can be used to insert the value of a specified property. -
open-quote
close-quote
orcontent
values ??use theno-open-quote
attribute to generate open or closed quotes. Theno-close-quote
or value can be used to remove open or closed quotes from the specified element. -
content
While the CSS::before
attribute is mainly used with::after
and::marker
pseudo-elements, it can also be used with pseudo-elements to customize the appearance of a list bullet or number.
content
If you are a front-end developer, you're likely to have heard of pseudo-elements and the
content
This article will focus on the content
attributes. The ::before
attribute of CSS is used with ::after
and
content
Basic syntax of attributes
The syntax of the content
p::before { content: normal|counter|attr|string|open-quote|url|initial|inherit; }
attr()
CSS differs slightly between different values. For example, to use the ::before
value with ::after
or
p::after { content: " (" attr(title) ")"; }
attr()
This is just an example and will be introduced in detail later. In the following section, I will discuss each value, including
none
Value: normal
or
is set to none
, no pseudo-element is generated. If you set it to normal
, for the ::before
and ::after
pseudo-elements, it will be calculated as none
.
p::before { content: normal; } p::after { content: none; }
This method may be used for nested elements that already define pseudo-elements, but you want to override pseudo-elements in some contexts.
Value: <string>
This value sets the content to a string and can be any text content. If non-Latin characters are used, the characters need to be encoded. Let's look at each example. Consider the following HTML:
p::before { content: normal|counter|attr|string|open-quote|url|initial|inherit; }
Then the following CSS:
p::after { content: " (" attr(title) ")"; }
Here, we insert the text content into one of the list items and insert the encoded characters (in this case the copyright symbol) into the paragraph element.
String values ??must be enclosed in quotes, which can be single or double quotes.
Value: <uri>
The <uri>
value is very convenient when you are interested in displaying a certain medium, which you can do by pointing to external resources such as images. If the resource or image cannot be displayed for some reason, it is ignored or some placeholder is used instead. Let's look at some code that demonstrates this value.
This is HTML:
p::before { content: normal; } p::after { content: none; }
This is the CSS that shows the favicon of SitePoint and some text:
<h2>Tutorial Categories</h2> <ol> <li>HTML and CSS</li> <li class="new">Sass & Less</li> <li>JavaScript</li> </ol> <p class="copyright">SitePoint, 2015</p>
Value: counter()
or counters()
attribute. It is written as one of two different functions—content
or counter()
. For a more detailed discussion of CSS counters, check out this article. But here is a brief overview. counters()
, the generated text is the value of the innermost counter of the name you specified within this pseudo-element scope. By default, it is formatted in decimal, but can also be formatted in Roman numerals. counter()
is similar, but represents all counters with the specified name (first parameter), in the order from the outermost layer to the innermost layer. All these values ??are separated by the specified string (the second parameter). If you specify the name of the counter variable as counters(name, string)
, none
, or inherit
, the declaration will be ignored. initial
.new::after { content: " New!"; color: green; } .copyright::before { content: "<pre class="brush:php;toolbar:false"><code class="html"><a class="sp" href="http://miracleart.cn/link/9a4b930f7a36153ca68fdf211c8836a7">SitePoint</a>a9 "; }This is CSS:
.sp::before { content: url(http://miracleart.cn/link/9a4b930f7a36153ca68fdf211c8836a7favicon.ico); }This will number the items using the generated content, similar to an ordered list. In this case, we can easily use ordered lists. These types of counters are much more convenient when the items to be numbered are scattered between other elements.
Value: attr()
function will insert the value of the specified property, which is the only parameter. If the relevant element has no attributes, an empty string is returned. attr()
<h2>Name of First Four Planets</h2> <p class="planets">Mercury</p> <p class="planets">Venus</p> <p class="planets">Earth</p> <p class="planets">Mars</p>Using the above HTML, the following CSS will display the
attribute value in brackets next to the link text: href
.planets { counter-increment: planetIndex; } .planets::before { content: counter(planetIndex) ". "; }This trick is often used in print style sheets to allow links to be displayed in printed web pages.
Value: or is set to one of these values, the Value: value will remove the open quotes from the specified element, and the
property to define the type of quotes we want to use, with a depth of three layers. Then we insert quotes as content using pseudo-elements. This is similar to what we did in the previous section. and to the second layer of quotes. This ensures that the quote nesting is still recognized, but the quotes for the element do not appear. Therefore, the third layer of quotes in this paragraph will have double curly braces instead of single curly braces. Conclusion
property and how to use them in various scenarios. FAQ (FAQ) About CSS Content Attributes
Properties are a powerful tool that allows you to insert generated content into the layout of your page. It is usually used with CSS CSS Yes, the CSS CSS Yes, you can use special characters in the CSS Content added via CSS is generally considered decorative, not content that should be indexed by search engines. Therefore, it is best to use the CSS No, CSS CSS No, CSS The above is the detailed content of Understanding the CSS 'content' Property. For more information, please follow other related articles on the PHP Chinese website!open-quote
close-quote
When content
attribute generates open or closed quotes. It is usually used with <q>
elements, but you can use it with any element. So you can do the following: p::before {
content: normal|counter|attr|string|open-quote|url|initial|inherit;
}
The close-quote
value only applies to the ::after
pseudo-element (the reason is obvious), and if you use the ::before
and there is no open-quote
value on the same element, it will not produce anything. no-open-quote
or no-close-quote
The no-open-quote
value will remove the closed quotes. You may be wondering how these values ??can be useful. View the following HTML: no-close-quote
p::after {
content: " (" attr(title) ")";
}
Note that in the previous paragraph, the speaker quotes someone ("a wise man..."), and this person in turn quotes someone else ("those say..."). Therefore, our quotes are nested in three layers. Syntactically, there is a correct way to deal with this problem. If using the generated content, here are the ways we can ensure that the quotes are nested correctly: p::before {
content: normal;
}
p::after {
content: none;
}
The first selector uses the quotes
no-open-quote
values: no-close-quote
<h2>Tutorial Categories</h2>
<ol>
<li>HTML and CSS</li>
<li class="new">Sass & Less</li>
<li>JavaScript</li>
</ol>
<p class="copyright">SitePoint, 2015</p>
In this case, I added a class called noquotes
content
CSS content
and ::before
pseudo-elements, adding decorative content via CSS instead of including it in HTML. For example, you can use the ::after
attribute to insert quotes around the block reference, or add a decorative image before the title. content
The value of the attribute can be a string, a URL, a counter, or even the value of the attribute. content
CSS content attributes can be used with elements other than
::before
and ::after
? content
attributes are mainly used with ::before
and ::after
pseudo-elements. However, it can also be used with the ::marker
pseudo-element, which represents the tag box for the list item. This allows you to customize the appearance of a list bullet or number. How to use CSS content attributes to display attribute values?
content
properties can be displayed using the attr()
function. For example, you can use it to display the value of the link's href
property so that the user can see the actual URL. The syntax will be content: attr(href)
. Can I insert images using the CSS content properties?
content
property can be inserted into an image using the url()
function. The image will be inserted where the ::before
or ::after
pseudo-element is placed. For example, content: url(image.jpg)
will insert an image named image.jpg. How to use counters with CSS content properties?
The content
property can be displayed using the counter()
or counters()
functions. This is useful for automatically numbering titles or sections in a document. You first create or reset the counter using the counter-reset
property and increment it using the counter-increment
property. You can then use content: counter(myCounter)
to display the current value of the counter. Can I use special characters in CSS content properties?
content
attribute by using their Unicode. For example, content: “22”
will insert a bullet. Remember to always start with a backslash () Unicode. Does CSS content attributes affect SEO?
content
attribute for decorative content rather than what is important to SEO. Can I insert HTML using the CSS content attribute?
content
attribute cannot be used to insert HTML. It can only insert text, images, counters, and attribute values. If you need to insert HTML, you should do this directly in the HTML document or use JavaScript. Does CSS content attributes be supported by all browsers?
content
All modern browsers, including Chrome, Firefox, Safari, and Edge, support the CSS Can I animate CSS content properties?
content
attribute cannot be animation. This is because it is not a property with a range of values, but rather a specific value is set. If you need to create an animation, consider using other CSS properties that can be animated, such as opacity
or transform
.

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

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.

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

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

CSSismostlycase-insensitive,butURLsandfontfamilynamesarecase-sensitive.1)Propertiesandvalueslikecolor:red;arenotcase-sensitive.2)URLsmustmatchtheserver'scase,e.g.,/images/Logo.png.3)Fontfamilynameslike'OpenSans'mustbeexact.

Autoprefixer is a tool that automatically adds vendor prefixes to CSS attributes based on the target browser scope. 1. It solves the problem of manually maintaining prefixes with errors; 2. Work through the PostCSS plug-in form, parse CSS, analyze attributes that need to be prefixed, and generate code according to configuration; 3. The usage steps include installing plug-ins, setting browserslist, and enabling them in the build process; 4. Notes include not manually adding prefixes, keeping configuration updates, prefixes not all attributes, and it is recommended to use them with the preprocessor.

CSScounterscanautomaticallynumbersectionsandlists.1)Usecounter-resettoinitialize,counter-incrementtoincrease,andcounter()orcounters()todisplayvalues.2)CombinewithJavaScriptfordynamiccontenttoensureaccurateupdates.

In CSS, selector and attribute names are case-sensitive, while values, named colors, URLs, and custom attributes are case-sensitive. 1. The selector and attribute names are case-insensitive, such as background-color and background-Color are the same. 2. The hexadecimal color in the value is case-sensitive, but the named color is case-sensitive, such as red and Red is invalid. 3. URLs are case sensitive and may cause file loading problems. 4. Custom properties (variables) are case sensitive, and you need to pay attention to the consistency of case when using them.

CSSselectorsandpropertynamesarecase-insensitive,whilevaluescanbecase-sensitivedependingoncontext.1)Selectorslike'div'and'DIV'areequivalent.2)Propertiessuchas'background-color'and'BACKGROUND-COLOR'aretreatedthesame.3)Valueslikecolornamesarecase-insens
