概述

  • 对于块级元素,CSS属性line-height指定了元素内部line-boxes的最小高度。
  • 对于非替代行内元素,line-height用于计算line box的高度。
  • 对于替代行内元素,如button 或其他input元素,line-height没有影响

取值

  • normal 
    取决于用户代理。桌面浏览器(包括火狐浏览器)使用默认值,约为1.2,这取决于元素的 font-family。(存在差异性)
  • <number> 
    所用的值是无单位数值乘以元素的 font size。计算出来的值与使用数值指定的一样。大多数情况下,使用这种方法设置line-height是首选方法,在继承情况下不会有异常的值。
  • <length> 
    指定 用于计算 line box 的高度。查看 获取可能的单位。
  • <percentage> 
    与元素自身的字体大小有关。计算出的值是给定的百分比值乘以元素计算出的字体大小。
  • inherit

缩写:line-height的值紧跟font-size的值,使用/分开(eg: font: 16px/normal arial;)

计算

  • 百分比 
    所有继承下来的元素会忽略本身的font-size,而使用相同的、计算出来的line-height;line-height不会随着相关的font-size做相应的比例缩放,可能导致有的地方太紧,而有的地方太松(缺点)。

    element font-size line-height 计算后的line-height
    body 16px 120% 16px * 120% = 19.2px
    h1 32px 继承的计算后的值 19.2px
    p 16px 继承的计算后的值 19.2px
    footer 12px 继承的计算后的值 19.2px
  • 长度 
    所有继承下来的元素会忽略本身的font-size,而使用相同的继承来的line-height;也不会随着相关的font-size做相应的比例缩放。

    element font-size line-height 计算后的line-height
    body 16px 20px 20px
    h1 32px 继承的计算后的值 20px
    p 16px 继承的计算后的值 20px
    footer 12px 继承的计算后的值 20px
  • normal(约为1.2) 
    所有继承下来的元素不会忽略本身的font-size,使用基于font-size算来的line-height;也不会随着相关的font-size做相应的比例缩放。现在会做相应缩放

    element font-size line-height 计算后的line-height
    body 16px normal 16px * 1.2(约)= 19.2px
    h1 32px normal 32px * 1.2(约)= 38.4px
    p 16px normal 16px * 1.2(约)= 19.2px
    footer 12px normal 11.2px * 1.2(约)= 13.44px
  • 纯数字(推荐) 
    所有继承下来的元素使用基于font-size算来的line-height;会随font-size做相应缩放。(偶尔标题会有的地方比较松)

    element font-size line-height 计算后的line-height
    body 16px 1.5 16px * 1.5 = 24px
    h1 32px 系数:1.5 32px * 1.5 = 48px
    p 16px 系数:1.5 16px * 1.5 = 24px
    footer 12px 系数:1.5 12px * 1.5 = 18px

    *可以考虑内容设置line-height:1.5;标题设置1.2

四种盒子

containing box 
inline boxes 
line boxes(inline boxes在containing boxes中一个接一个形成line boxes,高取决于内部最高的inline box) 
content area(围绕文字、看不见的box,高取决于font-size) 
*四种盒子的问题始终没怎么太明白

参考:http://www.slideshare.net/daemao/line-height-2470819

应用

    • 单行文字居中 
      一般在做单行文字居中都是采用该策略——将line-height设置与height等高;但是height是不需要设置的
    • 固定高度的多行文字居中
    • 图片垂直居中

