2017-02-09 4 views
0

Я увидел следующее сообщение на веб-сайте MDN. Сама страница о «border-radius», но я думаю, что это утверждение относится ко всем сокращенным свойствам.Не понимайте утверждение «индивидуальные унаследованные значения невозможны при любом сокращенном имуществе»

enter image description here

Я не совсем уверен, что они имели в виду «отдельные наследственные значения не представляется возможные с любой сокращенной собственностью», может кто-то пожалуйста, объясните мне?

ответ

2

Как говорится в записке, следующий недействителен, даже если интуитивно это выглядит, как он должен установить два угловых радиусов 0, и два из них, чтобы наследовать:

border-radius:0 0 inherit inherit 

Это потому, что разные Shorthands есть разные грамматики, что делает невозможным смешение нескольких значений inherit с другими значениями. Вы не сможете определить, какие из свойств компонента должны наследоваться, и вы не сможете определить, как анализировать оставшиеся значения, которые не являютсяinherit.

Например, в то время как выше заявление выглядит достаточно просто, рассмотрит background заявления:

background: inherit inherit #fff 

Есть два inherit ключевых слов здесь, но background сокращенных содержит множество из свойств компонентов со сложной грамматикой , Невозможно определить, какие две длинные полосы, кроме background-color, должны наследовать. Вы должны сказать браузеру. Это означает написание деклараций для рук.

Таким образом, inherit определяется как ключевое слово CSS, которое может отображаться только в любом объявлении свойства, включая сокращения. Это устраняет любую возможную двусмысленность независимо от того, является ли свойство longhand приемлемым для одного значения, свойство longhand принимает несколько значений (например, border-top-left-radius или background-size) или сокращенное свойство.

См. Также: Leaving certain values unchanged when using CSS shorthand properties