Стили браузера по умолчанию определены в его таблице стилей агента пользователя, источники которой вы можете найти здесь . К сожалению, спецификация Cascading and Inheritance level 3 , по-видимому, не предлагает способ сброса свойства стиля в его браузер по умолчанию. Однако есть планы повторно ввести ключевое слово для этого на уровне 4 каскадирования и наследования - рабочая группа просто еще не определилась с именем для этого ключевого слова (в настоящее время ссылка говорит revert
, но она не является окончательной). Информацию о поддержке браузера revert
можно найти на сайте caniuse.com .
В то время как спецификация уровня 3 вводит initial
ключевое слово , установка свойства к его начальному значению сбрасывает его к его значению по умолчанию, как определено CSS , а не как определено браузером . Начальное значение display
является inline
; это указано здесь . initial
Ключевое слово относится к этому значению, а не браузер по умолчанию. Сама спецификация делает это примечание под all
свойством :
Например, если автор указывает all: initial
на элемент, он блокирует все наследование и сбрасывает все свойства, как если бы на уровне автора, пользователя или агента пользователя не существовало никаких правил каскада.
Это может быть полезно для корневого элемента «виджета», включенного в страницу, который не хочет наследовать стили внешней страницы. Однако обратите внимание, что любой стиль «по умолчанию», применяемый к этому элементу (например, например, display: block
из таблицы стилей UA для таких элементов блока, как <div>
), также будет удален.
Поэтому я думаю, что единственный способ использовать чистый CSS прямо сейчас - это найти значение по умолчанию в браузере и установить его вручную:
div.foo { display: inline-block; }
div.foo.bar { display: block; }
(Альтернативой вышеупомянутому может быть div.foo:not(.bar) { display: inline-block; }
, но это включает в себя изменение исходного селектора, а не переопределение.)
unset
.