Вычисление значений свойств
После того, как обозреватель проанализировал документ и построил дерево документа, для каждого элемента дерева вычисляется значение каждого из его свойств, применимых к текущему устройству отображения. Окончательное значение свойства вычисляется в три этапа. Сначала значение определяется из спецификации (специфицированное значение), затем при необходимости преобразуется к абсолютному значению (вычисленное значение), и, наконец, преобразуется с учетом ограничений контекста (фактическое значение). Поясним каждый из этих этапов подробнее.
Специфицированное значение определяется с помощью следующих механизмов, перечисленных в порядке предпочтения:
Если каскад возвращает значение, то используется оно.
В противном случае, если свойство является наследуемым, то используется соответствующее значение отцовского элемента
В противном случае, используется начальное значение свойства (оно указано ниже в определении каждого из свойств).
Специфицированные значения могут быть как абсолютными (например, red или 2mm), так и относительными (например, auto или 2em или 10%). Для абсолютных значений вычисленное значение совпадает со специфицированным. С другой стороны, относительные значения должны быть преобразованы к абсолютным. Так, процентные величины преобразуются в числа путем умножения на соответствующее значение; размеры, заданные в em, ex или px, умножаются на размер шрифта или пикселя; значение auto заменяется на величину, вычисляемую по формуле, указанной в определении соответствующего свойства и т. п.
Наконец, обозреватель проверяет, допустимо ли вычисленное значение в контексте данного свойства, и если нет, соответственно преобразует его. Например, размер в пикселях может быть только целым, поэтому потребуется округлить полученное действительное число до целого. Результатом таких преобразований и является фактическое значение свойства, используемое при отображении элемента.
Наследование
Некоторые свойства наследуются детьми элемента в дереве документа. В определении каждого свойства указывается, является оно наследуемым или нет. Пусть, например, элемент H1 содержит элемент EM:
<H1>Этот заголовок <EM>очень важен</EM>!</H1>
Если элементу EM не присвоен цвет, то он унаследует цвет своего отца, т. е. элемента H1.
По этой причине для задания стиля отображения элементов "по умолчанию", достаточно задать стиль элемента HTML или BODY. Все остальные элементы являются потомками этих элементов, поэтому они будут наследовать их свойства. При этом важно помнить, что значения, заданные в виде процентных величин, не наследуются!
Многие свойства имеют в качестве возможного значения значение inherit. Оно означает, что в качестве значения свойства должно использоваться вычисленное значение данного свойства отцовского элемента.
Директива @import
Директива @import позволяет нам включать в свою таблицу стилей другие таблицы стилей. Она должна содержать URI импортируемой таблицы стилей; следующие две директивы эквивалентны и демонстрируют синтаксис данной директивы:
@import "mystyle.css"; @import url(mystyle.css);
Директива @import может содержать список названий устройств отображения, к которым должна применяться данная таблица стилей, разделенных запятыми, например:
@import url("fineprint.css") print; @import url("bluish.css") projection, tv;
Если списка названий устройств нет, то предполагается, что он равен all, т. е. импортируемая таблица стилей применима ко всем устройствам.
Директивы @import должны располагаться в таблице стилей перед первым правилом и не могут находиться внутри блока; в противном случае они игнорируются обозревателем.
Поддержка : | | Поддерживаются только устройства all, screen и print (5.0+) | | | Не поддерживается |
1 2
8 8 8
| |