CSS中的长度单位目前分为两种,分别是绝对长度和相对长度。绝对长度单位包括:
  • in:英寸
  • cm:厘米
  • mm:毫米
  • pt:磅(1磅等于1/72英寸)
  • pc:pica(1pica等于12磅)
以上五个就是CSS中定义的绝对长度单位,他们都是在我们实际生活中用的很多,但是在写CSS代码制作要在屏幕上显示的网页的时候,这种绝对长度单位用到的很少,我能想到的比较有用的地方只有给印刷品设置长度单位时可能会用到,虽然我没有接触过。
接下来就是相对长度单位,相对,顾名思义就是以某个长度作为参照,设置的相对长度的实际值就是相对长度值*参照值。
 

 
CSS中的相对单位包括:
  • em:与元素的字号挂钩(font-size)
  • ex:与元素字体中字母“x”的实际高度挂钩(因为不同字体中x的高度是不同的,感觉是个好随意的单位,为什么不是其他字母呢0.0)
  • rem:与根元素的字号挂钩(html元素是根元素)
  • px:css像素(假定显示设备的分辨率为96dpi)
  • %:另一属性值的百分比
因为相对长度单位用到的比较多,所以有必要加个演示什么的,直观感受一下:

1. em

em是参照元素的字号来设置自身值的一个相对长度单位,如下所示,我设置p元素的font-size属性值为14px,给p元素的height设置为4em,同时给line-height也设置为4em,这样可以让p元素的内容有一个上下居中的效果。

 p{
background: gold;
color: #000000;
font-size: 14px;
height: 4em;
line-height: 4em;
}
 <p>这是随便写的一句话</p>

效果如下所示:

2. rem(个人感觉这个值在响应式布局会很有用,目前用的不多,但将来应该会很热)

这个单位的实际值=html元素的值*这个单位的相对值
如下所示:
 html{
font-size: 24px;
}
p{
background: gold;
color: #000000;
font-size: 1rem;
height: 4em;
line-height: 4em;
}
 <p>这是随便写的一句话</p>

效果如下:

3. px

像素,这个单位在实际的开发中用的,见得非常多。虽然CSS标准中定义的px是一个相对长度单位,但因为定义的很奇葩(似乎是和读者的臂长还有关系,我猜这应该也是相对的一种吧:)),所以很多浏览器都把1px的长度定义为1英寸的1/96,大约是这样,所以本质上,px还是一个绝对长度单位。因为很常见,所以就不演示了。

4. %

百分比单位的定义是:可以把一个度量单位表示为其他属性值的百分比。
我们从定义就可以发现一个问题,这个“其他属性值”具体是什么属性,例如:同一个元素的font-size和width都使用%作为单位,他们所参照的那个“其他属性值”是同一个么?现实给出的答案是:不是同一个!
使用百分比符号作为单位会有两个需要注意的地方:
    - 并非所有的属性都可以使用百分比作为单位。
    - 对于可以使用百分比作为单位的元素,他们所对应的那个“其他属性值”是各不相同的。例如之前说到的font-size,参照的该元素继承得到的font-size值,而对于width属性,参照的则包含这个元素的块的宽度。
 

以上就是我目前对于CSS中长度单位的一些简单理解。如果之后有新的感悟和理解,会持续更新。

