基线、内容区、 行高/行间距、行距、 行内框、行框的 区分说明
⑴ 基线:小写 ‘x’ 的下边缘
- 基线
- 沿着 文本最底部的 一行线,基线(base line)并不只是 汉字文字的下端沿;
- 若一行文本 有中文和英文,则基线会在 英文 ‘
x
’ 最底部。 - 即 基线通常是指 小写字母“x”的下边缘,它是文本行的参考线,用于确定 文本行的垂直对齐位置。
- 若一行文本 有中文和英文,则基线会在 英文 ‘
- 沿着 文本最底部的 一行线,基线(base line)并不只是 汉字文字的下端沿;
-
行高、基线、顶线、中线、底线 示例图
- 元素框
- 每个元素 都会生成 一个或多个 矩形框,这称为 元素框。
⑵ 内容区:内容区高度 = font-size 大小
- 内容区:指 底线 和 顶线 包裹的区域 ;
- 行内元素
display:inline
可以通过background-color
属性显示出来;- 各元素框中心 有一个 内容区,这个内容区 周围有 可选的内边距、边框和外边距。
- 实际中 不一定看得到,但确实存在。
- 内容区的大小: 根据 字体大小
font-size
的值 和字数 进行变化。- 对于 行内 非替换元素 或 匿名文本 某一部分
-
内容区的 高度:内容区高度 =
font-size
大小;- 字体大小
font-size
值 确定了 内容区的高度。- 如果一个 行内元素
font-size:15px
,则 内容区的高度 =15px
。
- 如果一个 行内元素
- 内容区 就是一个框,而 每一个文字 都有它的
em
框(em
框 确定 内容区高度)。
- 字体大小
-
-
- 对于 行内 非替换元素 或 匿名文本 某一部分
- 行内元素
⑶ 行高/行间距 :文字本身的高度 font-size + 行距 /文字上下的空白区域
- 行高/行间距(
line-height
):-
行高:指的是 一行文字的高度,包括 “文字本身的高度
font-size
” 以及 “文字上方和下方的空白区域/ 行距”。- 行高决定了 文本行与行之间的垂直距离;
- 即 内容区 和 以内容区为基础 对称拓展的 空白区域,我们称之为 行高。
- 所以,很显然,内容区 一般是小于 行高的;
-
行高和行间距:一般情况下,也可以认为 行高 指的是一行文本的基线 到下一行文本基线的距离,即 两行文本 基线之间的垂直距离,所以 也会被称之为“行间距”,即 行间距 是行高的别称。
- 注:行间距 到底是什么?
- 行间距= 行高?:
- 在 CSS 中,并没有一个专门的“行间距”属性。通常所说的行间距,有人认为 实际上是指的 行高
line-height
属性,它用于设置 行与行之间的距离(两行基线之间的垂直距离,不是空白间距),也就是行高;
- 在 CSS 中,并没有一个专门的“行间距”属性。通常所说的行间距,有人认为 实际上是指的 行高
- 行间距=行距?:
- 也有人认为 行间距 指代行距(文本之间的空白,不含文字本身的高度)的,所以,说到行间距,在概念上 会有一点混淆,但没有关系,因为 CSS 中也没有所谓的“行距”属性,只是概念和称呼上的区别。
- 而我们只需要 设置好 行高
line-height
属性 和 字体大小font-size
属性 就能很好地设置文字大小,并调整好 文字和文字之间的垂直距离;所以,即便分不清“行间距”到底指代什么,也完全不影响实际设置。
- 行间距= 行高?:
- 注:行间距 到底是什么?
-
行高、字体大小、行距 的关系:让元素在指定区域内 上下居中时,
- 行高
line-height
= 行距 + 字体大小font-size
; - 行距(文字间的上下空白) = 行高 - 字体大小 =
line-height
-font-size
;
- 行高
-
行高、字体大小 和 文字间垂直的空白距离:
- 文字重合:行高
line-height
< 字体大小font-size
时, 将出现 行距为负数的情况,也就是两行文字之间 不仅没有空白间隔,还会有一部分重合在一起。 - 文字间有空白:只有 行高
line-height
> 字体大小font-size
时,行距为正数,文字的上下 才会多出一点空白间隔; - 上图文字说明 “半行间距” = 一半的行距,是把 行间距 指代为 行距了,而不是行高;
- 黑色箭头 指的是 半行间距 = 半个行距 = 底线 和 行内框的垂直距离;
- 行距 = 上行底线和下行顶线 之间的距离 (= 两个内容区之间的空白距离)
- 整个行距的组成 顺序是:上行底线→ 行内框 → 下行顶线;
- 文字重合:行高
-
⑷ 行距:行距(文字间的上下空白) = 行高 line-height - 字体大小 font-size
-
行距:指的是 相邻文本行之间的距离,不包括 文本本身的高度,通常是由 行高减去字体大小得出的。
- 行距(文字间的空白) = 行高 - 字体大小 =
line-height
-font-size
;- 即 相邻文本行之间的距离,即 指相邻文本行间 上一个文本行底线 和 下一文本行顶线之间的距离。
- 行距 = 上行底线和下行顶线 之间的距离 (= 两个内容区之间的空白距离)
- 整个行距的组成 顺序是:上行底线→ 行内框 → 下行顶线
- 上面 半个行距 = 上行底线 和 上行行内框之间的距离 ;
- 下面 半个行距 = 下行行内框 和 下行底线之间的距离;
- 上下行的行内框 一般是紧挨着的,所以 即便设置 上下外边距
margin
也不会增加 上下行内元素之间的垂直距离;- 此处的 阴影部分行间距 = 行距,不是行高;
- 行距的分布:
- 只看一行时,是将行距的值 / 2,分别增加到 内容区域的 上下两边,如 上图 ↑。
- 行距 = 行高
line-height
- 字体尺寸font-size
(=内容区高度=顶线和底线之间的距离) ,如 下图 ↓;-
= 行距 元素行高和字体尺寸的 差值 = (上文本行的 行高 - 内容区高度)/2 +(下文本行的 行高 - 内容区高度)/2。
-
-
- 行距(文字间的空白) = 行高 - 字体大小 =
-
行距的计算:在 CSS 中,行距可以通过
line-height
属性来间接控制。line-height
属性定义了一行文本的高度,包括了文本本身的高度 以及上下的空白区域(即 行距)。- 行距实际上是
line-height
减去字体大小(font-size
)的差值,然后将这个差值 平分到文本的上下两侧。
- 行距实际上是
-
例: 如果一个元素的 字体大小
font-size
是16px,行高line-height
是24px,那么行距可以这样计算:- 行距 = (
line-height
-font-size
) - 半个行距 = (
line-height
-font-size
)/2 = (24px - 16px)/2 = 4 px; - 这意味着在文本的顶部和底部 各有 4px 的空间,这 4px 的空间 就是行距的一部分。因此,行距通常是指行与行之间的空白区域,它影响着文本的可读性和整体的排版美观。
- 行距 = (
⑸ 行内框:行内框高度 = 行高 line-height
- 行内框:
- 行内框 是一个 虚拟的 矩形框,无法 在页面中 显示出来。
- 行内框 = 行高
line-height
= 字体大小(内容区)font-size
+ 行距- 调整 行内框间距:
- 水平距离:可以使用 水平的内边距
padding
、边框border
和外边距margin
调整它们的水平间距。 - 垂直距离:但是,垂直方向的 内边距、边框和外边距 不影响 行内框的高度,即 就算设置了 也不会在垂直方向上 挤走下一行的元素(因为是行内元素,只作用于行内)。
- 水平距离:可以使用 水平的内边距
- 调整 行内框间距:
- 行高≠ 行内框的 情况
- 图片、行框、行高:
- 图片的高度 大于行高时 会把行框 撑开;
- 但,即便图片 撑开了行框,却 不会影响 行高的值。
- 图文的垂直对齐: 当行内元素 含有图片的时候,图片 和 文字的 垂直对齐方式 默认是 基线对齐.。
- 图片、行框、行高:
⑹ 行框 :行框高度 = 多个行内元素 行高 line-height 的最大值;行内框 最大的行高;能包含所有的行内框)
-
行框
- 虚拟的矩形框:指本行的 一个 虚拟的矩形框,是 浏览器渲染模式中 的一个概念,并没有 实际显示。
- 行框高度 等于本行内 所有元素中 行内框最大的值,即最大的行高。
- 一行 一个行框:当有 多行内容时,每行 都会有 自己的行框。
- 不同高度的 行内框:
- 一行文本中 会有 不同大小的文字,这就造成了 一行文本中有 不同高度的 行内框,见下图 ↓。
- 行框的高度 = 所有 行高的最大值 = 一行文本中 最高行内框的顶端 到 最低行内框的低端 之间的距离 ;
- 行框的高度 总是 足以容纳 它包含的 所有行内框。设置行高 可以增加 这个行框的高度。
- 并且 下一行的 行框的顶端 挨着 上一行 行框的底端;(文本之间的空白 是行距)
- 行框的高度 总是 足以容纳 它包含的 所有行内框。设置行高 可以增加 这个行框的高度。
- 虚拟的矩形框:指本行的 一个 虚拟的矩形框,是 浏览器渲染模式中 的一个概念,并没有 实际显示。
-
行内框和行框 的区别
-
行内框:是针对单个行内元素的,而行框是针对整行文本的。
-
行内框的高度:由字体大小和行距决定,而行框的高度 则是由行内框中的最大行高决定,以确保所有行内元素都能被包含在内;
- 即,行框的高度 = 所有行内元素中 行高
line-height
的最大值 ;
- 即,行框的高度 = 所有行内元素中 行高
-
例: 下图中 文字分别放在多个行内元素中,而 行内元素 文字“box”的行高
line-height
最大,所以,这个行内元素 的行高line-height
就是 这一行的行框的高度; -
默认的行高
- 根据 MDN 的文档,如果没有明确设置 行高
line-height
属性,大多数桌面浏览器 的默认值约为1.2
,这取决于元素的font-family
。这意味着,如果字体大小没有被明确设置,那么行高默认值 通常是 字体大小的 1.2 倍。所以,即便没有设置行高,上下行的文字 也不会重合在一起;
- 根据 MDN 的文档,如果没有明确设置 行高
-
♣ 结束语 和 友情链接
- 感谢:♥♥♥ 如果这篇文章 对您有帮助的话,可以点赞、评论、关注,鼓励下作者哦,感谢阅读 ~
- 欢迎指正: 如果发现 有需要 更正的细节问题,欢迎指正,谢谢大家 ~╮( ̄▽ ̄)╭
- 转载 请注明出处 ,Thanks♪(・ω・)ノ
- 作者:Hey_Coder
- 来源:CSDN
- 原文:https://blog.csdn.net/VickyTsai/article/details/103000077
- 版权声明:本文为博主原创文章,转载请附上博文链接!