Skip to content
geeksforgeeks
  • Tutorials
    • Python
    • Java
    • Data Structures & Algorithms
    • ML & Data Science
    • Interview Corner
    • Programming Languages
    • Web Development
    • CS Subjects
    • DevOps And Linux
    • School Learning
    • Practice Coding Problems
  • Courses
    • DSA to Development
    • Get IBM Certification
    • Newly Launched!
      • Master Django Framework
      • Become AWS Certified
    • For Working Professionals
      • Interview 101: DSA & System Design
      • Data Science Training Program
      • JAVA Backend Development (Live)
      • DevOps Engineering (LIVE)
      • Data Structures & Algorithms in Python
    • For Students
      • Placement Preparation Course
      • Data Science (Live)
      • Data Structure & Algorithm-Self Paced (C++/JAVA)
      • Master Competitive Programming (Live)
      • Full Stack Development with React & Node JS (Live)
    • Full Stack Development
    • Data Science Program
    • All Courses
  • CSS Tutorial
  • CSS Exercises
  • CSS Interview Questions
  • CSS Selectors
  • CSS Properties
  • CSS Functions
  • CSS Examples
  • CSS Cheat Sheet
  • CSS Templates
  • CSS Frameworks
  • Bootstrap
  • Tailwind
  • CSS Formatter
Open In App

CSS content Property

Last Updated : 26 Aug, 2024
Comments
Improve
Suggest changes
Like Article
Like
Report

The content property is used with the ::before and ::after pseudo-elements, to insert generated content. It allows insertion of text, images, or HTML elements, enhancing design without altering the original HTML structure, thereby providing flexibility in styling and layout.

Syntax:

content: normal|none|counter|attr|string|open-quote|close-quote|
no-open-quote|no-close-quote|url|initial|inherit;

Property Values: All the properties are described well with the example below.

Table of Content

  • normal
  • none
  • initial
  • attribute
  • String
  • open-quote
  • close-quote
  • no-open-quote:
  • no-close-quote
  • inherit

normal

The content: normal; CSS property value ensures that no additional content is generated for the ::before and ::after pseudo-elements, maintaining default behavior without inserts.

Syntax: 

Element::before|after { 
content: normal;
}

Example: This example demonstrates the use of the content property to generate content ::before & ::after pseudo-element.

HTML
<!DOCTYPE html> <html>  <head>     <title> CSS content Property </title>     <style>         p::before {             content: "Welcome ";         }          a::before {             content: normal;         }     </style> </head>  <body>     <p>to GeeksforGeeks</p>      <p id="a">you</p>  </body>  </html> 

Output: 

Welcome to GeeksforGeeks
Welcome you

none

The content: none; CSS property value specifies that no content is generated for the ::before and ::after pseudo-elements, effectively removing any inserted content.

Syntax: 

Element::before|after { 
content: none;
}

Example: This example demonstrates the use of the content property where the content inside the <p> tag, will be displayed dynamically with different values.

HTML
<!DOCTYPE html> <html>  <head>     <title> CSS content Property </title>     <style>         p::before {             content: "Hello";         }          p#a::before {             content: none;         }     </style> </head>  <body>     <p> GeeksforGeeks!</p>      <p id="a">Welcomes to GeeksforGeeks!</p>  </body>  </html> 

Output: 

Hello GeeksforGeeks!
Welcome to GeeksforGeeks!

initial

The content: initial; CSS property value sets the content of the ::before and ::after pseudo-elements to its initial default value as specified by the browser.

Syntax:

Element::before|after {
content: initial;
}

Example: This example demonstrates the use of the content property where the content is displayed to its initial value.

HTML
<!DOCTYPE html> <html>  <head>     <title> CSS content Property </title>     <style>         p::before {             content: "Welcome ";         }          a::before {             content: initial;         }     </style> </head>  <body>     <p>to GeeksforGeeks</p>      <p id="a">you</p>  </body>  </html> 

Output: 

Hello GeeksforGeeks!
Hello Welcomes to GeeksforGeeks!

attribute

The content: attr(attribute-name); CSS property value inserts the value of the specified HTML attribute into the content of the ::before and ::after pseudo-elements.

Syntax: 

Element::before|after { 
content:attr(href);
}

Example: This example demonstrates the use of the content property where the attribute value is set to the specified values.

HTML
<!DOCTYPE html> <html>  <head>     <title> CSS content Property </title>     <style>         a::after {             content: attr(href);         }     </style> </head>  <body>     <a href= "https://www.geeksforgeeks.org/html-style-attribute/">         Click Here!     </a> </body>  </html> 

Output:

Click Here! https://www.geeksforgeeks.org/html-style-attribute/

String

The content: "string"; CSS property value inserts the specified string literal into the content of the ::before and ::after pseudo-elements.

Syntax:

Element::before|after { 
content: string;
}

