CSS переменные в Firefox 29, особенности их вычисления

CSS переменные в Firefox 29, особенности их вычисления изображение поста

Особенности вычисления CSS переменных в Firefox 29, реализация поддержки обновления и применения переменных в таблицах стилей. Причины недоступности функционала в релизных сборках.

На протяжении долгих лет к рабочей группе CSS поступали просьбы о реализации какой-либо поддержки обновления и применения переменных непосредственно в таблицах стилей. После длительных обсуждений в спецификации CSS Custom Properties for cascading Variables был принят подход, согласно которому, автор может устанавливать в стилевых правилах пользовательские свойства.

Они могут наследоваться и каскадироваться, подобно иным наследуемым свойствам. Обращения к переменным выполняются в определённых значениях свойства, с использованием синтаксиса var. Все пользовательские свойства, которые объединяют переменные, именуются, начиная с var-.

Значения этих параметров являются практически произвольными. Они могут принимать любые вереницы символов, при условии, что они сбалансированы. Например, автор может объявлять определённые значения для корневого документа в стилевых правилах, таким образом, они станут доступными для каждого элемента документа.

CSS переменные в Firefox 29 вычисляются на основании значений переменных того элемента, к которому используется свойство со ссылкой на переменную. Ссылки на такие параметры могут включать в себя запасные значения, которые применяются в случаях, если переменная недействительна или не определена.

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

Ошибки часто возникают из-за не объявленной переменной, которая не имеет запасного значения или же, по причине не распарсеного значения, подставляемого в свойства. Если свойство является недопустимым во время вычисления значения, объявление данного свойства парсится успешно, его можно увидеть при изучении объекта CSSStyleDeclaration в дереве DOM.

Начальная реализация CSS переменных недавно добавлена в Firefox Nightly, актуальной можно назвать 29 версию. В релизных сборках данный функционал пока недоступен, поскольку прежде чем сделать его широкодоступным, необходимо разрешить некоторые проблемы в спецификации.

Комментарии