最近详细阅读了一下CSS2.2文档,对em单位有了深刻的认识

原文在此:
The 'em' unit is equal to the computed value of the 'font-size' property of the element on which it is used. The exception is when 'em' occurs in the value of the 'font-size' property itself, in which case it refers to the font size of the parent element. It may be used for vertical or horizontal measurement. (This unit is also sometimes called the quad-width in typographic texts.)

大致意思是:

'em'单位等于应用该规则的元素的'font-size'属性的计算值。一种异常情况是当'em'出现在'font-size'属性本身的值中时,这种情况下参考父元素的字体大小。它可以用在竖直或者水平测量中(这个单位在排版文本中有时也叫quad-width,四边宽度?)

例1:当em应用在非字体上时

 <div class="con" style="font-size: 30px;width: 200px; height: 200px; background: grey;">
         <div class="con-1" style="font-size: 20px; width: 5em; height: 5em; background: red;">cococe</div>
         cococe
 </div>
cococe

cococe

解析:此时.con-1元素的宽为100px,高为100px,因为此时em的大小为当前作用元素font-size大小,也即是20px。

例2:当em应用在字体上时

 <div class="con" style="font-size: 30px; width: 200px; height: 200px; background: grey;">
         <div class="con-1" style="font-size: 1em; width: 5em; height: 5em; background: lightgrey;">cococe</div>
         cococe
 </div>
cococe

cococe

解析:此时字体大小为30px,即为父元素字体大小,相应的高为150px,宽为150px。

注意:子元素不会继承父元素指定的相对值,而是继承计算值

例如:

 <div class="con" style="font-size:20px;width:200px;height:200px;background:grey; text-indent: 1em;">
         cococe
         <div class="con-1" style="font-size:18px;width:5em;height:5em;background:lightgrey;">cococe</div>
 </div>
cococe

cococe

 解析:子元素.con-1的text-indent继承的是父元素的1em的计算值,即为20px,而不是继承父元素的相对值1em,假如继承的是1em的话,那么子元素的text-indent机会被解析为18px,那么图中的父元素与子元素的text-indent就不会相同。

em详解的更多相关文章

  1. css中em单位详解,说明

    em详解      em可以理解成“倍”. em会以父级元素中所设置的字体像素值为基准值进行成倍放大: 字体大小=(父级元素中的字体像素 * em的值) 例: 网页部分代码如下: 1.我现在没有在父级 ...

  2. css大小单位px em rem的转换和详解

    css大小单位px em rem的转换和详解 PX特点1. IE无法调整那些使用px作为单位的字体大小:2. 国外的大部分网站能够调整的原因在于其使用了em或rem作为字体单位:3. Firefox能 ...

  3. EM算法详解

    EM算法详解 1 极大似然估计 假设有如图1的X所示的抽取的n个学生某门课程的成绩,又知学生的成绩符合高斯分布f(x|μ,σ2),求学生的成绩最符合哪种高斯分布,即μ和σ2最优值是什么? 图1 学生成 ...

  4. [转]EM算法(Expectation Maximization Algorithm)详解

    https://blog.csdn.net/zhihua_oba/article/details/73776553 EM算法(Expectation Maximization Algorithm)详解 ...

  5. 2. EM算法-原理详解

    1. EM算法-数学基础 2. EM算法-原理详解 3. EM算法-高斯混合模型GMM 4. EM算法-高斯混合模型GMM详细代码实现 5. EM算法-高斯混合模型GMM+Lasso 1. 前言 概率 ...

  6. CSS文字大小单位px、em、pt详解

    这里引用的是Jorux的“95%的中国网站需要重写CSS”的文章,题目有点吓人,但是确实是现在国内网页制作方面的一些缺陷.我一直也搞不清楚px与em之间的关系和特点,看过以后确实收获很大.平时都是用p ...

  7. jQuery Validate验证框架详解

    转自:http://www.cnblogs.com/linjiqin/p/3431835.html jQuery校验官网地址:http://bassistance.de/jquery-plugins/ ...

  8. CSS中详解hight属性

    目录结构: // contents structure [-] hight属性值类型一览表 height的%的使用 定义 实例 需要注意的 参考文章 hight属性值类型一览表 value descr ...

  9. HTML标签----图文详解(二)

    HTML标签超详细的图文演示再来一波~~~ 如果还没有看过昨天的福利的,那可要抓紧喽,传送门:HTML标签----图文详解 本文主要内容 列表标签 表格标签 框架标签及内嵌框架<iframe&g ...

随机推荐

  1. css重置reset.css

    body, h1, h2, h3, h4, h5, h6, hr, p, blockquote,dl, dt, dd, ul, ol, li,pre,form, fieldset, legend, b ...

  2. 移动BI来袭我们要做哪些准备?

    (了解更多商业智能行业资讯.商业智能BI解决方案.商业智能客户案例,请访问:http://www.powerbi.com.cn/service) 随着智能手机的发展,商业智能(BI)基础架构也扩展到移 ...

  3. 通过数据库查看EBS的登录地址

    1. SQL> SELECT home_url FROM icx_parameters; HOME_URL ------------------------------------------- ...

  4. update kernel 3.10-3.12

    安装包下载以及依赖包安装 1.到www.kernel.org下载3.12.48压缩包 2.tar xvf linux-3.12.48.tar.xz 3.sudo yum install ncurses ...

  5. gradle基础的build文件模板_tomcat

    group '组织名' version '版本号' /* 支持的插件 */ apply plugin: 'java' // 项目基础变成语言支持为java apply plugin: 'war' // ...

  6. android五种存储方式

    http://www.cnblogs.com/smalltigerlee/archive/2011/11/10/2244143.html

  7. 在Ubuntu上安装有道词典

    4月20日,由有道词典和Deepin团队共同完成的有道词典Linux版终于上线了,首先 推出Deepin和Ubuntu两个系统版本及其他版本的二进制包,估计以后还会有RPM 等版本.有道Linux版界 ...

  8. Hdu 5493 合肥网络赛 1010 Queue

    在线求第k大,第一次用二分+树状数组写...比赛的时候分治啊,splay啊,主席树啊换来换去,然而以前为什么不知道可以这么写... #include <iostream> #include ...

  9. PHP开发环境配置~Windows 7 IIS

    1.配置IIS添加角色服务:CGI.ISAPI扩展.ISAPI筛选器 2.下载PHP安装包 http://windows.php.net/download/ 3.添加模块映射 4.配置php.ini ...

  10. 关于32位windows和64位windows

    SysWow64文件夹,是64位Windows,用来存放32位Windows系统文件的地方,而System32文件夹,是用来存放64位程序文件的地方. 当32位程序加载System32文件夹中的dll ...