このようなモーダルに含まれるフォームでbootstrap tagsinput を使用しようとしています
...
<div class="form-group">
<label for="myTagLabel">Tags:</label>
<input class="form-control" id="myTag" type="text" data-role="tagsinput">
</div>
上の画像を見るとわかるように、入力に含まれるフォームの幅がない理由がわかりません。
[〜#〜] update [〜#〜]this http://www.bootply.com/f43d1A0YxK は、問題
この動作が見られる理由は、bootstrap-tagsinput
は実際には元のinput
要素を非表示にし、代わりにdiv
を追加します。 Bootstrap input要素のようにスタイル設定されたdiv
要素が表示されています。したがって、元の入力に影響を与えるCSSは変更を生成しません。
変更したいのは.bootstrap-tagsinput
クラス:
.bootstrap-tagsinput {
width: 100% !important;
}
これがデモです: http://www.bootply.com/1iATJfFM69
CSSのdisplay: block;
クラスに.bootstrap-tagsinput
を追加します。 Mohamadによって指摘されているように、このクラスは独自のHTMLには存在しませんが、要素/ビューのソースを調べると、入力が<div class="bootstrap-tagsinput">
でラップされていることがわかります。
.bootstrap-tagsinput{
display: block;
}
これにより、継承されているdisplay: inline-block;
が上書きされます。
クリスチャンはほとんどそれを推測した
jsのどこか:
$('.bootstrap-tagsinput > input').css('width', '');
そしてCSSで:
.bootstrap-tagsinput input {
width: 10em;
}
あなたが使用しているtagsinputプラグインには、独自のcssファイルが付属しています。
bootstrap-tagsinput.css
これらのcssルールは、data-role = "tagsinput"を追加すると、自動的に入力に追加されます。
.bootstrap-tagsinput {
background-color: #fff;
border: 1px solid #ccc;
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
display: inline-block;
padding: 4px 6px;
margin-bottom: 10px;
color: #555;
vertical-align: middle;
border-radius: 4px;
max-width: 100%;
line-height: 22px;
cursor: text;
}
.bootstrap-tagsinput input {
border: none;
box-shadow: none;
outline: none;
background-color: transparent;
padding: 0;
margin: 0;
width: auto !important;
max-width: inherit; //Try change this to 100% !important;
display: block; // Add this in
}
ネイティブのbootstrapルールを上書きしないように、これらを更新する必要があります。