关于CSS中的line-height等于容器高为什么会居中

大家都用过line-height,可以实现垂直文本居中

//html
<p>
  这是文字
</p>
//css
p{
  height: 40px;
  line-height: 40px;
  border: 1px solid red;
  font-size: 20px;
}

执行结果
当然还可加入text-align:center它水平居中

一、line-height定义

引入一张网络图:
边框模型

[来源][https://www.jianshu.com/p/6e4d683f6cf2]

简单来说就line-height = 上间距+文字高+下间距

二、为什么会居中

因为

上间距+文字高+下间距= line-height = 边框高

上间距 = 下间距(我猜浏览器计算时候应该是 (line-height - 文字高)/ 2 计算上下间距的)

也可以把line-height看成一个盒子(只是一个比喻,跟盒子模型没关系)的高,就是整个盒子占据了所有的高,文字在那个盒子中是居中的,所以在那个盒子也是居中的。

三、拓展

试着想下,当line-height<font-size的时候会发生什么

//html
<p>
  这是文字
</p>
//css
p{
  height: 40px;
  line-height: 10px;
  border: 1px solid red;
  font-size: 20px;
}

间距 = (line-height - 文字高)/ 2 = (10 - 20)/ 2 = -5 px

上下边距都是 -5px

结果:

执行结果

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值