2017-02-02 2 views
2

Борьба с выравниванием глификон, по-видимому, я не понимаю, как работает размер шрифта. In this fiddle У меня есть два divs, содержащих некоторые символы с одинаковым размером шрифта, но они в конечном итоге имеют разную высоту.Что такое размер шрифта, почему эти две коробки имеют разную высоту?

body { 
 
    line-height: 1; 
 
    font-family: Helvetica; 
 
    font-size: 60px; 
 
} 
 
.wrapper { 
 
    background: lightblue; 
 
    width: 300px; 
 
    height: 100px; 
 
    position: relative; 
 
} 
 
.left { 
 
    width: 50%; 
 
    position: absolute; 
 
    left: 0; 
 
    background: darkred; 
 
} 
 
.right { 
 
    width: 50%; 
 
    position: absolute; 
 
    right: 0; 
 
    background: darkgreen; 
 
} 
 
.text::before { 
 
    content: "60px"; 
 
} 
 
.myglyphicon { 
 
    font-family: 'Glyphicons Halflings'; 
 
} 
 
.myglyphicon::before { 
 
    content: "\e046"; 
 
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.css" rel="stylesheet"/> 
 
<div class="wrapper"> 
 
    <div class="left"> 
 
    <span class="myglyphicon"></span> 
 
    </div> 
 
    <div class="right"> 
 
    <span class="text"></span> 
 
    </div> 
 
</div>

кажется, что различные шрифты типов могут производить различные высоты для того же размера шрифта, но я до сих пор не понимаю, почему div.right игнорирует негабаритный срок и имеет правильную (строка -) высота 60 пикселей, но div.left нет? Более того, высоты span отличаются на 4px, но divs отличаются на 9px ?!

ответ

1

Фактически они имеют одинаковую высоту. Используйте элемент проверки, чтобы увидеть, что происходит. Проблема заключается в контейнере и положении пролета в контейнере. Добавьте блок отображения к myglyphicon, тогда положение диапазона обоих будет одинаковым.

.myglyphicon::before { 
    font-family: 'Glyphicons Halflings'; 
    content: "\e046"; 
    display: block; 
} 
+0

Хорошо, возможно, дивы ведут себя по-другому, потому что левый диапазон странно позиционируется, но почему это так? Размеры жесткого диска не являются решением проблемы. – Steven

+0

Я отредактировал свой ответ, без размеров жесткого кодирования. Заставляя span вести себя как блок, высота устанавливается правильно. Это только исправление, я не знаю, почему это происходит ... – Dais

+0

Псевдоэлемент был «Glyphicons Halflings», в то время как содержащий диапазон был шрифтом по умолчанию. Различные типы шрифтов могут создавать разные высоты линий с одинаковым размером шрифта, поэтому диапазон имел высоту 67 пикселей, а псевдоэлемент - 71px. Затем он выровнял два разных ограничивающих прямоугольника своими базовыми линиями. Вот почему позиционирование показалось странным. Вопрос о том, как дивы решают, что их высоты все еще остаются. – Steven

Смежные вопросы