Ответ 1
Вы можете добавить vertical-align:middle
к элементам span
:
.nav-text {
vertical-align:middle;
}
У меня очень простой HTML-код, который смешивает простые текстовые и знаковые шрифты:
<div class="ui menu">
<a href="t" class="item"><i class="large home basic icon"></i><span class="nav-text"> Accueil</span></a>
<a href="" class="item"><i class="large camera retro icon"></i><span class="nav-text"> Créations</span></a>
<a class="item"><span class="nav-text">Qui-suis je </span><i class="large help basic icon"></i></a>
</div>
Проблема заключается в том, что значки не отображаются точно на той же высоте, что и текст:
Любое предложение исправить это?
Вы можете добавить vertical-align:middle
к элементам span
:
.nav-text {
vertical-align:middle;
}
Здесь уже есть несколько ответов, но я нашел flexbox самым чистым и наименее "хакерским" решением:
parent-element {
display: flex;
align-items: center;
}
Для поддержки Safari & lt; 8, Firefox & lt; 21 и Internet Explorer & lt; 10 (используйте этот полифилл для поддержки IE8 + 9), вам понадобятся префиксы поставщиков:
parent-element {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
}
vertical-align
может принимать значение единицы, поэтому вы можете прибегнуть к нему при необходимости:
{
display:inline-block;
vertical-align: 5px;
}
{
display:inline-block;
vertical-align: -5px;
}
Добавьте это в свой CSS:
.menu i.large.icon,
.menu i.large.basic.icon {
vertical-align:baseline;
}
Установите line-height
на вертикальный размер изображения, затем сделайте vertical-align:middle
, как сказал Джош.
поэтому, если изображение 20px
, вы бы имели
{
line-height:20px;
font-size:14px;
vertical-align:middle;
}
для вертикального и горизонтального использования:
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%,-50%);
Вы можете использовать это свойство: vertical-align:middle;
.selector-class {
float:left;
vertical-align:middle;
}
Добавление в промежутки
vertical-align:baseline;
Не работает для меня, но
vertical-align:baseline;
vertical-align:-webkit-baseline-middle;
работал (тестировался в Chrome)