Bootstrapでボタンと入力がうまく一致しないのはなぜですか?
私は次のような簡単なことを試しました:
<input type="text"/><button class="btn">button</button>
ボタンは5px
、chrome / firefoxの入力よりも約低いです。
Bootstrapでボタンと入力がうまく一致しないのはなぜですか?
私は次のような簡単なことを試しました:
<input type="text"/><button class="btn">button</button>
ボタンは5px
、chrome / firefoxの入力よりも約低いです。
回答:
Twitter Bootstrap 4では、input-group-prepend
とinput-group-append
クラスを使用して入力とボタンを整列させることができます(https://getbootstrap.com/docs/4.0/components/input-group/#button-addonsを参照)
<div class="input-group mb-3">
<div class="input-group-prepend">
<button class="btn btn-outline-secondary" type="button">Button</button>
</div>
<input type="text" class="form-control">
</div>
<div class="input-group mb-3">
<div class="input-group-append">
<button class="btn btn-outline-secondary" type="button">Button</button>
</div>
<input type="text" class="form-control">
</div>
@abimelexの回答に示されているように、入力とボタンは.input-group
クラスを使用して整列できます(http://getbootstrap.com/components/#input-groups-buttonsを参照))
<div class="input-group">
<span class="input-group-btn">
<button class="btn btn-default" type="button">Go!</button>
</span>
<input type="text" class="form-control">
</div>
<div class="input-group">
<input type="text" class="form-control">
<span class="input-group-btn">
<button class="btn btn-default" type="button">Go!</button>
</span>
</div>
このソリューションは私の回答を最新に保つために追加されましたが、@abimelexによって提供された回答に賛成票を投じてください。
Bootstrapは、.input-append
ラッパー要素として機能し、これを修正するクラスを提供します。
<div class="input-append">
<input name="search" id="search"/>
<button class="btn">button</button>
</div>
@OleksiyKhilkevichが彼の回答で指摘したように、クラスを調整input
しbutton
て使用する2つ目の方法があります.form-horizontal
。
<div class="form-horizontal">
<input name="search" id="search"/>
<button class="btn">button</button>
</div>
この2つのクラスの違いは、それがある.input-append
配置しますbutton
立てかけinput
(彼らが見えるように、それらが結合しているような)要素を、どこ.form-horizontal
それらの間にスペースを配置します。
- 注意 -
input
とbutton
要素を間隔を空けずに隣同士にできるようにするfont-size
ため0
に、は.input-append
クラスでに設定されています(これにより、inline-block
要素間の白い間隔が削除されます)。これinput
を使用してデフォルトを上書きしem
たり、%
測定値を上書きしたりする場合は、要素のfont-sizesに悪影響を与える可能性があります。
.input-append
クラスを思い出しました。
margin-bottom: 9px
がありますが、ボタンにはないため、同じ垂直方向のスペースを占めません。両方の要素にはmiddle
垂直方向の配置があるため、ボタンはその違いによりオフセットされます。.input-append
ラッパーを使用すると、このマージンボトムの値が削除されます。
あなたは使用することができ、入力グループボタンのプロパティを入力フィールドへのダイレクトボタンを適用します。
ブートストラップ3&4
<div class="input-group">
<input type="text" class="form-control">
<span class="input-group-btn">
<button class="btn btn-default" type="button">Go!</button>
</span>
</div><!-- /input-group -->
さらに多くの例については、BS4入力グループドキュメントをご覧ください。
<div class="form-group input-group-btn">
ただのヘッドアップ、これと呼ばれる特別なCSSクラスがあるようです form-horizontal
input-appendには、font-sizeをゼロに落とすという別の副作用があります。
font-size: 0
新しいものを使用し、学んだのかを調査しなければなりませんでした:)ありがとう!
.form-inline =これを使用すると、コンパクトなレイアウトのラベルとインラインブロックコントロールが左揃えになります
例:http : //jsfiddle.net/hSuy4/292/
<div class="form-inline">
<input type="text">
<input type="button" class="btn" value="submit">
</div>
.form-horizontal =ラベルを右揃えし、左にフロートして、コントロールと同じ行に表示されるようにします。これは、2列のフォームレイアウトに適しています。
(e.g.
Label 1: [textbox]
Label 2: [textbox]
: [button]
)
form-inline
Bootstrap 3 で動作することを確認できます。ありがとうございます。
私は何よりも試してみましたが、共有したい変更がいくつかありました。これは私のために働くコードです(添付のスクリーンショットを見つけてください):
<div class="input-group">
<input type="text" class="form-control" placeholder="Search text">
<span class="input-group-btn" style="width:0;">
<button class="btn btn-default" type="button">Go!</button>
</span>
</div>
それが機能することを確認したい場合は、エディタで以下のコードを使用してください:
<html>
<head>
<link type='text/css' rel='stylesheet' href='https://maxcdn.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css' />
</head>
<body>
<div class="container body-content">
<div class="form-horizontal">
<div class="input-group">
<input type="text" class="form-control" placeholder="Search text">
<span class="input-group-btn" style="width:0;">
<button class="btn btn-default" type="button">Go!</button>
</span>
</div>
</div>
</div>
</body>
</html>
お役に立てれば。
style="width:0;"
何ですか?
<div class="col-md-4">
必要なしのようなcol要素でラップすることになるwidth: 0
私も同じ問題で苦労していました。私が使用するブートストラップクラスは、私には機能しません。私は次のような回避策を考え出しました:
<form action='...' method='POST' class='form-group'>
<div class="form-horizontal">
<input type="text" name="..."
class="form-control"
placeholder="Search People..."
style="width:280px;max-width:280px;display:inline-block"/>
<button type="submit"
class="btn btn-primary"
style="margin-left:-8px;margin-top:-2px;min-height:36px;">
<i class="glyphicon glyphicon-search"></i>
</button>
</div>
</form>
基本的に、「フォームコントロール」クラスの表示プロパティをオーバーライドし、サイズと位置を修正するために他のスタイルプロパティを使用しました。
結果は次のとおりです。
ブートストラップ4:
<div class="input-group">
<input type="text" class="form-control">
<div class="input-group-append">
<button class="btn btn-success" type="button">Button</button>
</div>
</div>
直接関係はありませんが、同様のコードがない限り、フォームインラインのブートストラップ3.3.7の奇妙な動作に気づきました。
開始タグがテーブルの下にある場合(この場合)、デスクトッププロジェクトであるため、行とセルを使用しませんでした。
<table class="form-inline">
<form>
<tr>
フォーム要素はスタックします。
スイッチとそれが正しく並んでいます。
<form>
<table class="form-inline">
<tr>
Safari 10.0.2と最新のChromeでは違いはありませんでした。多分私のレイアウトは間違っていましたが、それは非常に寛容ではありません。
入力フロートを左に取ります。次に、ボタンを取り、それを右に浮かせます。1つ以上の距離を取るときにクラスをクリアすることができます。
<input style="width:65%;float:left"class="btn btn-primary" type="text" name="name">
<div style="width:8%;float:left"> </div>
<button class="btn btn-default" type="button">Go!</button>
<div class="clearfix" style="margin-bottom:10px"> </div>