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 CondicionaisHeadStyle 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 CondicionaisheadStyle()->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().