基础知识

有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 Doesn’t Work As Expected On Inputs

垂直居中的特性

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

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

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

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

结果如图:在chrome的测试下

line-height与line boxes高度 by wangjojo (@wweggplant) on CodePen.

多行文字垂直居中

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

多行文字居中,添加i方式 by wangjojo (@wweggplant) on CodePen.

行高在文章中的应用

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

line-height百分比

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

line-height赋值方式 by wangjojo (@wweggplant) on CodePen.

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

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

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

line-height纯数值

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

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


h1line-height16px*1.5 = 24px


pline-height12px*1.5 = 16px

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

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

总结

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

  2. line-heightline box的关系

  3. 文字垂直居中

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

参考

  • 深入了解css的行高Line Height属性——沁园春

  • css行高line-height的一些深入理解及应用——张鑫旭

浅谈line-height相关推荐

  1. opencv运动目标跟踪预测_浅谈多目标跟踪中的相机运动

    ©PaperWeekly 原创 · 作者|黄飘 学校|华中科技大学硕士生 研究方向|多目标跟踪 之前的文章中我介绍了 Kalman 滤波器,这个算法被广泛用于多目标跟踪任务中的行人运动模型.然而实际场 ...

  2. 浅谈多目标跟踪中的相机运动

    ©PaperWeekly 原创 · 作者|黄飘 学校|华中科技大学硕士生 研究方向|多目标跟踪 之前的文章中我介绍了 Kalman 滤波器,这个算法被广泛用于多目标跟踪任务中的行人运动模型.然而实际场 ...

  3. [转]浅谈php web安全

    作者:phpben 来源:http://www.phpben.com/?post=79 浅谈php web安全 前言: 首先,笔记不是web安全的专家,所以这不是web安全方面专家级文章,而是学习笔记 ...

  4. 浅谈OCR之Onenote 2010

    原文:浅谈OCR之Onenote 2010 上一次我们讨论了Tesseract OCR引擎的用法,作为一款老牌的OCR引擎,目前已经开源,最新版本3.0中更是加入了中文OCR功能,再加上Google的 ...

  5. 浅谈VB6.0中的实用技巧

    浅谈VB6.0中的实用技巧 (一) VB6.0中文本框处理技巧 在Visual Basic中,文本框(TextBox)是最常用的控件,熟练运用文本框 是开发出高质量的应用程序的基础.笔者在从事应用程序 ...

  6. 浅谈OC中Block的本质

    Block简介 block是将函数及其执行上下文封装起来的一个对象 在block实现的内部,有很多变量,因为block也是一个对象 其中包含了诸如isa指针,imp指针等对象变量,还有储存其截获变量的 ...

  7. 浅谈WPF的VisualBrush

    原文:浅谈WPF的VisualBrush 首先看看VisualBrush的解释,msdn上面的解释是使用 Visual 绘制区域,那么我们再来看看什么是Visual呢?官方的解释是:获取或设置画笔的内 ...

  8. python语法中infile语句_浅谈pymysql查询语句中带有in时传递参数的问题

    直接给出例子说明: cs = conn.cursor() img_ids = [1,2,3] sql = "select img_url from img_url_table where i ...

  9. iOS实录15:浅谈iOS Crash

    导语:在当前的iOS开发中,虽然ARC为开发者解决了手动内存管理时代 的许多麻烦,但是内存方面的问题依然是产生iOS Crash的元凶之一,本文介绍内存方面,有关僵尸对象.野指针.内存泄漏.废弃内存这 ...

  10. python老是报参数未定义_浅谈Python程序的错误:变量未定义

    Python程序的错误种类 Python程序的错误分两种.一种是语法错误(syntax error).这种错误是语句的书写不符合Python语言的语法规定.第二种是逻辑错误(logic error). ...

最新文章

  1. 这些 Linux 的 “自动化” 技巧,教你轻松完成任务
  2. mac改变文件权限git识别为修改的问题
  3. SqlServer还原数据库时提示:异常终止,不能在此版本的SQL Server中启动,因为它包含分区函数
  4. MySQL查看状态及简单优化
  5. javax.naming.NamingException: Cannot load JDBC driver class 'com.mysql.jdbc.Driver'
  6. leetcode 509. 斐波那契数(dfs)
  7. 综合使用spring cloud技术实现微服务应用
  8. 支付宝:提现免费再延3年,不设上限!
  9. RecognizerIntent(语音识别)
  10. Matplotlib - subplot(同一图中绘制不同的内容)
  11. 手机运行速度慢怎么办
  12. 替代left join方法_你应该使用pathlib替代os.path
  13. 拓端tecdat|用R语言模拟随机服务排队系统
  14. OpenCV之图像二值化
  15. Gentoo安装MarkDown编辑器Haroopad
  16. 通信电子电路multisim仿真(1)---单调谐放大器
  17. 杯具了~湖北省浠水县国家税务局局长叫作「操高潮」 (豆瓣 我们爱讲冷笑话小组)...
  18. 服务器显示没有权限设置,服务器没有管理员权限设置
  19. js循环打印出0~9
  20. Python视频图像播放中加入文字

热门文章

  1. RDC出库财务计费逻辑
  2. SQL - 创建一个学生表,要求有主键约束和非空约束
  3. Linux添加用户并赋予/取消管理员权限
  4. 《淘宝网》质量属性简析
  5. C#读取XML文件的基类实现
  6. Windows Phone开发(27):隔离存储A 转:http://blog.csdn.net/tcjiaan/article/details/7425212...
  7. 第几天? 2005
  8. 一道JS面试题目引发的思考
  9. vue部分样式无法修改
  10. XML解析的四种方式