分类

■    绝对长度(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. poj 2112 Optimal Milking 奶牛

    题目链接:http://poj.org/problem?id=2112 题意:K个产奶机,C头奶牛,每个产奶机最多可供M头奶牛使用:并告诉了产奶机.奶牛之间的两两距离Dij(0<=i,j< ...

  2. 6.Netbackup-Oracle数据库恢复演练报告(下)

    1.1 Oracle数据库恢复  目录 1 安装新的客户端 2 新建异机恢复文件 3 新建数据库实例 4 建立spfile文件 5 建立数据文件夹 6 启动数据库到nomount状态 7 列出备份信息 ...

  3. Python实现接口测试中的常见四种Post请求数据

    前情: 在日常的接口测试工作中,模拟接口请求通常有两种方法, 利用工具来模拟,比如fiddler,postman,poster,soapUI等 利用代码来模拟,使用到一些网络模块,比如HttpClie ...

  4. MyBatis简单了解

    MyBatis 是什么? MyBatis 是一个简化和实现了 Java 数据持久化层(persistence layer)的开源框架,它抽象了大量的 JDBC 冗余代 码,并提供了一个简单易用的 AP ...

  5. jQuery deferred 使用心得

    因为项目的原因,我接触到了jQuery deferred 的这个神奇的工具,下面我用几个例子,与大家分享我的感悟. 我们有5个很耗时的函数 分别为fA.fB.fC.fD.fE  我们的需求是fA和fB ...

  6. 大白话讲解BP算法(转载)

    最近在看深度学习的东西,一开始看的吴恩达的UFLDL教程,有中文版就直接看了,后来发现有些地方总是不是很明确,又去看英文版,然后又找了些资料看,才发现,中文版的译者在翻译的时候会对省略的公式推导过程进 ...

  7. android 圆角图片的实现形式

    android 圆角图片的实现形式,包括用第三方.也有系统的.比如makeramen:roundedimageview,系统的cardview , glide .fresco . compile 'c ...

  8. 【Java】对象、类(抽象类与内部类)、接口

    博文内容概况 对象和类 抽象类 接口 内部类 对象和类 对象是对客观事物的抽象,类是对对象的抽象.类是一种数据类型,其外观和行为由用户定义.类中可以设置两种类型的元素:字段(有时被称为数据成员)和方法 ...

  9. React Native ref高级用法&&setNativeProps使用

    ref属性不只是string ref属性不仅接受string类型的参数,而且它还接受一个function作为 callback.这一特性让开发者对ref的使用更加灵活. render() { retu ...

  10. 关于ACL中通配符掩码(反掩码)认识

    ACL(Access Control List)  访问控制列表在作为数据包的过滤器以及在对指定的某种类型的数据包的优先级,起到了对某些数据包的优先级起到了限制流量的作用,减少了网络的拥塞.      ...