Assistente HeadStyle O elemento HTML <style> é usado para incluir folhas de estilo CSS de forma inline no elemento HTML <head>. Use o HeadLink para "linkar" arquivos CSS O HeadLink deve ser usado para criar elementos <link> para a inclusão de folhas de estilo externas. HeadStyle é usado quando você deseja definir folhas de estilo inline. O assistente HeadStyle dá suporte aos seguintes métodos para a configuração e adição de declarações de folhas de estilo: appendStyle($content, $attributes = array()) offsetSetStyle($index, $content, $attributes = array()) prependStyle($content, $attributes = array()) setStyle($content, $attributes = array()) Em todos os casos, $content é a verdadeira declaração CSS. $attributes são quaisquer atributos adicionais que você dejesa prover para a tag style: lang, title, media, ou dir são todos admissíveis. Configurando Comentários Condicionais HeadStyle permite que você envolva a tag style em comentários condicionais, que permitem que você as esconda de navegadores específicos. Para adicionar as tags condicionais, passe o valor condicional como parte do parâmetro $attributes nas chamadas do método. Headstyle com Comentários Condicionais headStyle()->appendStyle($styles, array('conditional' => 'lt IE 7')); ]]> HeadStyle também permite a captura de declarações de estilo; isso pode ser útil se você quiser criar as declarações através de programação, e então colocá-las em outro lugar. A utilização disso será mostrada em um exemplo abaixo. Finalmente, você pode usar o método headStyle() para acrescentar rapidamente elementos de declaração; a assinatura para isso é headStyle($content$placement = 'APPEND', $attributes = array()). $placement deve ser 'APPEND', 'PREPEND', ou 'SET'. HeadStyle sobrescreve append(), offsetSet(), prepend(), e set() para forçar o uso dos métodos especiais listados acima. Internamente ele armazena cada item como um token stdClass, que depois é serializado usando o método itemToString(). Isso permite que você faça verificações nos itens da pilha, e opcionalmente modifique estes itens simplesmente modificando o objeto retornado. O assistente HeadStyle é uma implementação concreta do assistente Placeholder. Codificação UTF-8 usada por padrão Por padrão, o Zend Framework usa UTF-8 como sua codificação padrão, e, especificamente neste caso, o Zend_View faz isto muito bem. A codificação de caracteres pode ser definida de forma diferente no objeto de visualização em si usando o método setEncoding() (ou a instanciação do parâmetro encoding). No entanto, como Zend_View_Interface não define acessadores para codificação, é possível que se você estiver usando uma implementação de visualização personalizada com este assistente de visualização, você não terá um método getEncoding(), que é o que o assistente de visualização usa internamente para determinar o conjunto de caracteres na qual irá codificar. Se você não quiser utilizar UTF-8 nessa situação, será necessário implementar um método getEncoding() em sua implementação de visualização personalizada. Uso Básico do Assistente HeadStyle Você pode especificar uma nova tag de estilo a qualquer momento: headStyle()->appendStyle($styles); ]]> A ordenação é muito importante no CSS; você talvez tenha que assegurar que as declarações sejam carregadas em uma ordem específica devido à ordem da cascata; use as diretivas append, prepend, e offsetSet para lhe auxiliar nessa tarefa: headStyle()->offsetSetStyle(100, $customStyles); // place at end: $this->headStyle()->appendStyle($finalStyles); // place at beginning $this->headStyle()->prependStyle($firstStyles); ]]> Quando você estiver finalmente pronto para liberar todas as declarações de estilo em seu script layout, simplesmente imprima o assistente: headStyle() ?> ]]> Capturando Declarações de Estilo Usando o Assistente HeadStyle Às vezes você precisa gerar declarações de estilo CSS de forma programática. Embora você possa usar concatenação de strings, heredocs, e assim por diante, muitas vezes é mais fácil apenas para fazer isso criando estilos e distribuindo-os em tags PHP. HeadStyle permite que você faça exatamente isso, capturando-os para a pilha: headStyle()->captureStart() ?> body { background-color: bgColor ?>; } headStyle()->captureEnd() ?> ]]> As seguintes suposições são feitas: As declarações de estilo serão anexados à pilha. Se você deseja que elas substituam a pilha ou que sejam adicionadas ao topo, você vai precisar passar 'SET' ou 'PREPEND', respectivamente, como o primeiro argumento para captureStart(). Se você deseja especificar todos os atributos adicionais para a tag <style>, passe-os em uma matriz como o segundo argumento para captureStart().