ЛУЧШИЙ САЙТ ДЛЯ ВЕБ-РАЗРАБОТЧИКОВ

CSS Учебник

CSS СТАРТ CSS Введение CSS Синтаксис CSS Селекторы CSS Как подключить CSS Цвета CSS background-color CSS border CSS margin CSS padding CSS height/width CSS Блочная модель CSS Контур CSS Текст CSS Шрифты CSS Иконки CSS Ссылки CSS Списки CSS Таблицы CSS display CSS max-width CSS position CSS overflow CSS float/clear CSS inline-block CSS Выравнивание CSS Комбинаторы CSS Псевдо-классы CSS Псевдо-элементы CSS opacity/transparency CSS Панель навигации CSS Выпадающие списки CSS Галерея изображений CSS Спрайты изображений CSS Селекторы атрибутов CSS Формы CSS Счётчики CSS Макет веб-сайта CSS Единицы CSS Специфичности

CSS Продвинутый

CSS Закругленные углы CSS Границы изображения CSS Фоны CSS Цвета CSS Градиенты CSS Тени CSS Эффекты текста CSS Веб-шрифты CSS 2D Трансформации CSS 3D Трансформации CSS Переходы CSS Анимации CSS Подсказки CSS Стили изображений CSS Подгонка объекта CSS Кнопки CSS Нумерация страниц CSS Несколько столбцов CSS Пользовательский интерфейс CSS Переменные CSS Размеры блоков CSS Флексбокс CSS Медиа-запросы CSS Примеры медиа-запросов

CSS Адаптивный

RWD Введение RWD Область просмотра RWD Вид сетки RWD Медиа-запросы RWD Изображения RWD Видео RWD Фреймворки RWD Шаблоны

CSS Grid (Сетка)

Grid Введение Grid Контейнер Grid Элементы

CSS Примеры

CSS Шаблоны CSS Примеры CSS Викторина CSS Упражнения CSS Сертификат

CSS Справочники

CSS Справочник CSS Селекторы CSS Функции CSS Справочник аудио CSS Безопасные веб-шрифты CSS Анимация CSS Единицы CSS PX-EM Конвертер CSS Цвета CSS Значения цвета CSS Значения по умолчанию CSS Поддержка браузерами

CSS3. Уроки для начинающих

CSS Специфичности


Что такое специфичность (особенность)?

Специфичность - это способ, с помощью которого браузеры определяют, какие значения свойств CSS наиболее соответствуют элементу и, следовательно, будут применены. Специфичность основана на правилах соответствия, состоящих из селекторов CSS различных типов.

Специфичность ещё определяют как приоритетность применения CSS свойств к HTML элементам на веб-странице.

Если есть два или более противоречивых правила CSS, которые указывают на один и тот же элемент, браузер следует таким правилам, которые определяют, какое из них является наиболее конкретным (приоритетным), и, следовательно, побеждает, т.е. имеет преимущество над другими правилами.

Думайте о специфичности как о балле / ранге, который определяет, какие объявления стиля в конечном итоге применяются к элементу, т.е. имеет больший приоритет.

Универсальный селектор (*) имеет низкую специфичность, в то время как идентификаторы ID очень специфичны!

Примечание: Специфичность является распространенной причиной, по которой ваши CSS-правила не применяются к некоторым элементам, хотя вы полагаете, что они должны срабатывать.


Иерархия специфичности

Каждый селектор имеет свое место в иерархии специфичности. Есть четыре категории, которые определяют уровень специфичности селектора:

Встроенные стили - Встроенный стиль прикрепляется непосредственно к элементу, который нужно стилизовать. Пример: <h1 style="color: #ffffff;">.

Идентификаторы - ID является уникальным идентификатором для элементов страницы, таких как #navbar.

Классы, атрибуты и псевдо-классы - эта категория включает .classes, [attributes] и pseudo-classes такие как :hover, :focus и т.д.

Элементы и псевдо-элементы - эта категория включает названия элементов и псевдоэлементы, такие как h1, div, :before и :after.


Как рассчитать специфичность?

Запомните, как рассчитать специфичность!

Начните с 0, добавьте 1000 для атрибута стиля, добавьте 100 для каждого идентификатора, добавьте 10 для каждого атрибута, класса или псевдокласса, добавьте 1 для каждого имени элемента или псевдоэлемента.

Рассмотрим эти три фрагмента кода:

Пример

A: h1
B: #content h1
C: <div id="content"><h1 style="color: #ffffff">Heading</h1></div>

Специфичность A - 1 (один элемент).
Специфичность B - 101 (одна ссылка на идентификатор и один элемент).
Специфичность C - 1000 (встроенная стилизация).

Начиная с 1 < 101 < 1000, третье правило (C) имеет больший уровень специфичности и поэтому будет применяться.


Правила специфичности

Равная специфичность: учитывается последнее правило. Если одно и то же правило дважды записывается во внешнюю таблицу стилей, то нижнее правило в таблице стилей ближе к элементу, который должен быть стилизован, и поэтому будет применяться:

Пример

h1 {background-color: yellow;}
h1 {background-color: red;}

Попробуйте сами »

Всегда применяется последнее правило!


ID селекторы имеют более высокую специфичность, чем селекторы атрибутов - посмотрите на следующие три строки кода:

Пример

div#a {background-color: green;}
#a {background-color: yellow;}
div[id=a] {background-color: blue;}

Попробуйте сами »

Первое правило более конкретное, чем два других, и будет применяться.


Контекстные селекторы более специфичны, чем селектор одного элемента - встроенная таблица стилей расположена ближе к элементу, который нужно стилизовать. Так, как в следующем примере.

Пример

Из внешнего файла CSS:
#content h1 {background-color: red;}

В HTML файле:
<style>
#content h1 {
  background-color: yellow;
}
</style>

Последнее правило будет применяться.


Селектор класса перебивает любое количество селекторов элементов - селектор класса, такой как .intro, перебивает h1, p, div и т.д.:

Пример

.intro {background-color: yellow;}
h1 {background-color: red;}

Попробуйте сами »


Универсальный селектор и унаследованные значения имеют специфичность 0 - *, body * и подобные имеют нулевую специфичность. Унаследованные значения также имеют специфичность 0.