博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
浅谈line-height
阅读量:7211 次
发布时间:2019-06-29

本文共 1513 字,大约阅读时间需要 5 分钟。

基础知识

有4种模型,分别是

  • 块,块盒模型 containing boxing,包括line

  • 行内盒模型 inline boxing ,包含content

  • 行模型 line boxing,包含inline,line高度是由最高的inline元素决定.

  • 内容区域 content area

这部分内容可以着重看 有详细的介绍。

line-height与line boxes高度

由上面的内容可以总结出line boxes 的高度取决与其下属的inline boxes 中最高的元素。

对于像input这样的元素,在不同浏览器上line-height属性表现是不同,参考

垂直居中的特性

行高还有一个特性,叫做垂直居中性。line-height的最终表现是通过line boxes实现的,而无论line boxes所占据的高度是多少(无论比文字大还是比文字小),其占据的空间都是与文字内容公用水平中垂线的。 ----张鑫旭的博文

我们经常看到一种垂直居中的方法,那就是让heightline-height 相同

text-vertical{        height:30px;        line-height:30px;    }

其实在这里起作用的是line-height , 只要设置好了line-height ,在不设置height 的情况下一个div 的高度就是他的line-height 的值

结果如图:在chrome的测试下

多行文字垂直居中

在看了张鑫旭大神的博文后, 发现不使用最后的i标签也是可以做到垂直居中的,可能是他当时写那篇文章的时间太久,浏览器的更新问题等, 在最新版本的测试下,不必使用i标签,只使用line-height 就能解决问题,如果发现旧浏览器不支持,可以采用他博客中提到的方法.

行高在文章中的应用

line-height赋值方式px/em、百分值、normal、数值、inherit继承。px/em和inherit没什么好说的, normal与数值1.2等价 ,所以下面重点说说百分比和数值两种赋值方式的区别.

line-height百分比

line-height百分比赋值的结果是当前line-height的值乘以这个百分比数值得到的.demo如下:

外层的 div.wrapline-height 计算结果是 20px*150% = 24px;

2016-07-06131603.png

内部的h1标签和 p标签的通过继承得到 line-height:150% 然后最后的结果仍然是24px

2016-07-06132005.png2016-07-06132121.png

line-height采用百分比的情况下,line-height的最终值h就是当前line-height乘以这个百分比计算得出.并且这个值会继承下去,后代的元素继承得到的值也是h

line-height纯数值

外层的 div.wrap-line-height-numberline-height 计算结果是 30px*1.5 = 45px;

2016-07-06134612.png

内部的h1标签和 p标签的通过继承得到 line-height:1.5

2016-07-06134649.png

h1line-height16px*1.5 = 24px

2016-07-06134745.png

pline-height12px*1.5 = 16px

可以把line-height采用数值形式当作一种倍数的继承, 后代的元素都会继承这个倍数,并受这几数值的影响,得到最后的值

line-height与vertical-align关系(有空再写)

总结

  1. 4种box模型以及各自的含义

  2. line-heightline box的关系

  3. 文字垂直居中

  4. line-height赋值形式采用数值或者是百分比时各自的代表的含义

参考

转载地址:http://edgum.baihongyu.com/

你可能感兴趣的文章
AliOS Things标准输入输出端口对接以及修改方法
查看>>
用户的注册登陆流程及代码实现
查看>>
第十三章:位图(十)
查看>>
springboot项目打包&ngrok的使用
查看>>
互联网诞生前,苏联最流行的11台个人电脑
查看>>
Git常见错误整理
查看>>
Bytom交易说明(账户管理模式)
查看>>
分享一款在线调试的贝塞尔曲线
查看>>
MaxCompute - ODPS重装上阵 第五弹 - SELECT TRANSFORM
查看>>
让手机的应用变得可调试
查看>>
JVM虚拟机
查看>>
.Net Core微服务系列--开篇
查看>>
获取MySql每一列的数据类型和长度默认值等信息
查看>>
CSS语义思维
查看>>
使用Automator批量生成图标
查看>>
Python中的下划线(译文)
查看>>
7月26日云栖精选夜读丨法国队夺了世界杯冠军,却彻底打了AI预测的脸
查看>>
SSM-SpringMVC-24:SpringMVC异常高级之自定义异常
查看>>
微软对 Chromium 新贡献:为字幕添加 Windows 系统样式支持
查看>>
关于移动端开发中遇到的坑-vue
查看>>