5 строк CSS кода и дополнительного интервала (для текста).
«Хитрость» заключается в том, чтобы установить flex-box child margin-right: auto
(значок переместиться влево «pu * 1052» * effect ") & для диапазона (" pu sh ")
button{
display: flex;
align-items: center;
justify-content: center;
}
button img{
margin-right: auto;
border: 1px solid red;
}
button span{
border: 1px solid red;
margin-right: auto;
}
<button style="width: 100%;">
<img src="https://svgshare.com/i/5vv.svg">
<span>
Hello world
</span>
</button>
<br>
<button style="width: 200px;">
<img src="https://svgshare.com/i/5vv.svg">
<span>
Hello world
</span>
</button>
important
Для получения «идеального выравнивания по горизонтали и влево» Не добавляйте никаких дополнительных верхних / нижних полей / отступов для содержимого внутри кнопки - иконка - или текст («Знаменитая» ошибка).
important-2
Удалить кнопку с фиксированной высотой (избежать проблем переполнения-y). Высота кнопки объявляется по содержимому (размер шрифта, изображение) и отступу / рамке ( box-model ). Если это действительно важно для вас, установите min-height
(not
height). пример разбитого фрагмента:
button{
display: flex;
align-items: center;
justify-content: center;
}
button img{
margin-right: auto;
border: 1px solid red;
}
button span{
border: 1px solid red;
margin-right: auto;
}
<button style="height: 20px;">
<img src="https://svgshare.com/i/5vv.svg">
<span style="font-size: 30px;">
40px height ==> ovefrlow issues
</span>
</button>
<br><br><br><br>
<button style="height: 30px; overflow-y: scroll">
<img src="https://svgshare.com/i/5vv.svg">
<span style="font-size: 40px;">
40px height ==> ovefrlow issues
</span>
</button>
Готово:)
Связано (Дополнительное чтение):