删除表单标签和输入cakephp之间的换行符

时间:2012-05-10 20:51:17

标签: php cakephp cakephp-1.3

cakephp中的表单助手通常会生成这样的表单元素:

<div class="input text">
  <label for="Firstname">Firstname</label>
  <input type="text" id="Firstname" value="" class="test" name="Firstname"/>
</div>

但是可以删除<label><input>之间的换行符,使其具有以下内容:

<div class="input text">
  <label for="Firstname">Firstname</label>    <input type="text" id="Firstname" value="" class="test" name="Firstname"/>
</div>

请问好吗?

谢谢

2 个答案:

答案 0 :(得分:7)

“换行符”不在HTML中,而是在默认的CakePHP CSS中。为了解决这个问题,我在我烘焙的CakePHP应用程序中添加了以下CSS规则:

label {
    display: inline;
    width: 20%;
    float: left;
}
input, textarea {
    width: 76%;
    clear: none;
}
form div.submit {
    clear: none;
    display: inline;
}

这基本上是标签和输入的内联,并为它们设置适当的宽度(您可能需要更改应用的数量,具体取决于长度。)

如果有效,请告诉我。您可以将这些行添加到APP / webroot / css / cake.generic.css的底部,或者根据需要添加新的CSS文件。

答案 1 :(得分:0)

我同意@ srs2012的回答,但有一种方法可以格式化Form Helper的输出。

FormHelper :: input()动作还在其第二个参数中接受'format'键。 此键是元素顺序的格式模板。默认输入格式顺序为:

array('before', 'label', 'between', 'input', 'after', 'error')

不在数组中的任何元素都不在输出中。因此,如果你修改它并删除'between'键,它可能会起作用。

举个例子:

echo $this->Form->input('Model.name', array('format' => array('before', 'label', 'input', 'after', 'error')));

我实际上只需要在项目中使用此设置一次。 CakePHP 1.3 API中的Here it is。 稍微玩一下,看看你能想出什么。