Верстаю кнопку с иконкой. Как обычно иконка находится слева, следом идёт текст. Текст с иконкой выровнены по центру кнопки(по горизонтали и вертикали.). При этом ширина кнопки зависит он ширины родительского элемента, и текст кнопки может переноситься на две строки, но текст и иконка при этом должны продолжать быть выровнены по центру кнопки.
Вариант 1:
/* Врап для иконки и текста */
.item {
position: relative;
padding-left: 1.5rem;
}
/* Иконка */
i {
position: absolute;
left: 0;
top: 50%;
margin-top: -.5rem;
}
/* Доп. стилизация для наглядности примера */
/* Врап для иконки и текста */
.item {
max-width: 150px;
width: 100%;
margin-bottom: 1rem;
}
/* Иконка */
i {
display: block;
width: 1rem;
height: 1rem;
background: #ccc;
}
/* Текст */
span {
display: inline-block;
vertical-align: middle;
}
<div class="item">
<i></i>
<span>Lorem ipsum dolor.</span>
</div>
<div class="item">
<i></i>
<span>Lorem ipsum dolor sit amet.</span>
</div>
Вариант 2 flex:
.item {
display: flex;
flex-flow: row nowrap;
align-items: center;
}
/* Доп. стилизация для наглядности примера */
.item {
max-width: 150px;
width: 100%;
margin-bottom: 1rem;
}
i {
display: block;
width: 1rem;
height: 1rem;
background: #ccc;
margin-right: .5rem;
}
span {
width: 90%;
}
<div class="item">
<i></i>
<span>Lorem ipsum dolor.</span>
</div>
<div class="item">
<i></i>
<span>Lorem ipsum dolor sit amet.</span>
</div>
Вариант 3 table:
.item {
display: table;
}
.icon {
display: table-cell;
vertical-align: middle;
}
/* Доп. стилизация для наглядности примера */
.item {
max-width: 150px;
width: 100%;
margin-bottom: 1rem;
}
.icon {
width: 1rem;
padding-right: .5rem;
}
.icon i {
display: block;
width: 1rem;
height: 1rem;
background: #ccc;
}
<div class="item">
<span class="icon"><i></i></span>
<span>Lorem ipsum dolor.</span>
</div>
<div class="item">
<span class="icon"><i></i></span>
<span>Lorem ipsum dolor sit amet.</span>
</div>
Надеюсь это то, что вы искали. Вот рабочий пример:
.parent {
width: 130px;
}
button {
width: 100%;
position: relative;
padding-left: 25px;
box-sizing: border-box;
word-wrap: break-word;
}
.icon {
width: 20px;
height: 20px;
position: absolute;
left: 0;
top: 50%;
transform: translate(0, -50%);
}
<div class="parent">
<button>
<span class="icon">✉</span>
Send e-mail to Mr.Smith
</button>
</div>
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Помогите понять причину сего поведения ссылок: При верстке на локальной машине, ссылки были белыми, как и прописано в CSSПосле размещения на хостинге...
В меню сделанном на bootstrap и меня много пунктов меню и при определенном разрешении экрана, они сползают на 2оу строчку - фидлКак сделать так,...
Всем привет! Столкнулся с проблемой и решил отписать сюда, так как гугл мне не помогСоздал сайт на локалке всё работает как надо загрузил...
Данный вопрос уже был задан и имеет решение: