Быстрая пара вопросов наследования CSS

На веб-сайте W3C свойство стиля границы (в качестве примера) помечено как унаследованное "Нет", но одно из допустимых значений - "наследовать". Почему это?

Значит ли в этом случае унаследованное "Нет", что значение по умолчанию не наследуется? Если это так, то я могу увидеть это в любом случае, посмотрев на значение по умолчанию "none".

Во-вторых, прав ли я, полагая, что значение "наследовать" нельзя использовать для отдельных свойств в кратком выражении?

2 ответа

Решение

Это означает, что если у вас есть DIV с границей и другой DIV внутри, внутренний не будет автоматически принимать свойства границы родительского элемента. Вы можете принудительно наследовать, используя "наследовать" на дочернем элементе.

Это отличается от таких вещей, как определения размера шрифта, которые наследуются автоматически.

Обозначение "Наследовать: Нет" означает, что "нормальное" наследование не применяется. В "нормальном" наследовании, если никакая таблица стилей не присваивает значение свойству для элемента, используется значение свойства для родительского элемента. Я использую "нормальный" в кавычках, поскольку это относится только к некоторым свойствам, как указано в примечаниях "Наследовать: Нет".

Особая ценность inherit это нечто совсем другое. Когда это используется, вся часть значения объявления должна состоять из слова inherit только, и он просто объявляет, что значение свойства должно быть таким же, как для родительского элемента (независимо от того, что это свойство). Вопреки тому, что говорится в спецификации CSS 2.1, это не приводит к принудительному наследованию; объявление участвует в каскаде, и оно может проиграть другим правилам (как вы можете догадаться из примера, который использует !important спецификатор).

Другие вопросы по тегам