CSS(面试第1天)line-height三种赋值方式有什么区别?

Posted xxm980617

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CSS(面试第1天)line-height三种赋值方式有什么区别?相关的知识,希望对你有一定的参考价值。

1、line-height三种表示方法(带单位,纯数字,百分比)

/*直接在某个元素上使用,下面三种没有区别*/

p{line-height: 1.5em;}
p{line-height: 1.5;}
p{line-height: 150%;}

 

2、三者只是在给父元素使用行高,子元素继承的方式有区别

带单位:px(不用计算),em则会使元素以其父元素font-size值参考来计算自己的行高

纯数字:把比例传递给后代,例如父级行高为1.5,子元素字体为18px,则子元素行高为1.5*18=27px

百分比:将计算后的值传给后代

 

3、测试代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
.parent1{
    font-size:14px;
    line-height: 1.5em;
    background: #999;
    padding:10px
}
.parent2{
    font-size:14px;
    line-height: 1.5;
    background: #999;
    padding:10px
}

.parent3{
    font-size:14px;
    line-height: 150%;
    background: #999;
    padding:10px
}
.child{
    font-size:26px;
    background: #ccc;
}
    </style>
</head>
<body>
    <div class="parent1">
      <div class="child">line-height: 1.5em;</div>
    </div>
    <br><br>
    <div class="parent2">
      <div class="child">line-height: 1.5;</div>
    </div>
     <br><br>
    <div class="parent3">
      <div class="child">line-height: 150%;</div>
    </div>
</body>
</html>

 

 效果如图

技术图片

 

分析:

       1)line-height: 1.5em 时子行高继承的是父元素计算后的行高

  比如:父行高: line-height = font-size*line-height= 14*1.5=21,  子行高: 26px,    子行高=26 > 父行高=21  所以此时会超过父亲

  2 ) line-height:  1.5 : 子元素直接继承这个1.5, 

       此时: 子行高=26*1.5 =  39 

  3)同1

 

4、感谢分享

https://www.jianshu.com/p/76071076a8f6

以上是关于CSS(面试第1天)line-height三种赋值方式有什么区别?的主要内容,如果未能解决你的问题,请参考以下文章

前端面试每日 3+1 —— 第771天

前端面试每日 3+1 —— 第740天

前端面试每日 3+1 —— 第867天

前端面试每日 3+1 —— 第753天

前端面试每日 3+1 —— 第751天

前端面试每日 3+1 —— 第770天