豁然高

导航

css 行高

文本四线,从上到下分别是顶线,中线,基线,底线。

 

1. 行高:是指上下文本行的基线见的垂直距离,即途中两条红线间的垂直距离。(途中上下两条同色线间的垂直距离)

2. 行距:是指一行底线到下一行顶线的垂直距离。

3.半行距:行距的一半

 

1.内容区:

  文本行中的每一个元素都会生成一个内容区,这个由字体的大小确定,但高度并不是字体大小,内容区比字体大小大。这个内容区则会生成一个行内框。

  如果不存在其他因素,这个行内框就完全等于该元素的内容区。由line-height产生的行间距就是影响行内框高度的因素之一

2.行内框:行内框是一个浏览器渲染模型中的一个概念。无法显示出来。行内框默认等于内容区域。将line-height的计算值减去font-size的计算值,就是总行距。这个值可能是负值,任何将行间距/2 分别应用到内容区的顶部和底部,其结果就是该元素的行内框

3.行框:行框是指本行的一个虚拟的矩形框。是浏览器渲染模式中的一个概念,并没有实际显示。默认情况下行框高度等于本行内所有元素中行内框最大的值(一行上垂直对齐时以行高值最大的行内框为基准,其他行内框采用自己的对齐方式向基准对齐,最终计算行框的高度)。当有多行内容时,每行都会有自己的行框。

 

结论:感觉上面的概念不太符合实际情况。

个人总结

  1.内容区大小由字体大小决定,但大于字体大小。默认情况下,行框就等于内容区的高度和位置,

  2.如果指定了行高,如果行高大于字体大小,那么行框高度就等于行高高度,字体和行框中间对齐

   如果行高小于字体大小,那么行框高度会缩小,但不会等于行高,行框也不会和字体中间对齐。

   所以设置行高时,尽量让行高大于字体 大小。

  3.行框的高度决定父元素的高度(父元素未设置高度时)

  4.行高是可以被继承的。只有因子值会被子元素继承换算前的因子,其他会继承换算后的像素

 

  行高最常用的功能:单行文本垂直居中(设置行高为元素高度)

 

实例

<body >
    <div id="d1">
       <span id="s1">中文English</span>
    </div>
</body>

css代码1,未指定行高

#d1 {
    background: pink;
    width:300px;
    margin:100px auto;
}
#s1 {
    background: deeppink;
    font-size: 40px;
    /* line-height: 80px; */
}

 

 

 

css代码2, 行高大于字体大小

#d1 {
    background: pink;
    width:300px;
    margin:100px auto;
}
#s1 {
    background: deeppink;
    font-size: 40px;
    line-height: 80px;
}

 

 

 css代码3,行高小于字体大小(或许行框底部与底线对齐?)

#d1 {
    background: pink;
    width:300px;
    margin:100px auto;
}
#s1 {
    background: deeppink;
    font-size: 40px;
    line-height: 20px;
}

 

 

 

 

 

 

 

 

  

 

posted on 2022-09-12 23:19  豁然高  阅读(815)  评论(0编辑  收藏  举报