DEV Community

Cover image for CSS Specificity

CSS Specificity

Emma Bostian ✨ on January 21, 2019

CSS Specificity is the set of the rules applied to CSS selectors in order to determine which style is applied to an element. The more specific a CS...
Collapse
 
kathryngrayson profile image
Kathryn Grayson Nanz

This was a super cool read! Especially the calculation at the end – that was definitely something I knew would work, but never knew why. Thanks for a great explanation.

Also, I love the effort you put into your section headers, etc. The yellow is really lovely, and that attention to visual detail isn't something you see a lot in other blogs :)

Collapse
 
kazionovm profile image
Max Kazionov • Edited

Hi, Emma!
Thank you for this great article, it helped me greatly;

Look at the screenshoot, it seems to me it doesn't work properly;
Because:

combinator selector > selects li elements that are direct children of an element of that id.

Check this 😉

logo

Collapse
 
pietvandongen profile image
Piet van Dongen • Edited

You're right, it should be:

nav#nav li:hover {
    color: purple;
}
Enter fullscreen mode Exit fullscreen mode

Otherwise, excellent article!

Collapse
 
maggiew61 profile image
maggiew61

I think you are right. I found that strange too.

Collapse
 
rhymes profile image
rhymes

Cool article, thanks Emma!

Didn't know there was a formula to calculate specificity nor tools to aid. They might be handy when you're trying to debug :)

You may run into situations when leveraging CSS frameworks, such as Bootstrap, where you can't use CSS specificity to override the native styles. In these instances, using !important is not considered bad practice.

Bootstrap is the main reason we use !important :D Fortunately I see less and less Bootstrap around.

Collapse
 
ellissei_studio profile image
Elisei Miron

Personally I'm a big fan of Bootstrap 4 grid, since they use flexbox.

But regarding the Bootstrap overrides, don't override it with !important.
Customise it by overriding the sass variables instead of styles for every component. A good example is bootswatch.com.

Collapse
 
begroff profile image
Brett

This is the most succinct article I have ever seen on specificity. I love the use of graphics for calculating specificity. Excellent job!

Collapse
 
antonio_pangall profile image
Antonio Pangallo

Nice article!

Collapse
 
adamorlowskipoland profile image
Adam

Quick check ;-)

muki.tw/wordpress/wp-content/uploa...

I think using !important is always ALWAYS a bed practice.
Sometimes you have no other choince but at least try before.

Collapse
 
samirmishra27 profile image
Samir

I messed up one of my mock interviews because I did not knew about CSS specificity. But this article has made me clear about what CSS specificity is and how does it work. This article is truly a GEM 💎💖
Thank you so much for writing this. Please share more resources where I can learn about this. :)

Collapse
 
phantomread profile image
phantomread

Great article,

Emma u are a star .

Collapse
 
jhominal profile image
Jean Hominal

Thank you very much for this article!
I knew that “CSS specificity” was a thing but I never knew that there was such a (mathematically) simple calculation rule.

Collapse
 
equinusocio profile image
Mattia Astorino

Nice work Emma. This is the kind of content i want to see on dev.to. 👍🏻

Collapse
 
emmabostian profile image
Emma Bostian ✨

Thank you!

Collapse
 
nickytonline profile image
Nick Taylor

I posted this in tonight's DevDiscuss on Twitter, but thought it would be helpful to leave this in the comments of your post as well.

Collapse
 
itachiuchiha profile image
Itachi Uchiha

Thanks, Emma. It was so nice to read it.

Collapse
 
nickytonline profile image
Nick Taylor

The Star Wars one cracks me up. I saw it again for the first time in a while a couple of weeks ago and was 😂.

Collapse
 
jabary profile image
Mohammed Jabari

Thanks that was the most clear explanation of CSS specificity I have come through.

Collapse
 
frcharry profile image
Fabio Ricardo Charry

I didn't know about specifity in CSS, It was nice to learned it in such a practical and math-fun way, thank you Emma!

Collapse
 
ranawebd profile image
HimanshuRana

Thanks for showing us how CSS specificity work. You describe it in a very simple way.

Collapse
 
eclecticcoding profile image
Chuck

Thank you Emma for this resource. I go bad and reread every few months.

Collapse
 
desolosubhumus profile image
Desolo Sub Humus 🌎🌍

I knew about this already, but it's nice to have something to reference anyway, especially when it's this short and sweet.

Collapse
 
vuduyanhtuan18411998 profile image
TedVu

Thank you for sharing such a wonderful post :)

Collapse
 
andhop profile image
Andy Hopwood

Really awesome read. I've spent hours before now trying to override styles in WordPress templates (made by other people) and it's been brutal.

Collapse
 
ivanoung profile image
Ivan Oung

The best kind of article! Thank you for the clear explanation!

Collapse
 
damianrivas profile image
Damian Rivas

Those headers are nice. How did you make them?

Collapse
 
jmike1690 profile image
Miguel

Thank you for this article, was so great!! I'll start using the four-category system.

Collapse
 
lee493 profile image
Burt Macklin

This is such an amazing explanation!!

Thanks a lot!

Collapse
 
dhruvi16 profile image
Dhruvi16

This is an awesome read! I found out something new and logical.

Thanks for the effort!

Collapse
 
paulshryock profile image
Paul Shryock

Love it. Great article!

Collapse
 
jqueryalmeida profile image
Jerry Almeida

thanks Emma :D

Collapse
 
odunlemi profile image
Abiodun Longe

Decided to finally look up what the !important value was all about after I came across it now in bootstrap's source CSS, couldn't have been explained easier, thank you.

Collapse
 
sandeshsapkota profile image
sandeshsapkota

Hello Emma !
this is a great article. I was seeking article on specificity like this. I know
what to do now !
Thanks.

Collapse
 
codingpixie profile image
Coding Pixie

great post Emma.