• line-height详解


    line-height详解

      要说line-height就必须要知道这几个概念了: 顶线、中线、基线、底线。 这也就是在vertical-align中可能用到的top,middle,baseline和bottom属性了。那么究竟是什么呢? 

      撒玛利亚人 写的非常好,大家可以学习。

      

      这里,由上到下即为 顶线, 中线,基线和底线,其中基线是第三个。

      而什么是所谓的行高line-height呢?

      定义是行高为两行中基线的距离,其实我们也可以理解为任意两个相对的线的距离。   而第一行中的基线和下面一行中的顶线就是行距。那么显然半行距就是中间灰色区域的一半了。

      font-size 即为字体的高度,即字体所占的真正的高度,即深灰色的部分。

      什么使内容区呢?

      内容区就是图中深灰色的部分,即底线和顶线所包裹的区域。

      

      什么是行内框呢?

      每个行内元素会生成一个行内框,行内框是一个浏览器渲染模型中的一个概念,无法显示出来,在没有其他因素影响的时候(padding等),行内框等于内容区域,而设定行高时行内框高度不变,半行距【(行高-字体size)/2】分别增加/减少到内容区域的上下两边(深蓝色区域

      

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

      

      好了,那什么是line-height呢? 

      定义:line-height 属性设置行间的距离(行高),不能使用负值。该属性会影响行框的布局。在应用到一个块级元素时,它定义了该元素中基线之间的最小距离而不是最大距离。line-height 与 font-size 的计算值之差(行距)分为两半,分别加到一个文本行内容的顶部和底部。可以包含这些内容的最小框就是行框。

      值得注意的是:一个行内元素如span不是被其中的文字撑开的,而是由其中的line-height撑开的,看下面的这个例子:

    <!DOCTYPE html>
    <html>
    <head>
        <title>for test</title>
        <style>
        
            .test1{font-size:20px; line-height:0; border:1px solid #cccccc; background:blue;}
            .test2{font-size:0; line-height:20px; border:1px solid #cccccc; background:red;}
    
        </style>
    </head>
    <body>
            <div class="test1">test1内容,背景为蓝</div>
            <div class="test2">test2内容,背景为红</div>
    
    </body>
    </html>

      效果如下所示:

      可以看到,test1虽然设置了字体大小,但是却没有吧Line-height的span撑起来。

      而虽然test的font-size为0,但是因为设定了行高,所以被撑起来了。

      line-height可能的值如下所示;

      

      即默认为normal我们一般都不设定。

      而line-height也可以设置为数字,他表示是与字体尺寸相乘来设置行间距。length即设置固定的行间距。

      

      应用;

      1.对于p等,设置height和line-height相等,这样文字就居中了 。

      2.对于div中的img,可以给div设置height和line-height相等,然后给img设置vertical-align:middle;即可实现。

      张鑫旭文章

      

      

  • 相关阅读:
    Windows程序调试系列: 使用VC++生成调试信息 转
    mysql基础
    mysql bug
    VS2010下配置Winpcap 开发环境
    WIN7 下面 装XP
    Iptables 指南 1.1.19
    mysql内核 innodb存储引警(卷1)配书 用VS 2003 编绎 mysql-3.23.49 源代码
    cmake
    Windows+VS2012环境下编译调试MySQL源码 转
    哈佛图书馆自习室墙上的训言 (自勉)
  • 原文地址:https://www.cnblogs.com/zhuzhenwei918/p/6404088.html
Copyright © 2020-2023  润新知