Zend Framework中的样式表单元素,具有默认样式

时间:2009-03-14 17:08:25

标签: css zend-framework forms

我目前正在使用自定义CSS类设置表单元素样式,以不同方式设置文本输入的样式,如:

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

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

但是,假设我有多个表单,并希望使用textinput设置所有文本元素的样式,并且默认情况下所有提交的元素都设置为submit。无论如何要在全球范围内这样做吗?

2 个答案:

答案 0 :(得分:2)

不是在每种不同类型的对象上设置类,而是使用CSS来设置元素的样式:

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 */
}

这将执行您希望它执行的操作,并且您不必对Zend Framework默认帮助程序进行子类化。此外,它将输出更少的HTML,因此您的页面将更小,并且CSS可以重新用于页面上的每个输入元素。

答案 1 :(得分:0)

我不是Zend专家,但我想你可以继承每个Zend_Form_Element_ *类并设置你想在它们的构造函数中设置的属性 - 即Zend_Form_Element_Text_Yatta中的子类Zend_Form_Element_Text;然后将属性'class'设置为 'textinput'在它的构造函数中。