2013-08-12 8 views
25

input-groupform-inlineに追加すると、input-groupは、フォームの下に他のコントロールのインラインではなく新しい行に表示されます。インラインフォーム内の入力グループの使用

正常に動作し、他の入力は、inline-blockに自分displayセットを持っているのに対し、input-groupラッパークラスがtabledisplayセットを持っているためであると思われます。もちろん、子のadd-onスパン(display: table-cellを含む)は正しく配置するために親のプロパティを必要とするため、input-groupinline-blockの表示を与えることはできません。

だから私の質問は:それは排他的にブートストラップクラスを使用して、インラインフォームinput-groupを使用することは可能でしょうか?そうでない場合は、のカスタムクラスを使用できるようにするには、どのような方法が最適ですか。

ここに私の要点を示すdemoがあります。コードは次のとおりです。

<form action="" class="form-inline"> 
    <input type="text" class="form-control" placeholder="Works with" style="width: 100px;"/> 
    <input type="text" class="form-control" placeholder="Text Inputs" style="width: 120px;"/> 

    <div class="checkbox"> 
     <label> 
      <input type="checkbox" /> and Checkboxes 
     </label> 
    </div> 
    <select class="form-control" style="width: 150px;"> 
     <option>and Selects</option> 
    </select> 

    <button type="submit" class="btn btn-default">and Buttons</button> 
    <div class="input-group" style="width: 220px;"> 
     <span class="input-group-addon">BUT</span> 
     <input type="text" class="form-control" placeholder="not with input-groups" /> 
    </div> 
</form> 
+2

これは多分あなたのケースであなたは '入力group'クラスに'プルright'を使用することができ、バグです。 – PiLHA

+0

はいこれはバグかもしれません。私の場合とは関係なく 'pull-right'を使うのは良い解決策ではありません。入力間の垂直方向の間隔が失われ、2つの入力グループがあると誤って表示されます。 IMHO組み込みのクラスで誤ったハックをするのではなく、カスタムクラスで機能するソリューションを使用する方が良いです。 – edsioufi

答えて

42

これは実際にはバグで、解決されました(詳細はissue on githubを参照)。

これ以降、BootStrapのインラインフォームでは、子フォームコントロールを.form-groupでラップする必要があります。

だから私のコードはなる:

<form action="" class="form-inline"> 
    <div class="form-group"> 
     <input type="text" class="form-control" placeholder="Works with" style="width: 100px;"/> 
    </div> 

    ... 
    <div class="form-group"> 
     <div class="input-group" style="width: 220px;"> 
      <span class="input-group-addon">BUT</span> 
      <input type="text" class="form-control" placeholder="not with input-groups" /> 
     </div> 
    </div> 
</form> 
+5

私は3.0.3ですが、まだこの問題があります。フォームコントロールの後にinput-group-addonを追加すると、新しい行が作成されます – Marc

+0

@Marc:私は3.0.3を使用しています。 "form.form-inline {display:inline;} form.form -inline .form-group .input-group input + .input-group-addon {width:initial;} "と入力します。私はそれがすべてのブラウザと互換性があるかどうかわかりません。 – Gabriel

+1

@Marc:入力に幅や最大幅が必要だと言っているのを忘れてしまった。 – Gabriel

1

私はあなたが必要とするインラインレイアウトを得るためにフォームを列に分割する必要があるかもしれないと思います。ブートストラップサイトhereに例があります。

は、私が何を意味するか見るためにあなたのコントロールの周り

<div class="col-lg-1"></div> 

を入れてみてください。もちろん、12桁の列で作業する必要がありますので、これに合わせて調整する必要があります。

+0

問題の 'input-group'にかかわらず、フォームコントロールの整列にカラムを使用できます。それでも、BootStrapは 'form-inline'クラスを提供しています(これは、列を使用することが奨励されていれば不要です)。この[demo](http://jsfiddle.net/26ZM4/4/)では、インライン形式が存在する理由は、列を使用しても反応するデザインの観点からは良好な結果が得られないと考えることができます。私はまだ、柱状のデザインにカスタムクラスを好むでしょう(あるいは、代わりに 'horizo​​ntal-forms'に落ちる)。 – edsioufi

関連する問題