2012-05-10 28 views
2

の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> 

どうぞよろしくお願いします。

は「改行」あなた

+0

改行で何が問題になっていますか?すべきではないことをしていますか? – lamelas

+0

あなたは改行を作成していますか?私のアプリでは、ページソースを見て、私はちょうどこれを持っています: '

'タグ間の空白はありません。 – tigrang

+0

はいそれは改行を入れます、私は理由を知らない – user765368

答えて

6

ありがとう、むしろそれがデフォルトのCakePHP CSSであり、HTMLではありません。これを解決するために、私は焼く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ファイルを追加することができます。

0

私は@ srs2012の回答に同意しますが、フォームヘルパーの出力を書式設定する方法があります。

FormHelper :: input()アクションは、2番目のパラメータに 'format'キーも受け入れます。 このキーは、要素の順序の書式テンプレートです。デフォルトの入力書式の順序は、

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

です。配列に含まれていない要素は出力されません。したがって、これを修正して 'between'キーを削除すると、うまくいくかもしれません。一例として、

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

私は実際にプロジェクトに一度だけ、この設定を使用しなければなりませんでした。 Here it isはCakePHP 1.3 APIに含まれています。 これで少し遊んでみてください。

関連する問題