你可能没注意的CSS单位

简介: 原文:你可能没注意的CSS单位扶今追昔 CSS中的单位我们经常用到px、pt、em、百分比,px和pt不用多说 em em是相对单位,参考物是父元素的font-size,具有继承的特点 如果字体大小是16px(浏览器的默认值),那么 1em = 16px 这样使用换算很复杂,尤其是和px对应,大家总结出了经验 body { font-size: 62.
原文: 你可能没注意的CSS单位

扶今追昔

CSS中的单位我们经常用到pxptem百分比,px和pt不用多说

em

em是相对单位,参考物是父元素的font-size,具有继承的特点

如果字体大小是16px(浏览器的默认值),那么 1em = 16px

这样使用换算很复杂,尤其是和px对应,大家总结出了经验

body {
font-size: 62.5%;
}

这样之后 1em = 10px 在布局等使用的时候好换算了很多

百分比

百分比也是很常见的用法,看似简单其实有些初学者可能注意不到的知识

相对于谁

首先要明确百分比是相对于谁,宽泛的讲是父元素,但是并不是十分准确

  1. 对于普通定位元素就是我们理解的父元素
  2. 对于position: absolute;的元素是相对于已定位的父元素(offset parent)
  3. 对于position: fixed;的元素是相对于 ViewPort

viewport:可视窗口,也就是浏览器的window那么大

意外

  1. padding、margin 如果设置了百分比,会发现左右和预期一样,用的父元素宽度的百分比,但是用的也是 ** 宽度 ** 百分比,而不是想象中的高度的百分比
  2. 后代元素继承的是百分比 计算后的值 ,而不是原百分比,这个对于line-height的时候经常会遇到坑,还有这样的面试题问你line-height设置为120%1.2的区别

CSS3开启新时代

rem

em是个很不错的单位,但是有个问题就是可能会带来混乱,因为em依赖于父元素的字体大小,各个元素父元素的字体尺寸不一定一样,会带来布局上很大的不确定性

rem font size of the root element

rem相对于根元素html(网页),这样使用起来就安全了很多

html {font-size: 62.5%; /10 ÷ 16 × 100% = 62.5%/}
body {font-size: 1.4rem; /1.4 × 10px = 14px /}
h1 { font-size: 2.4rem; /2.4 × 10px = 24px/}

IE9+ 和现代浏览器都已经支持了

vw和vh

  • vw Viewport宽度, ** 1vw ** 等于viewport宽度的1%
  • vh Viewport高度, ** 1vh ** 等于viewport高的的1%

vw和vh会随着viewport变化自动变化,再也不用js控制全屏神马的了

甚至有些人丧心病狂的字体大小都用vw和vh控制,来达到字体和viewport大小同步的效果

IE10+ 和现代浏览器都支持这两个单位

vmin和vmax

这两个单位是针对vw和vh

  • vmin vw和vh中比较 ** 小 ** 的值
  • vmax vw和vh中比较 ** 大 ** 的值

这两个属性也会随着viewport变化

IE10+ 和现代浏览器都已经支持vmin

webkit浏览器之前不支持vmax,现在已经支持,所有现代浏览器已经支持,但是IE ** 全部 ** 不支持vmax

ch和ex

这两个单位时根据 ** 当前font-family ** 的相对单位

  • ch 字符0的宽度
  • ex 小写字符x的高度

image

font-family改变的时候这两个单位的值也会变化,不同字体表现的样式不一样

IE9+ 和现代浏览器都已经支持

浏览器兼容性

写的时候介绍了一些,大神写了测试页面可以帮我们直观的看到

http://s.codepen.io/chriscoyier/fullgrid/CiwFD?type=embed&safe=true

参考

7 CSS Units You Might Not Know About

CSS的长度单位

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

目录
相关文章
|
前端开发
15、CSS单位元素(px、em、rem)
15、CSS单位元素(px、em、rem)
58 0
15、CSS单位元素(px、em、rem)
|
编解码 前端开发 程序员
聊聊CSS里面的单位,别说你只会用px
聊聊CSS里面的单位,别说你只会用px
129 0
|
Web App开发 XML 编解码
01-CSS中的长度尺寸单位和颜色
01-CSS中的长度尺寸单位和颜色
195 0
01-CSS中的长度尺寸单位和颜色
|
前端开发
css单位%在不同属性中的依据计算
css单位%在不同属性中的依据计算
|
Web App开发 编解码 前端开发
扫盲 CSS 中的单位
在 CSS 中,对于尺寸属性的值一般可以分为以下几类:关键字、数值、百分比。关键字一般有 initial、unset 等,百分比则是相对值,常见的是相对于上级 BFC 元素的比例。当然还有包括纯数字值的如 line-height 可以为纯数字,本文主要讨论常见数值。
|
前端开发
#yyds干货盘点# 前端歌谣的刷题之路-第二十一题-css的单位二
#yyds干货盘点# 前端歌谣的刷题之路-第二十一题-css的单位二
55 0
#yyds干货盘点# 前端歌谣的刷题之路-第二十一题-css的单位二
|
前端开发
css:尺寸单位整理px、rem、em、vh、rpx
css:尺寸单位整理px、rem、em、vh、rpx
css:尺寸单位整理px、rem、em、vh、rpx
|
前端开发
#yyds干货盘点# 前端歌谣的刷题之路-第二十题-css的单位一
#yyds干货盘点# 前端歌谣的刷题之路-第二十题-css的单位一
78 0
#yyds干货盘点# 前端歌谣的刷题之路-第二十题-css的单位一
|
编解码 前端开发 Windows
【CSS】浅谈CSS中常用的相对长度单位
【CSS】浅谈CSS中常用的相对长度单位
116 0
【CSS】浅谈CSS中常用的相对长度单位
|
编解码 前端开发 JavaScript
一文读懂 CSS 单位
说起CSS单位,我们最熟悉的可能就是像素单位(px),它是一个绝对单位,也就是说一个10px的文字,放在哪里都是一样大的。单位可以影响颜色、距离、尺寸等一系列的属性。CSS中单位的形式有很多种,下面就分别来看看这些单位。
141 0