CSS — высота ‹p› с нулевым отступом

Учитывая следующий HTML, какова общая высота элемента <p>? Я бы подумал, что это будет 1em, но это не так. Буквы, которые опускаются ниже базовой линии, кажется, сидят на каком-то поле, которое простирается ниже высоты шрифта.

<html>
  <head>
    <style>
      p {
        margin: 0;
        padding: 0;
        font-size: 1em;
        font-family: serif;
        border: 1px solid black;
      }
    </style>
  </head>
  <body>
    <p>Lorem ipsum.</p>
  </body>
</html>

person hololeap    schedule 06.10.2014    source источник
comment
нет свойства как font-height использовать line-height   -  person Vitorino fernandes    schedule 06.10.2014
comment
Я думаю, вам нужно line-height!   -  person Dhaval Marthak    schedule 06.10.2014
comment
попробуйте display:inline-block и vertical-align кроме baseline liebdich.biz/inlineblockincss   -  person loveNoHate    schedule 06.10.2014
comment
Извините, я имел в виду font-size.   -  person hololeap    schedule 06.10.2014


Ответы (1)


Высота тега <p> не обязательно будет такой же, как размер шрифта, потому что каждый шрифт имеет встроенную высоту строки. Если вам нужно, чтобы тег <p> был определенной высоты, вам нужно указать его с помощью свойства height или line-height.

Другое преимущество использования высоты строки заключается в том, что вы можете использовать ее вместе с выравниванием по вертикали для вертикального позиционирования текста.

person EternalHour    schedule 06.10.2014
comment
Это неправильно. Высота элемента p (когда он находится в состоянии display:block по умолчанию) не зависит ни от каких встроенных отступов шрифта. - person Alohci; 06.10.2014
comment
Мне было бы интересно увидеть ваш ответ на этот вопрос. - person EternalHour; 06.10.2014
comment
Применил ваше объяснение в скрипте, и похоже, что он работает. Fiddle. - person Mr_Green; 06.10.2014
comment
Ну, остальная часть вашего ответа находится на правильных линиях. Пример ОП - очень простой случай. Предполагая, что текст lorem ipsum помещается в одну строку, важны только размер шрифта и высота строки. - person Alohci; 06.10.2014
comment
В более сложных случаях, когда имеется несколько блоков встроенного уровня или когда высота строки контейнера не совпадает с одним или несколькими блоками встроенного уровня, эффекты настройки вертикального выравнивания также будут влиять на высота содержащего блок-контейнера. - person Alohci; 06.10.2014
comment
@Alohci Я понимаю, что ты говоришь. - person EternalHour; 06.10.2014
comment
Я также должен отметить, что display:inline отличается. В этом случае внутренние показатели шрифта действительно имеют значение. См. stackoverflow.com/questions/26041267/ для рабочего примера. - person Alohci; 06.10.2014
comment
Вместо «встроенного заполнения» вы должны ссылаться на значение по умолчанию line-height. Несмотря на то, что любое значение line-height, превышающее размер шрифта, создает пустое пространство над и под каждой строкой текста, его не следует называть отступом, особенно в контексте CSS, где padding — это отдельное свойство. - person Jukka K. Korpela; 06.10.2014