Подтвердить что ты не робот

Как центрировать выравнивание шрифта удивительные значки по вертикали в круге div?

Я пытаюсь центрировать выравнивание шрифта вокруг центра значков по вертикали. Если есть текст, мы можем сделать это, используя свойство line-height, даже я попытался дать line-height ту же высоту, что и высота div.

Пробовал display:inline-block и vertical-align:middle не сделал трюк.

Как центрировать значки вертикально во всех размерах. Он должен быть динамическим, так как размер значка может отличаться. Так что hardcode margin-top может не работать для другого размера значка, а также div.

CODE

.exp{
    width:80px;
    height:80px;
    background-color:red;
    border-radius:100%;
    line-height:80px;
    text-align:center;
    vertical-align:middle;
    display:inline-block;
}

JSFIDDLE

4b9b3361

Ответ 1

Вы можете использовать line-height для выравнивания значка в div.

Попробуйте добавить этот .fa-camera-retro { line-height: inherit;} к вашему css. Использование inherit позволяет line-height взять высоту содержащего div, поэтому все значки будут центрироваться, даже если эти divs имеют разные размеры. Если вы хотите, вы также можете установить line-height на высоту div в пикселях, чтобы явно центрировать его, то есть line-height: 80px ,

Здесь приведен пример работы fiddle.

Ответ 2

Не отвлекать от решения, которое отлично работает, но Font Awesome 4 имеет отличную функцию укладки, которая может использоваться со следующим кодом.

<span class="fa-stack fa-2x">
    <i class="fa fa-circle fa-stack-2x"></i>
    <i class="fa fa-flag fa-stack-1x fa-inverse"></i>
</span>

Здесь есть некоторые действительно приятные варианты и комбинации, которые можно найти здесь.

Ответ 3

Установите класс для шрифта awesome таких как .fa-vc затем добавьте его во весь шрифт, который вы хотите, чтобы он был выровнен с другим текстом. ваш код будет выглядеть (этот образец является знаком "x" )

<i class="fa fa-times fa-vc"></i>

и установите этот класс в

.fa-vc{line-height:inherit!important;}

это приведет к переопределению шрифта по умолчанию (line-height: 1px)

проблема решена...

Ответ 4

Здесь mixin, который мне нравится использовать для общего вертикального выравнивания:

@mixin vertical-align($position: relative) {
  position: $position;
  top: 50%;
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
}

@include vertical-align;

Прекрасно работает, если вы используете Boostrap, используйте класс center-block, и он идеально по центру.

Ответ 5

vertical-align: middle будет работать, если вы установите div display: table-cell
http://jsfiddle.net/M3jxT/484/

Ответ 6

равная линия-высота и выравнивание текста: центр работает очень хорошо, чтобы сделать значок посередине как по вертикали, так и по горизонтали. Однако, если вы хотите сделать что-либо центрированное как по вертикали, так и по горизонтали динамическим способом, код вроде этого -

Разметка:

<div class="container>
   <div class="target">
   </div>
</div>

CSS

.container{
   position: relative;
}

.target{
   position: absolute;
   top: 50%;
   left: 50%;
   transform: translate(-50%,-50%);
}

Ответ 7

Использование класса fa-fw делает их правильно выровненными.

<div class="col-sm-1"> 
    <i class="fa fa-mobile fa-fw"></i>
</div>

Проверьте действие. http://jsfiddle.net/ahj0ncpa/

Ответ 8

Я столкнулся с аналогичной проблемой для вертикального выравнивания шрифта, удивительного значка в хроме и Mozilla.

У меня был div, обертывающий мой удивительный элемент шрифта.

Мой HTML:

<div class="icon-wrap">
    <span class="fa fa-times"></span>
</div>

задание размера шрифта в em устраняет проблему.