Ответ 1
Макеты блоков, такие как div
по умолчанию, состоят из вертикального стека строк, которые никогда не имеют места между ними и никогда не перекрываются. Каждое линейное окно начинается с стойки, которая представляет собой воображаемый встроенный блок высотой высоты строки, заданной для блока. Строка строки затем продолжается с помощью встроенных блоков разметки в соответствии с их высотами строк.
На приведенной ниже диаграмме показан макет для вашего первого примера. Обратите внимание, что, поскольку в 1,7 раза высота шрифта намного меньше высоты стойки, высота линии определяется высотой стойки, так как поле строки должно полностью содержать свои встроенные прямоугольники. Если вы установили высоту линии на span
больше 200px, строки строк будут выше, и вы увидите, что текст перемещается дальше.
Когда вы создаете встроенный блок span
, связь между div
и span
не изменяется, но диапазон получает собственную структуру компоновки блоков со своим собственным стеком строк. Таким образом, текст и разрывы строк выкладываются внутри этого внутреннего стека. Стойка внутреннего блока в 1,7 раза превышает высоту шрифта, то есть то же, что и текст, а макет теперь выглядит так, как показано ниже, поэтому текстовые строки расположены ближе друг к другу, что отражает настройку высоты строки span
,
(Обратите внимание, что две диаграммы находятся в разных масштабах.)