2014-01-20 6 views
2

У меня ситуация, когда родительский DOM-элемент имеет довольно большое значение em. Проблема заключается в том, что все встроенные дочерние элементы получают огромный запас над ними, даже если их размер шрифта гораздо меньше:Как избавиться от пространства над пролетом, если размер шрифта родителя огромен?

enter image description here

Источник (http://jsfiddle.net/rapik/w87m7/2/):

<div style="font-size: 100px; border: 1px solid red;"> 
    <span style="font-size: 0.1em;">How to get rid of the space above without changing the font-size or display properties?</span> 
</div> 

Как я могу избавиться от от этого пробела без изменения размера шрифта? Я также не хочу менять тип отображения элемента на «block».

Я попытался изменить высоту линии, но не удалось.

P. S. В случае, если вам интересно, зачем мне это нужно: Chrome имеет «функцию», которая предотвращает размер шрифта меньше 6 пикселей в любое время. Поэтому я умножил все значения на десять и получил эту проблему. Соответствующий вопрос: Problems using em units in Chrome

+1

jsfiddle ссылка не работает мат! !! – NoobEditor

+0

Спасибо, теперь исправлено :-) – Andrej

+0

вы всегда можете уменьшить высоту линии на div, скажем, 0.1em – bouscher

ответ

1

Я предполагаю, что размер шрифта на div ведет к соответствующей строке-высоте; следовательно, «разрыв».

Так устанавливая высоту строки для фактического размера шрифта, который вы собираетесь использовать в пролете удалит его в сочетании с уже упомянутой вертикальной выравнивать:

<div style="font-size: 100px; border: 1px solid red; line-height: 0.1em;"> 
<span style="font-size: 0.1em;vertical-align:top">How to get rid of the space above  without changing the font-size or display properties?</span> 
</div> 
1

Попробуйте добавить vertical-align:top, в противном случае дочерние элементы будут выровнены по отношению к базовой линии.

+0

это * есть * ответ ... если 'дисплей' type не планируется менять !! :) – NoobEditor

+0

Спасибо, это помогает, но пробел все еще есть - под текстом ... – Andrej

+0

@ Аndrej почему бы вам просто не установить размер шрифта на родителя меньшего размера, чем ??? – Huangism

0

Это добавлено height и vertical align должно позаботиться об этом за вас.

<div style="height: 25px;font-size: 100px; border: 1px solid red;"> 
<span style="font-size: 0.1em;vertical-align:top;">How to get rid of the space above without changing the font-size or display properties?</span> 
</div>