我不知道的行高——line-height的更多相关文章

  1. 深入了解css的行高Line Height属性

    什么是行间距? 古时候我们使用印刷机来出来文字.印刷出来的每个字,都位于独立的一个块中. 行间距,即传说中控制两行文字垂直距离的东东.在CSS中,line-height被用来控制行与行之间垂直距离. ...

  2. css - 行高

    css - 行高 line-height行高 取值:px | em | rem | 百分比 | 纯数字 | normal | inherit 设置给:块.行内.行内块 应用给:文本 继承:块.行内.被 ...

  3. easyui datagird 解决行高不一致问题!

    <style>.datagrid-btable .datagrid-cell {padding: 6px 4px;overflow: hidden;text-overflow: ellip ...

  4. wpf datagrid row height 行高自动计算使每行行高自适应文本

    wpf 的datagrid的行高 要么是Auto,要么是定值:但会带来麻烦就是每行行高都一样. 当需要按内容(主要是wrap 换行的textbox或textblock)来动态调整行高的时候,需要用到d ...

  5. 关于RecyclerView你知道的不知道的都在这了(下)

    目录 目录 正文 6. Recycler 7. ItemAnimator 8. ItemDecoration 9. OnFlingListener 目录 由于本篇篇幅特长,特意做了个目录,让大伙对本篇 ...

  6. 你所不知道的 CSS 阴影技巧与细节 滚动视差?CSS 不在话下 神奇的选择器 :focus-within 当角色转换为面试官之后 NPOI 教程 - 3.2 打印相关设置 前端XSS相关整理 委托入门案例

    你所不知道的 CSS 阴影技巧与细节   关于 CSS 阴影,之前已经有写过一篇,box-shadow 与 filter:drop-shadow 详解及奇技淫巧,介绍了一些关于 box-shadow  ...

  7. css中line-height行高的深入学习

    之前对css中行高line-height的理解还是有些肤浅,深入后才发觉里面包罗万象.学习行高line-height,首先从基本原理开始 (标注该文章转载 http://www.cnblogs.com ...

  8. 你可能不知道的7个CSS单位

    如果你是一名前端开发工程师,一般px和em使用频率比较高.但是今天本文的重点是介绍一些我们使用很少.甚至么有听说的单位. 一.重温em <style type="text/css&qu ...

  9. 第2月第24天 coretext 行高

    1.NSMutableAttributedString 行高 NSMutableAttributedString *attributedString = [[NSMutableAttributedSt ...

随机推荐

  1. Mybatis问题:There is no getter for property named 'unitId' in 'class java.lang.String'

    Mybatis遇到的问题 问题: org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.re ...

  2. 通过与Quickbuild和Mist.io的持续集成实现云管理和使用监控

    欢迎大家前往云+社区,获取更多腾讯海量技术实践干货哦~ 这篇文章由巴拉克·梅里莫维奇撰写. 总结我自己有关Openstack的各种骚操作先告一段落.这一次我想谈谈有关监控云服务的使用情况. 我个人使用 ...

  3. 利用10h号中断在dos中间显示自己名字

    body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gra ...

  4. python_如何使用临时文件

    案例: 某项目中,从传感器中获得采集数据,每收集到1G的数据后做是数据分析,最终只保留数据分析的结果,收集到的数据放在内存中,将会消耗大量内存,我们希望把这些数据放到一个临时的文件中 临时文件不能命名 ...

  5. scrapy_图片下载

    需要安装第三方库: 安装 pillow库 pip install -i https://pypi.doubanio.com/simple pillow 如何对图片进行自动下载? 首先明白,图片去哪下? ...

  6. 无废话XML--DOM4J

    Dom4j  是一个易用的.开源的库,用于 XML ,XPath  和 XSLT .它应用于 Java  平台,采用了 Java  集合框架并完全支持 DOM ,SAX 和 和 JAXP .我们可以很 ...

  7. Linux安装JDK步骤

    Linux安装JDK步骤 1.先从官网下载JDK安装包,我下载的是:jdk-8u131-linux-x64.tar.gz版本 2.在usr下创建java文件夹 # mkdir /usr/java 3. ...

  8. atom中开发vue常用插件

    atom: 开发利器,界面友好,配色出色,好用的插件众多. language-vue: 这个是首推,因为它就是为vue而生的呀,支持很多vue里的提示.在空的vue页面敲tem,vue模板的提示就自动 ...

  9. docker入门(一)

    1. Docker是什么? 官方的解释地址: Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的.可移植的.自给自足的容器.开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署 ...

  10. matlab获取文件夹中的所有文件名(dir)

    当前目录中包含文件及目录如下: abc111.txt abc112.txt abc113.txt a\ (文件夹) CODE: >> dir('test')   %目录 .         ...