CSS深入理解学习笔记之line-height

1、line-height的定义

  定义:两行文字基线之间的距离。

  注:不同字体之间的基线是不同的。

2、line-height与行内框盒子模型

  行内框盒子模型:

  ①内容区域(content area),是一种围绕文字看不见的盒子,大小与font-size有关;

  ②内联盒子(inline boxes),不会让内容成块显示,而是排成一行。如果外部含inline水平标签,则属于内联盒子;如果是个光秃秃的文字,则属于”匿名内联盒子“;

  ③行框盒子(line boxes),每一行就是一个行框盒子,每一个行框盒子又是由一个个内联盒子组成。

  ④包含盒子(containing box),由一行行行框盒子组成。

3、line-height与内联元素的高度机理

  关于内容区域高度:①内容区域高度只与字体以及字号有关,与line-height没有任何关系;②在simsun字体下,内容区域高度等于文字大小值。

  行的高度不是由于行高造成的。

  因为:①行高由于其继承性,影响无处不在,即使单行文本也不例外;②行高这是幕后黑手,高度表现不是行高,而是内容区域和行间距。

  只不过:

行间距line-height - font-size

  行间距一般是上下均分的。

  总结:行高决定内联盒子高度;行间距墙头草,可大可小可负值,保证高度正好等同于行高。

4、line-height各类属性值

  line-height:normal/<number>/<lenght>/<percent>/inherit;

  normal:默认属性值。与浏览器和元素字体相关。因此为了让各个浏览器兼容性一致,要初始化line-height。

  <number>:使用数值作为行高值。line-height = number * font-size

  <lenght>:使用具体长度值作为行高值。em/rem/px/pt

  <percent>:使用百分比作为行高值。line-height = percent * font-size

  inherit:行高继承。IE8+

  问题:line-height:1.5/150%/1.5em的区别

  答:计算无差别。1.5所有可继承元素根据font-size重新计算行高;150%/1.5em当前元素根据font-size计算行高,继承给下面的元素。

  body全局数值行高使用经验:

    匹配20px使用,为了方便心算:line-height = 20px / 14px = 1.42857

    由于chrome是19px,所以body{font-size:14px;line-height:1.4286;}

5、line-height与图片的表现

  行高不会影响图片实际占据的高度。

  问题:如何消除图片底部间隙?

  答:①图片块状化—无基线对齐img{display:block;};①图片底线对齐img{vertical-align:bottom;};③行高足够小-基线位置上移.box{line-height:0;}

6、line-height的实际应用

  (1)大小不固定的图片、多行文字的垂直居中

  (2)代替height,避免IE6/IE7下的haslayout

  在IE6/IE7下,block元素设置height会破坏block规则,而line-height不会。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Keegan小钢

Android样式的开发:shape篇

一个应用,应该保持一套统一的样式,包括Button、EditText、ProgressBar、Toast、Checkbox等各种控件的样式,还包括控件间隔、文字...

482
来自专栏九彩拼盘的叨叨叨

图片不变形,宽高不超出父元素的情况下旋转图片

如题,具体的效果见这里 。做这样的效果的难点在于,计算没旋转前图片的宽,高和旋转后的宽高。

653
来自专栏陈仁松博客

UWP基础教程 - RelativePanel

在Windows10 UWP开发中,新增和改变了很多特性,这次给大家介绍下RelativePanel,这个控件其实和RelativeLayout基本一种使用方式...

3265
来自专栏用户2442861的专栏

CSS基础(四):盒模型

HTML文档中可以将每个元素都看作是长方形的盒子。而CSS盒模型规定了元素框处理元素内容content、内边距padding、边框border和外边距marg...

823
来自专栏一“技”之长

iOS UIActivityIndicatorView(指示控制器)用法总结

对于UIActivityIndicatorView的使用,我们一般会创建一个背景View,设置一定的透明度,然后将UIActivityIndicatorView...

711
来自专栏一个小程序员的成长笔记

CSS深入理解学习笔记之vertical-align

1、vertical-align基本认识   支持的属性值:     ①线类:baseline(默认),top,middle,bottom     ②文本类:t...

3155
来自专栏前端知识分享

第154天:canvas基础(一)

​ <canvas> 是 HTML5 新增的,一个可以使用脚本(通常为JavaScript)在其中绘制图像的 HTML 元素。它可以用来制作照片集或者制作简单(...

552
来自专栏阿凯的Excel

快捷键-提速版

今天和大家分享的是快捷键提速版!!(什么是提速版,就是可以迅速提高你的工作速度哇!!貌似所有的Excel技巧都可以提高工作速度) 快捷键提速版正式开始 1、...

2513
来自专栏十月梦想

HTML表格

            4.cellspacing:外边距(单元格和单元格之间的距离)

612
来自专栏calmound

CSS格式化排版

 用CSS样式为网页中的文字设置字体,字号,颜色等属性 字体:      body{font-family:"Microsoft Yahei"} 字号,颜色: ...

28810

扫码关注云+社区