注册 登录

清河洛

CSS中的单位

qingheluo2023-01-11清河洛709
CSS中单位的形式有很多种,如常用的可能就是px(像素)相对单位相对单位是相对于另一个长度的长度,需要通过计算才能得出字体相对单位是根据font-size来计算的。常见的字体相对单位有:em、rem、ex、chem和rem:相对于font-size属性值来计算em是相对于自身font-size属性,当自身没有font-size时会向上查找父元素直到找到font-size属性,如果所有父元素都没有设置,会使用浏览器的默认字体尺寸rem相对于em就简单了很多,它是根据页面的根元素(html元素)的font-size属性来计算的,没有设定该属性则使用浏览器的默认字体尺寸ex 和 ch:是排版用...

CSS中单位的形式有很多种,如常用的可能就是px(像素)

css-danwei.png

相对单位

相对单位是相对于另一个长度的长度,需要通过计算才能得出

字体相对单位是根据font-size来计算的。常见的字体相对单位有:em、rem、ex、ch

em和rem:相对于font-size属性值来计算

em是相对于自身font-size属性,当自身没有font-size时会向上查找父元素直到找到font-size属性,如果所有父元素都没有设置,会使用浏览器的默认字体尺寸

rem相对于em就简单了很多,它是根据页面的根元素(html元素)的font-size属性来计算的,没有设定该属性则使用浏览器的默认字体尺寸

ex 和 ch:是排版用的单位,大小取决于元素的font-size和font-family属性

ex 是基于所用字体中小写字母 x 的高度。如果两个字体不一样,那么ex的值不一定一样

ch 是基于所用字体中数字 0 的宽度。0 的宽度通常是字体的平均字符宽度,它是一个估计值

由于ch是一个近似等宽的单元,所以在设置容器的宽度时很有用,如要规定显示指定个数的字符串时,就可以使用

视窗相对单位是根据视窗大小来计算的。常见的视窗相对单位有vw、vh、vmax、vmin

所谓的视窗,在web端指的就是可视区域,移动端指的是布局视窗

vw:视窗宽度的百分比
vh:视窗高度的百分比
一个浏览器视窗高度是800px,那么1vh的值就是8px

vmax:视窗高度和宽度中的较大的值的百分比
vmin:视窗高度和宽度中的较小的值的百分比
一个浏览器视窗高度为500px,宽度为1200px,那么1vmin就是5px,1vmax就是12px
一个浏览器视窗高度为1000px,宽度为600px,那么1vmin就是6px,1vmax就是10px

微信小程序独有的rpx(responsive pixel),不论大小屏幕,规定屏幕宽为750rpx,这样可以根据屏幕宽度进行自适应

绝对单位

绝对单位是一个固定的值。常见的绝对单位包括:px、pt、pc、cm、mm、in等

1in   = 25.4mm  = 2.54cm   = 6pc  = 72pt = 96px
1英寸 = 25.4厘米 = 2.54毫米 = 6派卡 = 72点 = 96像素

px表示像素,全称为Pixels,它并不严格等于显示器的物理像素,尤其在高清屏下

CSS中将光栅图像(如照片等)的显示方式定义为默认每一个图像大小为1px

如一个“600x400”解析度的照片的长宽分别为“600px”和“400px”
照片本身的像素并不会与显示装置像素一致,而是与px单位一致
这样就可以将图像完整的与网页的其它元素排列起来

px常被称为CSS像素,是一个绝对单位,也可以视为相对单位,每1个CSS像素所代表的物理像素在不同的设备之间是变化的

CSS像素 = 物理像素 × 缩放因子

对于桌面设备,由于现在屏幕变得越来越高清,高清屏如果没有缩放,画面看起来会比较小,因此需要放大,在win10中的设置->屏幕中的"缩放与布局"可以修改该值

移动端默认情况下,会将viewport宽度设为980px(也可能是其它值),此时跟缩放因子没有任何关系,这时的1px非常小,所有的元素都变得非常小,之所以这么做是为了尽可能完整的显示网页,然后用户通过放大缩放来查看细节