Example: This example demonstrates the use of the content property where the string value will generate any string before and after the HTML element.

HTML
<!DOCTYPE html> <html>  <head>     <title>CSS content Property</title>     <style>         /* String value used here */         p::before {             content: "Hello";         }     </style> </head>  <body>     <p> GeeksforGeeks!</p>  </body>  </html> 

Output: 

Hello GeeksforGeeks!

open-quote

The content: open-quote; CSS property value inserts the appropriate opening quotation mark for the current language into the content of ::before and ::after pseudo-elements.

Syntax:

Element::before|after { 
content: open-quote;
}

Example: This example demonstrates the use of the content property where the property value of content is set to open-quote.

HTML
<!DOCTYPE html> <html>  <head>     <title> CSS content Property </title>     <style>         p::before {             content: open-quote;         }     </style> </head>  <body>     <p>Welcome to GeeksforGeeks!</p> </body>  </html> 

Output:

"Welcome to GeeksforGeeks!

close-quote

The content: close-quote; CSS property value inserts the appropriate closing quotation mark for the current language into the content of ::before and ::after pseudo-elements.

Syntax:

Element::before|after { 
content: close-quote;
}

Example: This example demonstrates the use of the content property where the property value of content is set to close-quote.

HTML
<!DOCTYPE html> <html>  <head>     <title> CSS content Property </title>     <style>         p::after {             content: close-quote;         }          p::before {             content: open-quote;         }     </style> </head>  <body>     <p>Welcome to GeeksforGeeks!</p> </body>  </html> 

Output:

"Welcome to GeeksforGeeks!"

no-open-quote:

The content: no-open-quote; CSS property value prevents the insertion of an opening quotation mark before content specified using `open-quote` within ::before and ::after pseudo-elements.

Syntax: 

Element::before|after { 
content: no-open-quote;
}

Example: This example demonstrates the use of the content property where the property value of content is set to no-open-quote.

HTML
<!DOCTYPE html> <html>  <head>     <title> CSS content Property </title>     <style>         p::before {             content: open-quote;         }          p::before {             content: no-open-quote;         }     </style> </head>  <body>     <p>Welcome to GeeksforGeeks!</p>  </body>  </html> 

Output: 

Welcome to GeeksforGeeks!

no-close-quote

The content: no-close-quote; CSS property value prevents the insertion of a closing quotation mark after content specified using close-quote within ::before and ::after pseudo-elements.

Syntax:

Element::before|after { 
content: no-close-quote;
}

Example: This example demonstrates the use of the content property where the property value of content is set to no-close-quote.

HTML
<!DOCTYPE html> <html>  <head>     <title> CSS content Property </title>     <style>         p::before {             content: open-quote;         }          p::after {             content: no-close-quote;         }     </style> </head>  <body>     <p>Welcome to GeeksforGeeks!</p> </body>  </html> 

Output:

"Welcome to GeeksforGeeks!

inherit

The content: inherit; CSS property value inherits the content behavior from its parent element, allowing ::before and ::after pseudo-elements to follow the parent's content rules.

Syntax: 

Element::before|after { 
content: inherit;
}

Supported Browsers: The browser supported by the content property are listed below:

  • Google Chrome
  • Edge 
  • Firefox
  • Opera
  • Safari

A

AkshayGulati
Improve
Article Tags :
  • Web Technologies
  • CSS
  • CSS-Properties

Similar Reads

    CSS @charset Rule
    The @charset rule specifies the character encoding used in the style sheet. The @charset must be the first element in the style sheet and if several @charset rules are defined then the only first one is used. It can not be used in the <style> element where the character set of the HTML page is
    3 min read
    CSS @keyframes Rule
    The CSS @keyframes rule defines animations by specifying keyframes that describe the styles to be applied at various points during the animation duration. It allows for smooth transitions and transformations in web elements, controlled through percentages or from-to values.Note:For optimal browser s
    3 min read
    CSS @media Rule
    The @media CSS at-rule is used to apply a different set of styles for different media/devices using the Media Queries. A Media Query is mainly used to check the height, width, resolution, and orientation(Portrait/Landscape) of the device. This CSS rule is a way out for making more out of responsive
    5 min read
    CSS align-content property
    The align-content property changes the behavior of the flex-wrap property. It aligns flex lines. It is used to specify the alignment between the lines inside a flexible container. This property defines how each flex line is aligned within a flexbox and is only applicable if flex-wrap: wrap is applie
    4 min read
    CSS align-items Property
    The align-items property in CSS is used to align flex items along the cross-axis within a flex container. It accepts values like flex-start, flex-end, center, baseline, and stretch, controlling the vertical alignment of items in a flexbox.Syntaxalign-items: normal | stretch | center | flex-start | f
    7 min read
    CSS align-self Property
    The align-self property in CSS is used to align the selected items in the flexible container in many different manners such as flex-end, center, flex-start, etc. Syntax:align-self: auto|normal|self-start|self-end|stretch|center |baseline, first baseline, last baseline|flex-start |flex-end|baseline|s
    5 min read
    CSS all Property
    The all property in CSS is the shorthand property used to set all the element's values to their initial or inherited values or in some cases used to set the values to another spreadsheet origin. This property is used to reset all the CSS properties in a document.Syntax: all: initial|inherit|unset|re
    3 min read
    CSS animation-delay Property
    The animation-delay property specifies a delay for the start of an animation. Defined in seconds (s) or milliseconds (ms), this value determines how long to wait before beginning the animation. Negative values start the animation as if it had already been playing for the specified duration.Syntaxani
    3 min read
    CSS animation-direction Property
    The animation-direction CSS property sets whether an animation should play forward, backward, or alternate back and forth between playing the sequence forward and backward. It controls the visual flow and repetition behavior of animations in web pages, enhancing dynamic content presentation.Syntaxan
    4 min read
    CSS animation-duration Property
    The animation-duration property in CSS is essential for controlling the length of time an animation takes to complete one cycle, making it a vital tool for creating dynamic and engaging web designs.Syntax:animation-duration: time | initial | inherit;Property Value:time: This value is used to specify
    3 min read
