Dodaj Bootstrap Gliphicon do pola wprowadzania
Jak mogę dodać gliphicon do pola wprowadzania tekstu? Na przykład chcę mieć 'icon-user' w Nazwie użytkownika, coś w tym stylu:
14 answers
Bez Bootstrap:
Przejdziemy do Bootstrap w sekundę, ale oto podstawowe pojęcia CSS w grze, aby zrobić to samodzielnie. Jak wskazuje beard of prey , możesz to zrobić za pomocą CSS, absolutnie umieszczając Ikonę wewnątrz elementu wejściowego. Następnie dodaj obramowanie po obu stronach, aby tekst nie nakładał się na ikonę.
Więc dla następującego HTML:
<div class="inner-addon left-addon">
<i class="glyphicon glyphicon-user"></i>
<input type="text" class="form-control" />
</div>
Możesz użyć następującego CSS, aby wyrównać do lewej i prawej strony glify:
/* enable absolute positioning */
.inner-addon {
position: relative;
}
/* style icon */
.inner-addon .glyphicon {
position: absolute;
padding: 10px;
pointer-events: none;
}
/* align icon */
.left-addon .glyphicon { left: 0px;}
.right-addon .glyphicon { right: 0px;}
/* add padding */
.left-addon input { padding-left: 30px; }
.right-addon input { padding-right: 30px; }
Demo w Plunkerze
Uwaga : zakłada się, że używasz gliphicons , ale działa równie dobrze zfont-awesome .
Dla FA wystarczy zastąpić.glyphicon
.fa
Z Bootstrap:
Jak wskazuje bufor , można to osiągnąć natywnie w Bootstrap za pomocą Stany walidacji z opcjonalnymi ikonami. To odbywa się poprzez nadanie elementowi .form-group
klasy .has-feedback
, a ikonce klasy .form-control-feedback
.
Najprostszym przykładem może być coś takiego:
<div class="form-group has-feedback">
<label class="control-label">Username</label>
<input type="text" class="form-control" placeholder="Username" />
<i class="glyphicon glyphicon-user form-control-feedback"></i>
</div>
Plusy :
- zawiera wsparcie dla różnych typów formularzy (Basic, Horizontal, Inline)
- zawiera wsparcie dla różnych rozmiarów sterowania (domyślne, Małe, Duże)
Wady :
- nie zawiera wsparcia dla left align = "left" icons
Aby przezwyciężyć wady, ułożyłem to pull-request {[16] } ze zmianami w celu obsługi ikon wyrównanych do lewej. Ponieważ jest to stosunkowo duża zmiana, została ona odłożona do przyszłego wydania, ale jeśli potrzebujesz tych funkcji dzisiaj , Oto prosty przewodnik po implementacji:
Wystarczy załączyć te zmiany formularzy w css (również inlined poprzez Ukryty urywek stosu na dole)
*LESS : alternatywnie, jeśli jesteś budowanie poprzez less, Oto forma zmienia się w less
Następnie, wszystko co musisz zrobić, to dołączyć klasę .has-feedback-left
do dowolnej grupy, która ma klasę .has-feedback
, aby wyrównać ikonę w lewo.
Ponieważ istnieje wiele możliwych konfiguracji html dla różnych typów formularzy, różnych rozmiarów kontroli, różnych zestawów ikon i różnych widoczności etykiet, stworzyłem stronę testową, która pokazuje poprawny zestaw HTML dla każdej permutacji wraz z live demo.
Oto demo w Plunker
P. S. propozycja friziego dodania
pointer-events: none;
została dodana do bootstrap
Nie znalazłeś tego, czego szukałeś? Wypróbuj podobne pytania:
- Dodaj ikonę Twitter Bootstrap do pola wprowadzania
- umieść ikonę wyszukiwania w pobliżu textbox bootstrap
Dodanie CSS dla lewej Aligned feedback icons
.has-feedback .form-control {
padding-right: 34px;
}
.has-feedback .form-control.input-sm,
.has-feedback.form-group-sm .form-control {
padding-right: 30px;
}
.has-feedback .form-control.input-lg,
.has-feedback.form-group-lg .form-control {
padding-right: 46px;
}
.has-feedback-left .form-control {
padding-right: 12px;
padding-left: 34px;
}
.has-feedback-left .form-control.input-sm,
.has-feedback-left.form-group-sm .form-control {
padding-left: 30px;
}
.has-feedback-left .form-control.input-lg,
.has-feedback-left.form-group-lg .form-control {
padding-left: 46px;
}
.has-feedback-left .form-control-feedback {
left: 0;
}
.form-control-feedback {
line-height: 34px !important;
}
.input-sm + .form-control-feedback,
.form-horizontal .form-group-sm .form-control-feedback {
width: 30px;
height: 30px;
line-height: 30px !important;
}
.input-lg + .form-control-feedback,
.form-horizontal .form-group-lg .form-control-feedback {
width: 46px;
height: 46px;
line-height: 46px !important;
}
.has-feedback label.sr-only ~ .form-control-feedback,
.has-feedback label.sr-only ~ div .form-control-feedback {
top: 0;
}
@media (min-width: 768px) {
.form-inline .inline-feedback {
position: relative;
display: inline-block;
}
.form-inline .has-feedback .form-control-feedback {
top: 0;
}
}
.form-horizontal .has-feedback-left .form-control-feedback {
left: 15px;
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-04 16:29:52
Metoda Oficjalna . Nie wymaga niestandardowego 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>
DEMO: http://jsfiddle.net/LS2Ek/1/
To demo jest oparte na przykładzie w dokumentach Bootstrap. Przewiń w dół do pozycji "z opcjonalnymi ikonami" http://getbootstrap.com/css/#forms-control-validation
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-13 03:02:43
Oto alternatywa tylko dla CSS. Skonfigurowałem to dla pola wyszukiwania, aby uzyskać efekt podobny do Firefoksa (i stu innych aplikacji.)
HTML
<div class="col-md-4">
<input class="form-control" type="search" />
<span class="glyphicon glyphicon-search"></span>
</div>
CSS
.form-control {
padding-right: 30px;
}
.form-control + .glyphicon {
position: absolute;
right: 0;
padding: 8px 27px;
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-11 23:52:53
Oto Jak to zrobiłem używając tylko domyślnego Bootstrap CSS v3. 3. 1:
<div class="form-group">
<label class="control-label">Start:</label>
<div class="input-group">
<input type="text" class="form-control" aria-describedby="start-date">
<span class="input-group-addon" id="start-date"><span class="glyphicon glyphicon-calendar"></span></span>
</div>
</div>
I tak to wygląda:
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-02 04:39:29
Ten 'cheat' będzie działał z efektem ubocznym, że Klasa gliphicon zmieni czcionkę dla kontrolki wejściowej.
<input class="form-control glyphicon" type="search" placeholder=""/>
Jeśli chcesz pozbyć się efektu ubocznego, możesz usunąć klasę "gliphicon" i dodać następujący CSS(może być lepszy sposób na stylizację pseudo elementu zastępczego i testowałem tylko na Chrome).
.form-control[type="search"]::-webkit-input-placeholder:first-letter {
font-family:"Glyphicons Halflings";
}
.form-control[type="search"]:-moz-placeholder:first-letter {
font-family:"Glyphicons Halflings";
}
.form-control[type="search"]::-moz-placeholder:first-letter {
font-family:"Glyphicons Halflings";
}
.form-control[type="search"]:-ms-input-placeholder:first-letter {
font-family:"Glyphicons Halflings";
}
Być może nawet czyściciel rozwiązanie:
CSS
.form-control.glyphicon {
font-family:inherit;
}
.form-control.glyphicon::-webkit-input-placeholder:first-letter {
font-family:"Glyphicons Halflings";
}
.form-control.glyphicon:-moz-placeholder:first-letter {
font-family:"Glyphicons Halflings";
}
.form-control.glyphicon::-moz-placeholder:first-letter {
font-family:"Glyphicons Halflings";
}
.form-control.glyphicon:-ms-input-placeholder:first-letter {
font-family:"Glyphicons Halflings";
}
HTML
<input class="form-control glyphicon" type="search" placeholder=" search" />
<input class="form-control glyphicon" type="text" placeholder=" username" />
<input class="form-control glyphicon" type="password" placeholder=" password" />
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-30 11:51:17
Można to zrobić za pomocą klas z oficjalnego bootstrap 3.wersja x, bez żadnych niestandardowych css.
Użyj input-group-addon
przed znacznikiem wejściowym, wewnątrz input-group
, a następnie użyj dowolnego z gliphiconów, oto kod
<form>
<div class="form-group">
<div class="col-xs-5">
<div class="input-group">
<span class="input-group-addon transparent"><span class="glyphicon glyphicon-user"></span></span>
<input class="form-control left-border-none" placeholder="User Name" type="text" name="username">
</div>
</div>
</div>
</form>
Oto wyjście
Aby dostosować go dalej dodać kilka linii custuom css do własnego niestandardowego.css file (adjust padding if needed)
.transparent {
background-color: transparent !important;
box-shadow: inset 0px 1px 0 rgba(0,0,0,.075);
}
.left-border-none {
border-left:none !important;
box-shadow: inset 0px 1px 0 rgba(0,0,0,.075);
}
Poprzez uczynienie tła input-group-addon
przezroczystym i uczynienie lewego gradient znacznika wejściowego do zera wejście będzie miało płynny wygląd. Oto niestandardowe wyjście
Rozwiąże to niestandardowe problemy css polegające na nakładaniu się etykiet, wyrównywaniu podczas używania Input-lg i skupianiu się na problemie z zakładką.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-03 08:45:53
Oto rozwiązanie non-bootstrap, które utrzymuje twoje znaczniki proste poprzez osadzenie reprezentacji obrazu gliphiconu bezpośrednio w CSS za pomocą kodowania URI base64.
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">
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-17 17:31:12
Jeśli używasz Fontawesome możesz to zrobić:
<input type="text" style="font-family:Arial, FontAwesome" placeholder="" />
Result
Pełna lista unicode znajduje się w pełna czcionka Awesome 4.6.3 icon reference
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-13 08:25:20
Oto inny sposób, aby to zrobić, umieszczając gliphicon za pomocą :before
pseudo element w CSS.
Praca demo w jsFiddle
Dla tego 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>
Użyj tego CSS (Bootstrap 3.x i Webkit kompatybilny z przeglądarkami )
.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;
}
Jak powiedział @ Frizi, musimy dodać pointer-events: none;
, aby kursor nie zakłócał ostrości wejściowej. Wszystkie pozostałe reguły CSS służą do centrowania i dodawania odpowiednich odstępów.
The wynik:
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-27 00:48:47
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">
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-02 10:02:30
Mam też jedną decyzję w tej sprawie z Bootstrap 3.3.5:
<div class="col-sm-5">
<label for="date">
<input type="date" placeholder="Date" id="date" class="form-control">
</label>
<i class="glyphicon glyphicon-calendar col-sm-pull-2"></i>
</div>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-23 18:00:25
Możesz użyć jego Unicode HTML
Aby dodać ikonę użytkownika, po prostu dodaj {[1] } do atrybutu placeholder
, lub gdziekolwiek chcesz.
Możesz sprawdzić Ten ściągacz.
Przykład:
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<input type="text" class="form-control" placeholder=" placeholder..." style="font-family: 'Glyphicons Halflings', Arial">
<input type="text" class="form-control" value=" value..." style="font-family: 'Glyphicons Halflings', Arial">
<input type="submit" class="btn btn-primary" value=" submit-button" style="font-family: 'Glyphicons Halflings', Arial">
Nie zapomnij ustawić czcionki wejścia na Gliphicon, używając następujący kod:
font-family: 'Glyphicons Halflings', Arial
, gdzie Arial jest czcionką zwykłego tekstu na wejściu.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-21 21:49:38
Jeśli masz szczęście, że potrzebujesz tylko nowoczesnych przeglądarek: wypróbuj css transform translate. Nie wymaga to owijania i można go dostosować tak, aby można było zezwolić na większe odstępy dla wejścia [type=number], aby pomieścić spinner wejściowy lub przesunąć go na lewo od uchwytu.
@import url("//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css");
.is-invalid {
height: 30px;
box-sizing: border-box;
}
.is-invalid-x {
font-size:27px;
vertical-align:middle;
color: red;
top: initial;
transform: translateX(-100%);
}
<h1>Tasty Field Validation Icons using only css transform</h1>
<label>I am just a poor boy nobody loves me</label>
<input class="is-invalid"><span class="glyphicon glyphicon-exclamation-sign is-invalid-x"></span>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-10 01:59:49
Powinieneś być w stanie to zrobić z istniejącymi klasami bootstrap i odrobiną niestandardowej stylizacji.
<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>
Edit do ikony odwołuje się klasa icon-user
. Odpowiedź ta została napisana w czasie Bootstrap w wersji 2. Możesz zobaczyć odniesienie na następującej stronie: http://getbootstrap.com/2.3.2/base-css.html#images
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-05 02:46:26