如果不希望采用默认设置,就需要设置viewport:<meta name="viewport" content="width=device-width">

将viewport宽度设为设备宽度,这里的设备宽度到底就跟缩放因子有关系了,移动设备会自动计算1in = 96px这个比例来控制缩放因子

pt表示点,全称为Point。常用于软件设计和排版印刷行业。当使用这个单位时,无论显示器的分辨率是多少,打印在纸上的结果都是一样的

如果单纯为了网页的显示,建议就使用px像素单位,如果需要输出印刷产品,就可以考虑使用pt

pc表示派卡,全称为Picas。也是印刷的术语,相当于我国新四号铅字的尺寸。1pc=12pt,1pc = 16px

cm表示厘米,全称为Centimeters。1cm = 37.8px

mm表示毫米,全称为Millimeters。1mm = 3.78px

in表示英寸,全称为Inches。1in = 96px

频率单位

CSS中的频率单位有 Hz(赫兹) 和 kHz(千赫兹) 两个,1kHz = 1000Hz

这两个单位是不区分大小写的

频率单位一般使用在听或说级联样式表中。可以用来改变一个语音的音调,低频率就是低音,高频率就是高音

当值为0时,单位对值没有影响,但是0、0Hz、0kHz是不一样的(不要直接写0)

时间单位

CSS中的时间有 s(秒) 和 ms(毫秒) 两个,1s = 1000ms

时间单位主要用于过度和动画中,用于定义持续时间或延迟时间

分辨率单位

CSS中的分辨率单位有三个:dpi、dpcm、dppx

这三个单位都是正值,不允许为负值

1dppx = 96dpi
1dpi ≈ 0.39dpcm
1dpcm ≈ 2.54dpi

还有一个单位是ppi,目前css还没有使用,ppi(pixels per inch)表示沿对角线每英寸长度的像素数目

分辨率单位主要用于媒体查询等操作

dpi表示每英寸包含的点的数量,全称为dots per inch,普通屏幕通常包含72或96个点,大于192dpi的屏幕被称为高分屏

@media screen and (min-resolution: 96dpi) { ... }

dpcm表示每厘米包含的点的数量,全称为dots per centimeter

@media screen and (min-resolution: 28dpcm) { ... }

dppx表示每px包含点的数量,全称为dots per pixel,由于1in = 96px,因此1dppx相当于96dpi

@media screen and (min-resolution: 1dppx) and (max-resolution: 1.9dppx) { ... }

角度单位

CSS中的角度单位有四个:deg、grad、rad、turn

一般这些角度单位用于元素的旋转操作,包括2D旋转、3D旋转等

值为正值时顺时针旋转,为负值时逆时针旋转

通常情况下,所有的角度都在0-360度之间,允许超出这个范围

除了旋转会使用角度之外,线性渐变也会经常使用角度值

background: linear-gradient(45deg, #000, #fff)

deg表示度,全称为Degress,一个圆共360度

grad表示梯度,全称为Gradians,一个圆共400梯度

rad表示弧度,全称为Radians,一个圆共2π弧度

turn表示圈,全称为Turns,一个圆共一圈

百分比单位

百分比(%)也是比较常用的单位之一,所有接受长度值的属性都可以使用百分比单位,不同属性效果可能不一样

盒模型中的百分比

width、max-width、min-width:相对于包含块的width
height、max-height、min-height:相对于包含块的height
padding、margin:水平值相对于包含块的width,垂直值相对于包含块的height

文本中的百分比

font-size:相对于父元素的font-size
line-height:相对于font-size
vertical-align:相对于line-height
text-indent:水平相对于width,垂直相对于height

定位中的百分比

position的top、right、bottom、left参照物就是包含块的同方向的width和height

static或relative,包含块一般是其父容器
absolute,包含块应该是离它最近的position为absolute 、relative 或 fixed 的祖先元素
fixed,包含块就是视窗

变换中的百分比

translateX()相对于容器的width
translateY()相对于容器的 height
transform-origin横坐标(x)相对于容器的width,纵坐标(y)相对于容器的height

translateZ()不接受百分比为单位的值



网址导航