Скористайтеся батьківським .input-icon
ділом. За бажанням додати .input-icon-right
.
<div class="input-icon">
<input type="text">
<i>$</i>
</div>
<div class="input-icon input-icon-right">
<input type="text">
<i>€</i>
</div>
Зіставте значок вертикально transform
і top
, і набір pointer-events
для none
так , що клацання зосередитися на вході. Відрегулюйте padding
та, width
як це необхідно:
.input-icon {
position: relative;
}
.input-icon > i {
position: absolute;
display: block;
transform: translate(0, -50%);
top: 50%;
pointer-events: none;
width: 25px;
text-align: center;
font-style: normal;
}
.input-icon > input {
padding-left: 25px;
padding-right: 0;
}
.input-icon-right > i {
right: 0;
}
.input-icon-right > input {
padding-left: 0;
padding-right: 25px;
text-align: right;
}
На відміну від прийнятої відповіді, це дозволить зберегти підсвічування вхідних даних, наприклад, червону межу, коли є помилка.
Приклад використання JSFiddle з Bootstrap та Awesome Font