Элемент <style> используется для включения таблицы стилей (CSS) в элемент <head>.
Важно: Используйте HeadLink
для подключения файлов CSS. Для подключения внешних файлов. HeadStyle
используется для внедрения CSS непосредственно на страницу (inline).
HeadStyle поддерживает несколько методов для добавления и настройки таблицы стилів:
appendStyle($content, $attributes = array())
offsetSetStyle($index, $content, $attributes = array())
prependStyle($content, $attributes = array())
setStyle($content, $attributes = array())
$content – непосредственно обявление(реализация) CSS.
$attributes – любіе дополнительніе атрибуті, которіе нужно добавить в тег <style>: lang, title, media, dir и другие.
Важно: Установка условных комментариев.
HeadStyle
предоставляет возможность обернуть тег <style> в
условные коментарии, которые помогут спряжать их от обработки в определенных
браузерах.
Для их установки передайте значение «conditional» как параметр $attributes
при вызове метода:
adding scripts $this->headStyle()->appendStyle($styles, array('conditional' => 'lt IE 7'));
Так же HeadStyle позволяет делать захват объявления стилей. Это полезно, когда объявления стилей делается в скрипте, а потом размещается в нужном месте. Демонстрация такого использования будет показана в следующем примере.
Для быстрого объявления воспользуйтесь методом headStyle(). Синтаксистакой: headStyle($content$placement = 'APPEND', $attributes = array()).$placement - можетприниматьзначения: «APPEND», «PREPEND», «SET».
HeadStyle перекрывает за append(), offsetSet(), prepend(), set() для принудительного использования специальных методов, перечисленных выше. Внутри себя он сохраняет все элементы как маркер stdClass, который в дальнейшем сериализуется, используя метод itemToString() .Это дает возможность проверки элементов, находящихся в стеке, и модификации их просто изменяя возвращаемый объект.
Помощник HeadStyleявляется частной реализацией помощника Placeholder.
Важно: По умолчанию в Zend
Framework используется кодировка UTF-8.
Но
кодировка во View может устанавливаться независимо для каждого объекта
вручную с помощью метода setEncoding(). Но, Zend\View\Interface не определяет
доступ к кодировкам, поэтому если Вы используете не стандартный помощник, то
возможно у него не будет доступа к методу getEncoding(), который определяет, какую
кодировку выбрать.
Если нужно будет использовать отличную от UTF-8 кодировку в нестандартном помощнике, то для
этого Вам самим нужно будет определить метод getEncoding() в помощнике.
Определяйте тег «style»
когда Вам удобно:
// adding styles $this->headStyle()->appendStyle($styles);
Порядок загрузки стилей CSS важен. Что бы быть уверенным, что стили загрузились именно в том порядке, который необходим используйте для этого методы append, prepend, offsetSet:
// Putting styles in order // place at a particular offset: $this->headStyle()->offsetSetStyle(100, $customStyles); // place at end: $this->headStyle()->appendStyle($finalStyles); // place at beginning $this->headStyle()->prependStyle($firstStyles);
После подготовки всех стилей для вывода в макет (layout) просто вызовете в нем помощника:
<?php echo $this->headStyle() ?>
Захват стилей с помощью помощника HeadStyle
Захват осуществляется в стек:
<?php $this->headStyle()->captureStart() ?> body { background-color: <?php echo $this->bgColor ?>; } <?php $this->headStyle()->captureEnd() ?>
В этом примере подразумевается, что:
1) Стили добавлялись в конец стека. Если нужно заменить стек или добавить в начало, то используйте «SET» или «PREPEND» как первый аргумент в captureStart().
2) Если необходимо добавить атрибуты в тег <style>, то просто добавьте их в массив и передайте его как второй аргумент в captureStart().