简要的谈一谈我对CSS中长度单位的理解的更多相关文章

  1. 关于css中float的理解

    感觉css里的float是个非常神奇的东西,神奇之处在于,你知道它是什么意思,但是用的时候总是不知道怎么实现效果.又或者它会很容易地影响到别的元素和属性.所以今天打算尝试一下float的各种设置,看看 ...

  2. css中line-height的理解_介绍line-height实际应用

    一.line-height的定义 css中line-height行高是指文本行基线之间的距离,不同字体,基线位置不同.line-height只影响行内元素和其他行内内容,而不会直接影响块级元素,如果块 ...

  3. 关于css中浮动的理解及实际应用

    一.元素浮动的意义及使用:1. 浮动的意义:设置了浮动属性的元素会脱离普通标准流的控制,移动到其父元素中指定的位置的过程,将块级元素放在一行,浮动会脱离标准流,不占位置,会影响标准流,浮动只有左右浮动 ...

  4. CSS中各种长度单位总结

    在前端开发工作过程中曾碰到这样一问题: <style type="text/css"> .parent{ width:400px; height:300px; bord ...

  5. 浅谈css中的盒模型(框模型)

    css中的盒模型是css的基础,盒模型的理解可以帮助我们进行对样式进行修改.废话不多说,进入正题: 在w3c中,CSS 框模型 (Box Model) 规定了元素框处理元素内容.内边框.边框 和 外边 ...

  6. [转载]来,让我们谈一谈Normalize.css

    来源 : http://segmentfault.com/a/1190000002239676 ---------------------------------------------------- ...

  7. 来,让我们谈一谈Normalize.css

    本文译自 http://nicolasgallagher.com/about-normalize-css/最初发布于我的博客:http://jerryzou.com/posts/aboutNormal ...

  8. 浅谈css中浮动和清除浮动带来的影响

    有很多时候,我们都会用到浮动,而我们有时候对浮动只是一知半解,却不是太清楚它到底是怎么回事,不知道各位有没有和我一样的感觉,只知道用它,却不知道它到底是怎么回事,所以,在学习的过程中,就要把一个概念不 ...

  9. 来,让我们谈一谈 Normalize.css

    Normalize.css 只是一个很小的CSS文件,但它在默认的HTML元素样式上提供了跨浏览器的高度一致性.相比于传统的CSS reset,Normalize.css是一种现代的.为HTML5准备 ...

随机推荐

  1. 自己实现async和await

    无意当中看了一些博文,说有人想自己尝试实现基于异步操作的方法: 1)直接使用Task(不说咯,这个是微软给我们的标准实现方法). 2)必须继承INotifyCompletion接口,同时自己实现IsC ...

  2. 前端小结(5)---- iframe

    iframe对应的div: <div id="iframezone"> <iframe id="iframe" frameborder='0' ...

  3. 读EntityFramework.DynamicFilters源码_心得_单元测试03

    上个星期我们只是显示了一个示例,怎么在EF的框架内,注入我们拓展的动态过滤器 第一步:安装EntityFramework.DynamicFilters 第二步:重写OnModelCreating方法 ...

  4. [转]Shared——React Native与原生关系理解与对比

    零.关系理解 这个是我对RN和原生关系的理解.简单解释下这个图. RN js编写完业务代码后,通过react-native bundle命令,将代码分别编译成一个index.ios.bundle和in ...

  5. linux 共享目录

    1. 文件上传遇到多物理机多实例时,怎么处理呢? ftp, 文件同步, 目录共享 这里用目录共享来一把. 2. 操作流程 物理机两台 192.168.1.88  192.168.1.166 2.1 服 ...

  6. BZOJ4698: Sdoi2008 Sandy的卡片(后缀数组 二分)

    题意 题目链接 Sol 不要问我为什么发两篇blog,就是为了骗访问量 后缀数组的也比较好想,先把所有位置差分,然后在height数组中二分就行了 数据好水啊 // luogu-judger-enab ...

  7. Codeforces Round #414 A. Bank Robbery

    A. Bank Robbery time limit per test 2 seconds memory limit per test   256 megabytes   A robber has a ...

  8. 记重回IT行业的面试

    问点: 0,梳理一个前端知识框架 1,jQuery的理解 2,仿某网站首页,除了download,显示新优化地方 3,文档模型(DOM) 事件流 事件处理程序 事件类型 例如阻止冒泡的方法 4,前端跟 ...

  9. 设计模式:备忘录(Memento)模式

    设计模式:备忘录(Memento)模式 一.前言   备忘录模式用于保存和恢复对象的状态,相信大家看过我前面的拙作就会想到原型模式也能保存一个对象在某一个时刻的状态,那么两者有何不同的呢?原型模式保存 ...

  10. openvpn(上)

    VPN概述:(全称Virtual Private Network)虚拟专用网络,是依靠ISP和其他的NSP,在公网中建立专用的数据通信网络的技术,可以为企业之间或者个人与企业之间提供安全的数据传输隧道 ...