2009-03-14 2 views
1

Je forme actuellement styling éléments avec une classe CSS personnalisée aux entrées de texte de style différent, comme dans:éléments de formulaire de style dans Zend Framework avec un style par défaut

$submit = new Zend_Form_Element_Submit('login'); 
$submit->setLabel('Log in') 
    ->setAttrib('class', 'submit'); 

Et

$username = new Zend_Form_Element_Text('username'); 
$username->setLabel('Username') 
    ->setAttrib('class', 'textinput'); 

Mais Disons que j'ai plusieurs formes, et que je veux styler tous les éléments de texte avec textinput et tous soumettre des éléments avec submit par défaut. Y a-t-il un moyen de le faire globalement?

Répondre

0

Je ne suis pas un expert Zend, mais je suppose que vous pourriez sous-classer chaque classe Zend_Form_Element_ * et définir les attributs que vous voulez définir dans leurs constructeurs - i.e sous-classe Zend_Form_Element_Text dans Zend_Form_Element_Text_Yatta; puis définissant l'attribut 'class' sur 'textinput' dans son constructeur.

+0

Zend_Framework dispose d'un schéma de nommage très spécifique pour faciliter la sous-classe et le remplacement des helpers zend par défaut et de leurs classes. –

2

Au lieu de définir des classes sur chaque type d'utilisation d'objets style CSS pour les éléments:

input[type="submit"] { 
    /* Here goes the stuff that you put in your submit class */ 
} 

input[type="text"] { 
    /* here goes the stuff you put in your textinput class */ 
} 

textarea { 
    /* here goes the stuff for a text area */ 
} 

Cela va faire ce que vous voulez faire et vous ne disposez pas de sous-classe le Zend Framework helpers par défaut. En outre, il produira moins de HTML, vos pages seront donc plus petites et le CSS pourra être réutilisé pour chaque élément d'entrée de la page.

+0

Je suis conscient que je peux styler des éléments avec CSS, mais si je me souviens correct et http://reference.sitepoint.com/css/attributeselector est correct aussi, le sélecteur d'attribut ne fonctionnera pas dans IE. Par conséquent, je ne peux pas utiliser cette solution. –

+0

mobmad: Jetez un oeil à IE7-js par Dean Edwards pour résoudre les problèmes que l'IE a avec les sélecteurs! –