css中的长度单位有很多,不同的单位在特定的需求下能够有相当不错的表现,随着css3的发布,又有了一些新的单位添加进来,使我们在做前端页面的时候能够有更多的选择,更方便快捷的达到我们预期的效果。

正题

1.px (all) ;

"px",即像素,这个单位是我们最常用的,即基于像素进行绘制的长度单位。

2.em (all)

"em" 是相对长度单位。相对于当前对象内文本的字体尺寸。假如设置 div 的字体大小为20px,那么对div设置的‘1em’就是20,那么2em 就是 2*20=40px。

"em"是基于对象标签的单位,给谁用该单位,该单位就是基于谁的字体大小。当该对象标签的字体大小发生变化时,‘em’单位长度也会跟着发生变化。

举个栗子

<ul style="font-size: 20px;">
<li style="width: 2em; border: 1px solid #000;"> 1em </li> <li style="width: 4em; border: 1px solid #000;"> 2em </li> <li style=" font-size: 40px; width: 4em; border: 1px solid #000;"> 3em </li>
</ul>

如上,第一个li和第二个li 有继承自父集的同样的字体大小,所以 每个 em 的值都是20px ,2em=40px,4em = 80px,

第三个li 由于本身字体大小改为40px了 ,所以,虽然和第二个一样设置宽度 4em ,但是 真实宽度第三个 为4*40 = 160px 。

3.ex (css3)

和 上面的"em"一样,也是基于对象内文本的字体尺寸,不同的是,ex 单位长度是 字体大小的一般 也就是说对于同一标签  1em === 2ex

兼容:IE6-IE10, Firefox6.0, Chrome13.0, Safari5.1, Opera11.51

4.ch (css3)

该单位是相对对象文本的 数字 "0" 的宽度,

例如设置一个能够正好装6个“0”的宽度 即 width:6ex;

5.rem (css3)


这个就厉害啦,对于移动端的自适应布局来说,这个单位是首选。

该单位是相对长度单位。相对于根元素(即html元素)font-size计算值的倍数

例如 html 的 font-size:100px; 那么 1rem 就表示 100px, 

该单位的使用经常会配合 js 及 viewport meta标签一同使用,

viewport详解 移步 这里  

利用 js ,当页面加载完成或者窗口大小改变的时候重新计算的html标签的font-size 的值,就可以达到页面自适应的效果了,

js如下(假设页面设计宽度为720px):

function rePosition(){
var width = document.documentElement.clientWidth;
var ratio = width/720;
if(width<=720){
document.getElementsByTagName('html')[0].style.fontSize=100*ratio+"px";
}else{
document.getElementsByTagName('html')[0].style.fontSize="100px";
}
}
rePosition();
window.onresize = rePosition;

6.vw/vh (css3)

该单位是基于窗口大小的单位 窗口的 宽度 等于 100vw ,窗口的高度为 100vh,

如果想设置一个宽度为 半个窗口宽度、高度为1/5 个窗口高度的div  ,那么可以这样写:  width: 50vw; height:20wh;

7.绝对长度单位 cm / mm

cm / mm  均为绝对单位长度  cm 即 厘米   mm 即毫米 。

(完)

