Как решить эту проблему? - PullRequest
2 голосов
/ 11 января 2010
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>test</title>
</head>
<body>
<br /><br /><br />
<div style="line-height:150%">
<span style="display:block;font-size:240%;">test</span>
</div>
</body>
</html>

Сначала дважды щелкните по тексту test, затем он подсвечивается,

тогда через firebug вы можете увидеть, что <span> в нем короче самого текста

Как заставить span автоматически расти с текстом?

Ответы [ 2 ]

4 голосов
/ 11 января 2010

Попробуйте изменить line-height на 1.5

1 голос
/ 11 января 2010

Это ваш оригинальный код:

<div style="line-height: 150%;">
 <span style="display: block; font-size: 240%;">Test</span>
</div>

Устанавливает line-height всех элементов внутри div на 150%. Этот процент относится к их вычисленному размеру шрифта. span наследует font-size от div, и line-height рассчитывается на основании этого. Вы устанавливаете font-size из span в 24 раза больше его унаследованного размера, но line-height не затрагивается.

Вкратце: line-height: 150% для вычисления высоты шрифта элемента потребует 150% от вычисленного размера шрифта элемента, что эквивалентно умножению на 1,5.


Как уже упоминалось, использование line-height: 1.5; вместо этого исправляет это поведение:

<div style="line-height: 1.5;">
 <span style="display: block; font-size: 240%;">Test</span>
</div>

Это вызывает пересчет line-height на основе нового размера шрифта. Он устанавливает line-height всех элементов внутри div в 1,5 раза. Этот процент относительно их фактического размера шрифта. span наследует font-size от div. Вы устанавливаете font-size из span в 2,4 раза больше его унаследованного размера, и на основании этого вычисляется новый line-height.

Вкратце: line-height: 1.5 (без единиц) умножит фактический размер шрифта элемента на 1.5 для вычисления высоты строки.

...