テキスト型の入力ボックスにグリフィコンを追加するにはどうすればよいですか? たとえば、次のようなユーザー名入力に「icon-user」を入れたいとします。
15 に答える
公式の方法。カスタム CSS は不要:
<form class="form-inline" role="form">
<div class="form-group has-success has-feedback">
<label class="control-label" for="inputSuccess4"></label>
<input type="text" class="form-control" id="inputSuccess4">
<span class="glyphicon glyphicon-user form-control-feedback"></span>
</div>
</form>
デモ: http://jsfiddle.net/yajf3b7q
このデモは、Bootstrap ドキュメントの例に基づいています。ここで「オプションのアイコン付き」まで下にスクロールしますhttp://getbootstrap.com/css/#forms-control-validation
これは、base64 URI エンコーディングを使用してグリフィコンの画像表現を CSS に直接埋め込むことで、マークアップをシンプルに保つ非ブートストラップ ソリューションです。
input {
border:solid 1px #ddd;
}
input.search {
padding-left:20px;
background-repeat: no-repeat;
background-position-y: 1px;
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAYAAABb0P4QAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADbSURBVDhP5ZI9C4MwEIb7//+BEDgICA6C4OQgBJy6dRIEB6EgCNkEJ4e3iT2oHzH9wHbpAwfyJvfkJDnhYH4kHDVKlSAigSAQoCiBKjVGXvaxFXZnxBQYkSlBICII+22K4jM63rbHSthCSdsskVX9Y6KxR5XJSSpVy6GbpbBKp6aw0BzM0ShCe1iKihMXC6EuQtMQwukzPFu3fFd4+C+/cimUNxy6WQkNnmdzL3NYPfDmLVuhZf2wZYz80qDkKX1St3CXAfVMqq4cz3hTaGEpmctxDPmB0M/fCYEbAwZYyVKYcroAAAAASUVORK5CYII=);
}
<input class="search">
:before
CSS の疑似要素を使用してグリフィコンを配置する別の方法を次に示します。
jsFiddle での動作デモ
この HTML の場合:
<form class="form form-horizontal col-xs-12">
<div class="form-group">
<div class="col-xs-7">
<span class="usericon">
<input class="form-control" id="name" placeholder="Username" />
</span>
</div>
</div>
</form>
この CSS を使用します ( Bootstrap 3.x および Webkit ベースのブラウザーと互換性があります) 。
.usericon input {
padding-left:25px;
}
.usericon:before {
height: 100%;
width: 25px;
display: -webkit-box;
-webkit-box-pack: center;
-webkit-box-align: center;
position: absolute;
content: "\e008";
font-family: 'Glyphicons Halflings';
pointer-events: none;
}
@Friziが言ったpointer-events: none;
ように、カーソルが入力フォーカスを妨げないように追加する必要があります。他のすべての CSS ルールは、適切なスペースを中央に配置して追加するためのものです。
結果:
既存のブートストラップ クラスと少しのカスタム スタイルでこれを行うことができるはずです。
<form>
<div class="input-prepend">
<span class="add-on">
<i class="icon-user"></i>
</span>
<input class="span2" id="prependedInput" type="text" placeholder="Username" style="background-color: #eeeeee;border-left: #eeeeee;">
</div>
編集 アイコンはicon-user
クラスを介して参照されます。この回答は、Bootstrap バージョン 2 の時点で書かれています。次のページで参照を確認できます: http://getbootstrap.com/2.3.2/base-css.html#images