Приоритет стилей CSS
CSS - это каскадные таблицы стилей. При определении стилей элемента страницы используются 2 принципа: наследование и каскадирование.
Наследование
Свойства, примененные к элементу, автоматически применяются ко всем его дочерним элементам. Но это справедливо только для тех свойств, для которых указана возможность наследования. Например, если для блока задать цвет шрифта и рамку, то цвет шрифта применится ко всем тегам, расположенным внутри блока. Рамка же не наследуется, и внутренние блоки будут без рамок. Пример:
<html>
<head>
<title>Наследование</title>
<style>
div {
color: red;
border: 1px solid black;
}
b {
color: blue;
}
</style>
</head>
<body>
<div>
<p>Не весь <span>текст <b>красный</b></span>.</p>
</div>
</body>
</html>
Не весь текст красный.
В данном примере параграф <p> унаследовал только цвет шрифта от своего родителя <div>. Элемент <span> унаследовал цвет шрифта уже от своего родителя <p>. А вот для тега <b> задан свой цвет шрифта, и все его дочерние элементы будут наследовать новый цвет шрифта.
Чтобы принудительно заставить свойство унаследовать значение от родительского элемента, в CSS введено ключевое слово inherit. Например, для предыдущего примера добавлено свойство:
p {
border: inherit;
}
Не весь текст красный.
Параграф <p> унаследовал рамку от своего родителя <div>.
Каскадирование
Принцип каскадирования нужен для случаев, когда для одного элемента заданы разные стили. Чтобы веб-браузер знал, какой стиль выбрать, существует приоритет применения стилей. Далее приводится перечисление способов задания свойств элементов в порядке возрастания приоритета от наименьшего до максимального.
- Для некоторых часто используемых элементов браузеры сами применяют стили. Если не задавать эти стили вручную, то в разных браузерах страница может отображаться с большими различиями. Стили браузеров имеют наименьший приоритет.
- Некоторые браузеры позволяют пользователю самостоятельно настроить стили по умолчанию.
- Применение свойства тегу по принципу наследования.
-
Непосредственное задание стиля HTML-элементу. Зависит от способа применения свойств (по возрастанию приоритета):
- Подключение внешнего файла стилей к документу.
- Импорт свойств из внешнего файла.
- Описание в теге
<style>. - Описание в глобальном атрибуте
style.
-
Максимальным приоритетом обладает свойство, для которого это явно задано. Для этого используется ключевое слово
!important. Например:body { background-color: silver !important; }