šŸŽ Checkout my Learn React by Making a Game course and get 1 month Free on Skillshare!

Getting the value of the content property of ::after or ::before with Javascript

Let's say we have the following CSS declaration:

#myElement::before {
    content: " <- Javascript is cool!";
    color: green;
}

We want to be able to read the value of the content property. The " <- Javascript is cool!" string.

In order to do this, we will need to use the getComputedStyle() method:

const getContentOfPseudoElement = (el, pseudoEl) => {
    const styles = window.getComputedStyle(el, '::'+pseudoEl);
    return styles.content;
}

const el = document.getElementById('foo');
console.log(getContentOfPseudoElement(el, 'before'));

If we want to get the value of the content property for ::after we just need to change the second parameter of the function.

getContentOfPseudoElement(el, 'after');

Note that if the content property is not defined, then the string"none" will be returned.

This will return the correct value even for the more fancy stuff that we can do with the attr() CSS function. Like:

a::after { 
    content: ' [' attr(href) ']'; 
}

You can see also in the article about sharing the CSS breakpoints with JavaScript a usage of this concept.

šŸ“– 50 Javascript, React and NextJs Projects

Learn by doing with this FREE ebook! Not sure what to build? Dive in with 50 projects with project briefs and wireframes! Choose from 8 project categories and get started right away.

šŸ“– 50 Javascript, React and NextJs Projects

Learn by doing with this FREE ebook! Not sure what to build? Dive in with 50 projects with project briefs and wireframes! Choose from 8 project categories and get started right away.


Leave a Reply

Your email address will not be published. Required fields are marked *