CSS单位-长度的更多相关文章

  1. css单位长度

    CSS长度单位 单位 含义 em 相对于父元素的字体大小 ex 相对于小写字母”x”的高度 gd 一般用在东亚字体排版上,这个与英文并无关系 rem 相对于根元素字体大小 vw 相对于视窗的宽度:视窗 ...

  2. CSS/CSS3长度、时间、频率、角度单位大全

    by zhangxinxu from http://www.zhangxinxu.com本文地址:http://www.zhangxinxu.com/wordpress/?p=1494 一.一笔带过的 ...

  3. CSS单位计算总结

    CSS单位总结 公共部分css body { background-color: #000; color: skyblue; margin: 0; padding: 0; } body>div& ...

  4. css单位px,em,rem区别

    在css中单位长度用的最多的是px.em.rem,这三个的区别是: px是固定的像素,一旦设置了就无法因为适应页面大小而改变. em和rem相对于px更具有灵活性,他们是相对长度单位,意思是长度不是定 ...

  5. 你可能没注意的CSS单位

    扶今追昔 CSS中的单位我们经常用到px.pt.em.百分比,px和pt不用多说 em em是相对单位,参考物是父元素的font-size,具有继承的特点 如果字体大小是16px(浏览器的默认值),那 ...

  6. css单位盘点

    css单位有:px,em,rem,vh,vw,vmin,vmax,ex,ch 等等 1.px单位最常见,也最直接,这里不做介绍. 2.em:em的值并不是固定,它继承父级元素的字体大小,所以层数越深字 ...

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

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

  8. 学习网页制作中如何在正确选取和使用 CSS 单位

    在 CSS 测量系统中,有好几种单位,如像素.百分比.英寸.厘米等等,Web 开发人员很难了解哪些单位在何处使用,如何使用.很多人习惯了总是使用同一种单位,但这一决定可能会严重限制你的设计的执行. 这 ...

  9. 七个你可能不了解的CSS单位

    我们很容易无法摆脱的使用我们所熟悉的CSS技术,当新的问题出现,这样会使我们处于不利的地位. 随着Web继续的发展,对新的解决方案的需求也会继续增大.因此,作为网页设计师和前端开发人员,我们别无选择, ...

随机推荐

  1. 北京Uber优步司机奖励政策(4月13日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  2. 使用WinIO库实现保护模式下的IO和内存读写

    问题已解决: 原因是函数的调用方式与WinIO中不一致,使用的时候漏掉了__stdcall. 函数原定义为: 在实际的GPIO读写中遇到以下问题: SetPortVal可正常写入,但是GetPortV ...

  3. 向大学说拜拜——大学 > 兴趣 + 时间 + 思考 + 实践

    [人物素描] 大学期间,担任过班委,加入过学生会,参加过社团,拿过奖学金......而印象最深刻的莫过于参加并组织过ACM集训,以及参加过导师的国家自然科学基金项目了.毕业时顺利拿到一波offer,并 ...

  4. 查看Oracle数据库表空间大小(空闲、已使用),是否要增加表空间的数据文件

    查看Oracle数据库表空间大小(空闲.已使用),是否要增加表空间的数据文件 1.查看表空间已经使用的百分比 Sql代码 select a.tablespace_name,a.bytes/1024/1 ...

  5. springboot入门之一:环境搭建(续)

    在上篇博客中从springboot的入门到运行一个springboot项目进行了简单讲述,详情请查看“springboot入门之一”.下面继续对springboot做讲述. 开发springboot测 ...

  6. object-fix/object-position

    今日浏览某大神的一篇博文时发现如下写法: .container > div > img { width: 100%; height: 100%; object-fit: cover; } ...

  7. 169.求众数 leetcode Javascript

    给定一个大小为 n 的数组,找到其中的众数.众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素. 你可以假设数组是非空的,并且给定的数组总是存在众数. 示例 1: 输入: [3,2,3] 输出: 3 ...

  8. python---json.dumps 与 json.loads /json.dump 和json.load区别

    json.dumps 是将python的数据类型进行json的编码,生成json格式的数据,举例json_data = json.dumps(str)  str为python的字符串类型数据,生成的j ...

  9. Traffic Steering for Service Function Chaining

    Introduction 目前通过vlan标签来把流量引向对应的sfc 以前的sfc静态(SFs相邻组成SFC),有了sdn之后具有动态性.(SFs不需要彼此相邻.将流量动态地导向所需的SFs.) 流 ...

  10. MOOK学习

    课程选择及其理由 课程:c++程序设计 教师:魏英 学校:西北工业大学 总共:48讲 选择理由:我其实之前找了好几个,但由于小白,思考了下(迷茫,感觉好像都不错),然后看了一下大家都选择了西北工业大学 ...