geeksforgeeks-footer-logo
Corporate & Communications Address:
A-143, 7th Floor, Sovereign Corporate Tower, Sector- 136, Noida, Uttar Pradesh (201305)
Registered Address:
K 061, Tower K, Gulshan Vivante Apartment, Sector 137, Noida, Gautam Buddh Nagar, Uttar Pradesh, 201305
GFG App on Play Store GFG App on App Store
Advertise with us
  • Company
  • About Us
  • Legal
  • Privacy Policy
  • In Media
  • Contact Us
  • Advertise with us
  • GFG Corporate Solution
  • Placement Training Program
  • Languages
  • Python
  • Java
  • C++
  • PHP
  • GoLang
  • SQL
  • R Language
  • Android Tutorial
  • Tutorials Archive
  • DSA
  • Data Structures
  • Algorithms
  • DSA for Beginners
  • Basic DSA Problems
  • DSA Roadmap
  • Top 100 DSA Interview Problems
  • DSA Roadmap by Sandeep Jain
  • All Cheat Sheets
  • Data Science & ML
  • Data Science With Python
  • Data Science For Beginner
  • Machine Learning
  • ML Maths
  • Data Visualisation
  • Pandas
  • NumPy
  • NLP
  • Deep Learning
  • Web Technologies
  • HTML
  • CSS
  • JavaScript
  • TypeScript
  • ReactJS
  • NextJS
  • Bootstrap
  • Web Design
  • Python Tutorial
  • Python Programming Examples
  • Python Projects
  • Python Tkinter
  • Python Web Scraping
  • OpenCV Tutorial
  • Python Interview Question
  • Django
  • Computer Science
  • Operating Systems
  • Computer Network
  • Database Management System
  • Software Engineering
  • Digital Logic Design
  • Engineering Maths
  • Software Development
  • Software Testing
  • DevOps
  • Git
  • Linux
  • AWS
  • Docker
  • Kubernetes
  • Azure
  • GCP
  • DevOps Roadmap
  • System Design
  • High Level Design
  • Low Level Design
  • UML Diagrams
  • Interview Guide
  • Design Patterns
  • OOAD
  • System Design Bootcamp
  • Interview Questions
  • Inteview Preparation
  • Competitive Programming
  • Top DS or Algo for CP
  • Company-Wise Recruitment Process
  • Company-Wise Preparation
  • Aptitude Preparation
  • Puzzles
  • School Subjects
  • Mathematics
  • Physics
  • Chemistry
  • Biology
  • Social Science
  • English Grammar
  • Commerce
  • World GK
  • GeeksforGeeks Videos
  • DSA
  • Python
  • Java
  • C++
  • Web Development
  • Data Science
  • CS Subjects
@GeeksforGeeks, Sanchhaya Education Private Limited, All rights reserved
We use cookies to ensure you have the best browsing experience on our website. By using our site, you acknowledge that you have read and understood our Cookie Policy & Privacy Policy
Lightbox
Improvement
Suggest Changes
Help us improve. Share your suggestions to enhance the article. Contribute your expertise and make a difference in the GeeksforGeeks portal.
geeksforgeeks-suggest-icon
Create Improvement
Enhance the article with your expertise. Contribute to the GeeksforGeeks community and help create better learning resources for all.
geeksforgeeks-improvement-icon
Suggest Changes
min 4 words, max Words Limit:1000

Thank You!

Your suggestions are valuable to us.

What kind of Experience do you want to share?

Interview Experiences
Admission Experiences
Career Journeys
Work Experiences
Campus Experiences
Competitive Exam Experiences