Проблемы с наследованием !important свойств в CSS

195
22 февраля 2017, 22:14

Праздно ковыряя CSS заметил странный момент.

Стиль body заданный с !important игнорируется браузером и определяется стиль указанный обычным способом. Насколько мне известно, наследуемые свойства с этой инструкцией обладают высшим приоритетом наследования не считая <style>.

Есть исключения или я что-то пропустил?

Answer 1

Применяя !important вы повышаете приоритет текущего селектора. При этом импортант никак не влияет на правила наследования стилей для дочерних элементов.

Например, если у вас на странице есть где-то выше вашего кода стиль:

body#dumbid{color: orange;}

И вы не можете никак его изменить или как-то поменять разметку, чтобы избавиться от него, то в таком крайнем случае можно применить !important для переопределения, либо дублировать селектор для уравнивания приоритета.

body{color: blue !important;}

Так вы только нейтрализовали стиль селектор body#dumbid, но никак не изменили правила наследования для дочерних элементов.

В вашем случае не важно есть !important или нет у стиля боди. Селектор p будет более приоритетным так как является более специфичным.

READ ALSO
Печать таблицы в FireFox

Печать таблицы в FireFox

Почему при распечатке таблицы в FireFox происходит не ровный разрыв строк таблицы, исчезает нижняя граница предшествующей строки и так же толщина...

272
Перегрузка оператора [дубликат]

Перегрузка оператора [дубликат]

На данный вопрос уже ответили:

231
Подключение dll, св-ва проекта

Подключение dll, св-ва проекта

Подключаю dll к проекту в MSVS посредством LoadLibrary, те

255
Считывание строки с новой строки

Считывание строки с новой строки

Как можно считать в первой строке число, а во второй строку? getline видимо начинает считывать с символа \n

222