2つのテキストボックスがあるフォームに年の範囲の入力を表示しようとしています。 1つは最小値、もう1つは最大値であり、ダッシュで区切られています。
ブートストラップを使用して、これをすべて同じ行で実行したいのですが、正しく動作するようには見えません。
これが私のコードです:
<form id="Form1" class="form-horizontal" role="form" runat="server">
<div class="row">
<div class="form-group">
<label for="tbxContactPhone" class="col-sm-2 control-label">Year</label>
<div class="col-sm-4">
<asp:TextBox ID="TextBox1" CssClass="form-control" runat="server" MaxLength="4" />
</div>
<label class="col-sm-2 control-label">-</label>
<div class="col-sm-4">
<asp:TextBox ID="TextBox2" CssClass="form-control" runat="server" MaxLength="4" />
</div>
</div>
</div>
</form>
現在は次のようになっています。
入力グループ を使用して同じ行にスタイルを設定するのはどうですか?
最後に使用するHTMLを示します:
<div class="input-group">
<input type="text" class="form-control" placeholder="Start"/>
<span class="input-group-addon">-</span>
<input type="text" class="form-control" placeholder="End"/>
</div>
次のようになります:
Stack Snippet Demo:
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.css" rel="stylesheet"/>
<div class="input-group">
<input type="text" class="form-control" placeholder="Start"/>
<span class="input-group-addon">-</span>
<input type="text" class="form-control" placeholder="End"/>
</div>
asp:textbox
要素に変換するための演習として読者に任せます
Bootstrap 4に関する@KyleMitの回答は少し変更されました
<div class="input-group">
<input type="text" class="form-control">
<div class="input-group-prepend">
<span class="input-group-text">-</span>
</div>
<input type="text" class="form-control">
</div>
問題は、.form-control
クラスがnormal-flow-of-the-page
に従って新しい行にレンダリングされるDIV
要素のようにレンダリングされることです。
このような問題を修正する1つの方法は、display:inline
プロパティを使用することです。したがって、display:inline
でカスタムCSS
クラスを作成し、.form-control
クラスでコンポーネントにアタッチします。コンポーネントにもwidth
が必要です。
この問題を処理する方法は他にもあります(form-control
クラスのいずれかに.col
コンポーネントを配置するなど)、最も簡単な方法は.form-control
をinline
にすることです要素(span
がレンダリングする方法)
これが2014年に利用可能かどうかはわかりませんが、今はできます。
ただし、768px以上の画面解像度でのみ機能します。
BS 3.3.7に有効:
<link href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.css" rel="stylesheet"/>
<form class="form-inline">
<input type="text" class="form-control"/>-<input type="text" class="form-control"/>
</form>
残念ながら、スニペットを実行すると、狭い幅のフレームにあるため、ここでは見えませんが、別の場所にコピーしてワイド画面で実行すると動作します。 stackoverflowに「フルスクリーン」ボタンがあることに気づいたので、それをクリックすると表示されます。