分类

■    绝对长度(Absolute units):cm,mm,in,pt,pc

    • 绝对单位之间的换算:1in = 2.54cm=25.4mm=72pt=6pc
    • 绝对长度在css中的表现和其他地方都一样, 1cm就是1cm

■     相对长度(Relative units):em,px,%,rem,vm,vh,vmin,vmax

    • px是基于设备的,不同设备不同的展现,但是打印输出设备上始终表现一致,1PX = 1/96 * inch。
    • em 是基于元素最近的font-size的设定

一个元素字体为10px,1.5em=15px

html {

font-size: 10px;

border-width: 1em; /* 10px */

}

body {

font-size: 2em; /* 20px */

border-width: 1em; /* 20px, not 10px, because it follows its own font-size */

}

    • ex是基于字体的,小写字母的高度,使用率极小。
    • 视口相对长度(Viewport units):vm,vh,vmin,vmax

vm,vh是根据用户的窗口大小变化,

1vh=1%* windowHeight;

1vw=1% * windowWidth

vmin:vm和vh中更小的那个,vmax:vm和vh中更大的那个x

怎么用

一般来说印刷在纸上和显示在屏幕上使用的是不同的单位集,下边是一些推荐用法:

 

推荐

偶尔会用

不建议使用

Screen

em,px,%

ex

pt,cm,mm,in,pc

Print

Em,cm,mm,in,pt,pc,%

px,ex

高分辨时,绝对单位在css中的表现和其他地方都一样,在激光打印机上,1cm就是1cm,但是在低分辨率时,显示就不尽如人意了,绝对单位最好用在高分辨率的输出媒体,如打印机。

只在打印的时候推荐绝对单位的原因还有一个,我们从不同的距离看不同的屏幕感官不同,比如1cm你在电脑显示屏上你看着ok,但是手机拿的近看着不好了,所以使用相对距离就更好。

最佳实践

■        Document-level:  %

html {

font-size: 100%;

}

100%的话其实用的就是浏览器,手机设备等的默认字体大小,这个大小是他们通过千锤百炼推敲出来的,你还瞎捉摸啥

■        Border: px

大多数情况下,边框是不需要缩放的

■        Font-size:em

每个控件的上下文不同, em可以很灵活的控制每个控件内部的排版

■        Padding and margin: rem

很容易统一所有页面的空白区域,每个控件的上下文不同,所以用rem比em更合适

■        Media queries: em,rem

CSS UNIT 详解以及最佳实践的更多相关文章

  1. SATB的标记问题解决之道与G1垃圾收集模式系统详解及最佳实践

    继续接着上一次https://www.cnblogs.com/webor2006/p/11148282.html的理论学习,上一次学习到了这: 接着继续: SATB详解: 对于三色算法在concurr ...

  2. Dockerfile 命令详解及最佳实践

    Dockerfile 命令详解 FROM 指定基础镜像(必选) 所谓定制镜像,那一定是以一个镜像为基础,在其上进行定制.就像我们之前运行了一个 nginx 镜像的容器,再进行修改一样,基础镜像是必须指 ...

  3. Docker笔记(十一):Dockerfile详解与最佳实践

    Dockerfile是一个文本文件,包含了一条条指令,每条指令对应构建一层镜像,Docker基于它来构建一个完整镜像.本文介绍Dockerfile的常用指令及相应的最佳实践建议. 1. 理解构建上下文 ...

  4. CSS选择器详解(伪类) 转 http://blog.csdn.net/Panda_m/article/details/50084699

    CSS选择器详解 之 伪类 伪类对大小写不敏感 结构伪类选择器 结构伪类是CSS3新增的类型选择器,利用DOM树实现元素过滤,通过文档结构的相互关系来匹配元素,可以减少class和id属性的定义,使文 ...

  5. css filter详解

    css filter详解 filter 属性详解 属性 名称 类型 说明 grayscale 灰度 值为数值 取值范围从0到1的小数(包括0和1) sepia 褐色 值为数值 取值范围从0到1的小数( ...

  6. JSX设置CSS样式详解

    JSX设置CSS样式详解 1. 使用className设置样式(CSS的其他选择器也是同理) (1)定义一个CSS文件style.css,和普通CSS一样定义class选择器 .sty1{//和普通C ...

  7. 带你走进CSS定位详解

    学习CSS相关知识,定位是其中的重点,也是难点之一,如果不了解css定位有时候都不知道怎么用,下面整理了一下关于定位属性的具体理解和应用方案. 一:定位 定位属性列表 position top bot ...

  8. 此博客使用的CSS样式详解!

    此博客使用的CSS样式详解! 页面使用的博客园模板为:LuxInteriorLight,可以在博客皮肤里找到. 页首屏蔽广告代码 <script>console.log("顶部标 ...

  9. 转 : CSS Modules详解及React中实践

    https://zhuanlan.zhihu.com/p/20495964 CSS 是前端领域中进化最慢的一块.由于 ES2015/2016 的快速普及和 Babel/Webpack 等工具的迅猛发展 ...

随机推荐

  1. httpclient使用head添加cookie

    最近在使用接口时候,我使用get请求时,需要携带登录态,所以在get请求的时候我需要在head里面把cookie给加上,添加方式get和post完全不一样 Post方式添加cookie httpPos ...

  2. javascript中parseInt(),08,09,返回0

    javascript中在使用parseInt(08).parseInt(09),进行整数转换的时候,返回值是0 工具/原料   浏览器 文本编辑器 方法/步骤     javascript中在使用pa ...

  3. Ubuntu ndk环境变量配置

    https://blog.csdn.net/gulingfengze/article/details/70149092 用source /etc/profile,有些博客写的使用sudo gedit ...

  4. Django:restframework与缓存By大熊

    http://chibisov.github.io/drf-extensions/docs/#cache-key 以上为drf-ext的文档 首先我们要下载两个东西,因为缓存我们用redis所以下 D ...

  5. fcn

    上几周把fcn跑了几个模型,唉,因此测试程序,整了很久,浪费时间啊. fcn做分割,其实我是想用来做检测的,但是总是觉得这个框架是以后的趋势,所以一直想要去在这个基础上做个东西,目前训练的模型还没有测 ...

  6. Java框架 面试题总结

    一. Struts1.x 4 1. struts1优缺点,为什么要使用struts1 4 2. Struts1核心组件 4 3. Strust1请求处理流程  工作原理 4 4. Struts1线程安 ...

  7. angular学习之angular-phonecat项目的实现

    ---恢复内容开始--- AngularJS官方网站提供了一个用于学习的示例项目:PhoneCat.这是一个Web应用,用户可以浏览一些Android手机,了解它们的详细信息,并进行搜索和排序操作. ...

  8. html5 canvas中CanvasGradient对象用法

    html5 中canvas提供了强大的渲染样式,可以实现一些比较复杂的样式设置,今天学习了CanvasGradient对象可以实现一个颜色的渐变 CanvasGradient对象可以实现两种不同形式的 ...

  9. BZOJ1491: [NOI2007]社交网络(Floyd 最短路计数)

    Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 2343  Solved: 1266[Submit][Status][Discuss] Descripti ...

  10. springMVC-数据绑定

    定义: 将http请求中参数绑定到Handler业务方法 常用数据绑定类型 1.  基本数据类型 不能为其它类型和null值 2.  包装类 可以为其它对象,全部转成null值 3.  数组 多个对象 ...