资讯专栏INFORMATION COLUMN

浅谈line-height

sugarmo / 509人阅读

摘要:与高度由上面的内容可以总结出的高度取决与其下属的中最高的元素。的最终表现是通过实现的,而无论所占据的高度是多少无论比文字大还是比文字小,其占据的空间都是与文字内容公用水平中垂线的。

基础知识

有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关系(有空再写) 总结

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

line-heightline box的关系

文字垂直居中

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

参考

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

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/60033.html

相关文章

  • 浅谈line-height

    摘要:与高度由上面的内容可以总结出的高度取决与其下属的中最高的元素。的最终表现是通过实现的,而无论所占据的高度是多少无论比文字大还是比文字小,其占据的空间都是与文字内容公用水平中垂线的。 基础知识 有4种模型,分别是 块,块盒模型 containing boxing,包括line 行内盒模型 inline boxing ,包含content 行模型 line boxing,包含inline...

    leeon 评论0 收藏0
  • 浅谈line-height

    摘要:与高度由上面的内容可以总结出的高度取决与其下属的中最高的元素。的最终表现是通过实现的,而无论所占据的高度是多少无论比文字大还是比文字小,其占据的空间都是与文字内容公用水平中垂线的。 基础知识 有4种模型,分别是 块,块盒模型 containing boxing,包括line 行内盒模型 inline boxing ,包含content 行模型 line boxing,包含inline...

    zombieda 评论0 收藏0
  • 浅谈CSS3 box-sizing 属性 有趣的盒模型

    摘要:盒模型的组成大家肯定都懂,由里向外盒模型是有两种标准的,一个是标准模型,一个是模型。指定元素的宽度和高度最小最大属性适用于的宽度和高度。盒模型的组成大家肯定都懂,由里向外content,padding,border,margin. 盒模型是有两种标准的,一个是标准模型,一个是IE模型。  从上面两图不难看出在标准模型中,盒模型的宽高只是内容(content)的宽高, 而在IE模型中盒模型...

    K_B_Z 评论0 收藏0
  • 移动端H5页面中1px边框的几种解决方法

    问题提出 这是一个比较老的问题了,我第一次注意到的时候,是UI设计师来找我麻烦,emmm那时候我才初入前端职场,啥也不懂啊啊啊啊啊,情形是这样的:设计师拿着手机过来:这些边框都粗了啊,我的设计稿上是1px的我:????我写的是1px呀,不信你看。(说着拿出了css代码设计师:不对啊我眼睛看来这个边框比我设计稿上粗很多,看起来好奇怪(emmm果然像素眼我:那我把它改成0.5px你看看(边说边改了代码...

    ytwman 评论0 收藏0
  • 移动端H5页面中1px边框的几种解决方法

    问题提出 这是一个比较老的问题了,我第一次注意到的时候,是UI设计师来找我麻烦,emmm那时候我才初入前端职场,啥也不懂啊啊啊啊啊,情形是这样的:设计师拿着手机过来:这些边框都粗了啊,我的设计稿上是1px的我:????我写的是1px呀,不信你看。(说着拿出了css代码设计师:不对啊我眼睛看来这个边框比我设计稿上粗很多,看起来好奇怪(emmm果然像素眼我:那我把它改成0.5px你看看(边说边改了代码...

    enda 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<