x
最底部。inline
元素可以通过background-color
属性显示出来font-size
的值 和 字数 进行变化。font-size
值 确定了 内容区的高度。inline
元素font-size:15px
,则 内容区的高度 = 15px。em
框(em
框 确定 每个文字的高度)。line-height
)font-size
line-height
< 字体大小font-size
时, 将出现 行距为负数的情况,也就是两行文字 将部分重合。3
垂直距离/2
,区域1
,2
,3
,4
的距离之和为行高,而区域1
,2
,4
距离之和为字体size
,所以半行距也可以这么算:(行高-字体size)/2
。(行高-字体size)/2
]分别增加/减少到内容区域的上下两边(深蓝色区域)。line box
):行框是指本行的一个虚拟的矩形框,是浏览器渲染模式中的一个概念,并没有实际显示。行框高度等于本行内所有元素中行内框最大的值(以行高值最大的行内框为基准,其他行内框采用自己的对齐方式向基准对齐,最终计算行框的高度),当有多行内容时,每行都会有自己的行框。line-height
的大小为元素的高度即可实现效果。
<div style="line-height:100px;border:dashed 1px #0e0;">
This is a test.
</div>
行框高度是行内最高的行内框高度,通过line-height
调整,内容区高度与字体尺寸有关,padding
不对行高造成影响。设置padding
增加的是 行内框(内容区)向外扩散的距离。但行高还是不变的,也就是说,如果padding
设置的比行高大,就会出现行内框 > 行框的现象。但是在文档流中,padding
是会占据空间的,如果有父元素,父元素的高度还是按照行高来决定。
<div style="border:dashed 1px #0e0;margin-bottom:30px;">
<span style="font-size:14px;background-color:#999;">This is a test</span>
</div>
<div style="border:dashed 1px #0e0;">
<span style="font-size:14px;padding:20px;background-color:#999;">This is a test</span>
</div>
第二个
span
虽然因为padding
原因内容区变大,但行高并未改变。
行高是可继承的,但并不是简单的copy
父元素行高,继承的是计算得来的值。
<div style="border:dashed 1px #0e0;line-height:1.5;font-size:10px;">
<p style="font-size:30px;">
1232<br/>
</p>
</div>
如果属性值没有单位,则浏览器会直接继承这个因子(数值)
,而非计算后的具体值,此时它的line-height
会根据本身的font-size
值重新计算得到新的line-height
值。
参考文章1:(46条消息) 【基线,内容区, 行高/行间距,行距, 行内框,行框的 区分说明】_Hey_Coder-CSDN博客
参考文章2:css基线与行高 - 简书 (jianshu.com)
参考文章3:行内框和行框的概念,line-height和vertical-align的关系理解 - true! - 博客园 (cnblogs.com)
参考文章4:【学习笔记】理解 line-height - 掘金 (juejin.cn)
参考文章5:深入理解 CSS:字体度量、line-height 和 vertical-align - 知乎 (zhihu.com)
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。