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. Description Resource Path Location Type web.xml is missing and <failOnMissingWebXml> is set to true

    点击Deployment Descriptor 选择Generate Deployment Descriptor Stub. 就会在 src/main/webapp 生成WEB-INF并且有web.x ...

  2. SSRS使用MySql作为数据源遇到的问题。

    因为工作需求,SSRS需要取到MySql数据源,还好有了ODBC. 谷歌了很多,都是不完整的Solution,放上完整版的供大家评价参考. 下面是StepByStep. 问题1.使用ODBC数据源,填 ...

  3. C Primer Plus note6

    error: invalid preprocessing directive #difine| 无效的宏定义处理 宏定义define 写成了 difine.

  4. Redis数据类型及常用命名总结

    Redis数据类型: Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合).  1.String(字符串) ...

  5. npm安装指定版本

    今天犯了一个低级错误,在npm安装依赖时,命令写成下了格式 npm i --save iview 2.0.0 要安装指定版本应该使用 npm i --save iview@2.0.0 谨记

  6. iview table数据排序不正确

    在使用iview的table组件时,要做排序 代码: sortable: true,sortMethod: (a, b, type) => { if (type === 'desc') { re ...

  7. CSS3及JS简单实现选项卡效果(适配手机端和pc端)

    想要适配手机端和pc端,有几种简单的方法,本人使用的是百分比分配的方法. *{ padding: 0; margin: 0; } body,html{ width: 100%; height: 100 ...

  8. Python基础-面向过程编程实现Linux下cat -rl ‘dir’ |grep ‘keywords’ 功能

    函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计.函数就是面向过程的程序设计的基本单元. ...

  9. ArcGIS 10.3 for Server部署策略

    注:以下部署策略整理自官方文档,主要是为方便以后查阅各种部署方案. 1.单机部署与反向代理 1.1.反向代理 反向代理可采用ArcGIS Web Adaptor或者第三方的反向代理服务器. 1.2.部 ...

  10. C# Winform窗体和控件自适应大小

    1.在项目中创建类AutoSizeForm AutoSizeForm.cs文件代码: using System; using System.Collections.Generic; using Sys ...