Вага стилів

В межах однієї веб-сторнки може бути багато тегів з однаковими класами, та ідентифікатори не повинні повторюватися, вони є унікальними:

<div class="box" id="box">...</div>
<div class="box" id="box2">...</div>
<div class="box" id="box3">...</div>

Селектори в CSS-коді можуть містити назви тегів, класи та ідентифікатори:

div { ... }
div.box { ... }
div#box { ... }
#box { ... }
.box { ... }
#box1.box { ... }
.box#box2 { ... }
div.box#box { ... }

Стилі перекривають один одного, який стиль стоїть нижче в коді - той і перекриє попередні стилі (за умови, що у селекторів буде однакова вага).

Елементи селектора мають умовну вагу. Для всього селектора вага вважається сумою всіх його елементів.

Для простоти розрахунку вагу елементів прийнято вважати такою:

стилі браузера - 0
* - 0.1
тег - 1
клас - 10
id - 100
інлайновий стиль (внутритеговий, індивідуальний) - 1000
!important - 10000

!important - костиль, який можна додавати до стилів для збільшення їх ваги. Це слово зі знаком оклику записується в кінець значення стиля через пробіл:

.green { color: green !important;}
.section h2 { color: blue;}

<div class="section"><h2>Блок 1 ...
<div class="section"><h2>Блок 2 ...
<div class="section"><h2 class="green">Блок 3 ...
<div class="section"><h2>Блок 4 ...

Порахуйте вагу селекторів:

p { color: red;}
p * { color: green;}
p.big span { color: yellow;}
.news h2#title { color: blue;}
span.active + span + span { color: aqua;}
<p class="violet" style="color: violet;">
p { color: pink !important; font-size: 24px;}

Та 10-кратні різниці - це лище умовність, 11 класів в селекторі не будуть мати більшу вагу за один ідентифікатор. І 20 теж, і 9000, будь-яка кількість класів слабші за один ідентифікатор.