CSS单位总结

CSS中,单位分为两类
  • 绝对单位:无论其他相关的设置怎么变化,绝对单位指定的值是不会变化的;
  • 相对单位:没有固定的度量值,是由其他元素尺寸来决定的相对值。
    注意:此处的相对指当前元素的字号(font-size)或者视口(viewport)尺寸。

绝对单位有:

单位简介
px像素 (计算机屏幕上的一个点),1px = 1/96in
pt磅 (Points) ,1 pt = 1/72 in
pc12 点活字(Picas),1pc = 12pt = 1/6in
in英寸(Inches),1in = 96px = 2.54cm
cm厘米(Centimeters),1cm = 96/2.54px
mm毫米(Millimeters),1mm = 1/10cm
qQuarter-millimeters,1q = 1/4mm

注:绝对单位通常使用在打印方面。

相对单位有:

单位简介
%百分比,相对于父元素的宽度或者字体大小
em相对于当前对象内文本字体的大小,1em = 当前字体的大小,2em = 2*当前字体的大小
rem(root em),相对于html标签的字体大小
ex当前字体环境中x字母的高度,一个 ex 是一个字体的 x-height (x-height 通常是字体尺寸的一半。)
ch当前字体环境中0数字的高度
vw1%视口(浏览器可视区域)的宽度
vh1% 视口(浏览器可视区域)的高度
vmin1% 视口(浏览器可视区域)宽度和高度中较小的尺寸
vmax1% 视口(浏览器可视区域)宽度和高度中较大的尺寸
浏览器兼容性
单位chromeIEFirefoxSafariopera
em,ex,%,px,cm,mm,in,pt,pc1.03.01.01.03.5
ch27.09.01.07.020.0
rem4.09.01.07.020.0
vhvw20.09.019.06.020.0
vmin20.09.0*19.06.020.0
vmax26.0不支持19.0不支持20.0
重要单位详解
1、%

相对于父元素相同属性的大小,%可以说是属性的值吧,但是可以看做长度单位来使用,因此列出。

  • %设置字体大小,则是相对于父元素的字体大小计算
    大多数浏览器中<html><body> 标签中的默认字体尺寸是100%

     html{ font-size: 100%; }
     body {font-size: 100%;}
     /* 100% = 1em = 16px = 12pt */
    
  • %设置非字体尺寸(如宽和高),基于具有相同属性的父元素的长度值
    拓展:
    确认父元素(relative、absolute、float、fixed、static)
    1、static、relative、float元素,均符合HTML树形结构
    2、absolute是离它最近的定位元素(relative、absolute、fixed)元素或者body(没找到定位元素)
    3、fixed元素是视口

3、em

基于当前元素字体尺寸

html {
	font-size: 14px;
}
div {
	font-size: 1.2em;
	line-height: 1.5em;
}
<body>
	<div> font-size:16.8px;line-height:25.2px;
		<div> font-size:20.16px;line-height:30.24px;
			<div> font-size:24.192px;line-height:36.288px;</div> 
		</div>
	</div>
</body>
4、rem

基于html字体尺寸

html {
	font-size: 14px;
}
div {
	font-size: 1.2rem;
	line-height: 1.5rem;
}
<body>
	<div> font-size:16.8px;line-height:25.2px;
		<div>font-size:16.8px;line-height:25.2px;
			<div>font-size:16.8px;line-height:25.2px;</div> 
		</div>
	</div>
</body>

注意:3&4中示例在chrome浏览器上显示font-size:18px;line-height:27px;,但实际计算是根据16.8px来的,Firefox无此问题。

5、exch

exch 单位,依赖于当前字体font-family 和字体大小 font-size

  • ex 指当前字体环境中小写字母x 的高度;
  • ch 指当前字体环境中数字 0 的宽度。
    在这里插入图片描述
7、vwvh

如果项目中要使用视口(viewport)的宽度或者高度,而不是父元素的宽度或者高度,那么这时候就需要vwvh出场了。

1vw = 1%的视口宽度
1vh = 1%的视口高度
//假设视口的宽度为750px,高度为1400px,那么:
1vw = 750px / 100 = 7.5px
1vh = 1400px / 100 = 14px

应用场景:
1、任意元素高度与屏幕高度一致:

// 以前做法
.test{ height: 100%}
html,body{height:100%}

// 现在做法:
.test{ height: 100vh}

2、子元素大小根据浏览器改变而不是父元素
3、响应字体大小
在这里插入图片描述

// 现在做法:
.test{ font-size: 100vh}

4、响应垂直居中

.test {
	width:60vw;
	height:60vh;
	margin: 20vh auto;
}

5、等列宽

.colum-1 {
	float: left;
	width: 50vw;
}
.colum-2 {
	float: left;
	width: 30vw;
}
.colum-3 {
	float: left;
	width: 20vw;
}

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

9、vminvmax

这两个单位是针对vw和vh:

  • vminvwvh中比较 小 的值;
  • vmaxvwvh中比较 大 的值。

注:

  1. IE10+ 和现代浏览器都已经支持 vmin
  2. 除IE不支持 vmax,其他现代浏览器已经支持了

参考网站:

https://segmentfault.com/a/1190000004043937
https://www.w3cplus.com/css/simplify-your-stylesheets-with-the-magical-css-viewport-units.html
http://fittextjs.com/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值