【基线、内容区、 行高/行间距、行距、 行内框、行框的 区分说明】


⑴ 基线:小写 ‘x’ 的下边缘

  • 基线
    • 沿着 文本最底部的 一行线,基线(base line)并不只是 汉字文字的下端沿;
      • 若一行文本 有中文和英文,则基线会在 英文 ‘x’ 最底部
      • 即 基线通常是指 小写字母“x”的下边缘,它是文本行的参考线,用于确定 文本行的垂直对齐位置。

  • 行高、基线、顶线、中线、底线 示例图

    • 行高、基线、顶线、中线、底线图

  • 元素框
    • 每个元素 都会生成 一个或多个 矩形框,这称为 元素框。

⑵ 内容区:内容区高度 = 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 中也没有所谓的“行距”属性,只是概念和称呼上的区别。
          • 而我们只需要 设置好 行高 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 倍。所以,即便没有设置行高,上下行的文字 也不会重合在一起;

♣ 结束语 和 友情链接


  • 感谢:♥♥♥ 如果这篇文章 对您有帮助的话,可以点赞、评论、关注,鼓励下作者哦,感谢阅读 ~
  • 欢迎指正: 如果发现 有需要 更正的细节问题,欢迎指正,谢谢大家 ~╮( ̄▽ ̄)╭

  • 转载 请注明出处 ,Thanks♪(・ω・)ノ
    • 作者:Hey_Coder
    • 来源:CSDN
    • 原文:https://blog.csdn.net/VickyTsai/article/details/103000077
    • 版权声明:本文为博主原创文章,转载请附上博文链接!

在这里插入图片描述

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值