前端-CSS中的单位-PX, EM, REM, %, VW, VH啥区别
myzbx 2024-12-13 15:03 16 浏览
PX、EM、REM、%、VW 或 VH 这些CSS单位有什么区别?什么时候该用哪个?今天我们来了解一下。
让我们从基础开始,在CSS中,您可以使用各种度量单位指定元素的大小或长度,有些是绝对单位,有些是相对单位。
绝对单位:
PX:像素 (px) 被视为绝对单位,尽管它们与查看设备的 DPI 和分辨率有关。 但是在设备本身上,PX 单元是固定的,不会基于任何其他元素而改变。 对于响应式站点来说,使用 PX 可能会有问题,但它们对于保持某些元素的大小一致很有用。 如果您有不应该调整大小的元素,那么使用 PX 是一个不错的选择。
相对单位:
EM:相对于父元素
REM:相对于根元素(HTML 标签)
%:相对于父元素
VW:相对于视口的宽度
VH:相对于视口的高度
与 PX 不同,%、EM 和 REM 等相对单位更适合响应式设计。相对单位在不同的设备上可以更好地缩放,因为它们可以根据另一个元素的大小进行缩放。
让我们来看个例子
在大多数浏览器中,默认字体大小为 16 像素。 相对单位从这个基础计算大小。 如果您通过 CSS 为 HTML 标记设置基本尺寸来更改该基本尺寸,那么更改的尺寸将成为计算整个页面其余部分的相对单位的基础。 同样,如果用户调整了她的字体大小,那么这将成为计算相对单位的基础。那么在处理默认的 16px 时,这些单位是什么意思呢?
1em = 16px (1 * 16)
2em = 32px (2 * 16)
.5em = 8px (.5 * 16)
1rem = 16px
2rem = 32px
.5rem = 8px
100% = 16px
200% = 32px
50% = 8px
但是如果您或用户更改了默认大小怎么办? 因为这些是相对单位,所以最终尺寸值将基于新的基本尺寸。 虽然默认值为 16 像素,但如果您或用户将其更改为 14 像素,则计算出的尺寸最终将是:
1em = 14px (1 * 14)
2em = 28px (2 * 14)
.5em = 7px (.5 * 14)
1rem = 14px
2rem = 28px
.5rem = 7px
100% = 14px
200% = 28px
50% = 7px
这使用户可以自由调整其默认浏览器字体大小,同时仍保持您指定的每个元素的相对比例。
EM 和 REM有什么区别?
查看上面的图表,它显示 EM 和 REM 看起来完全一样。 那么它们有什么不同呢?
简而言之,它们因继承而异。 如前所述,REM 基于根元素 (HTML)。 然后,每个使用 REM 的子元素都将使用 HTML 根大小作为其计算点,而不管父元素是否指定了任何不同的大小。
另一方面,EM 基于父元素的字体大小。 如果父元素的大小与根元素的大小不同,则 EM 计算将基于父元素,而不是根元素。 这意味着使用 EM 进行大小调整的嵌套元素有时最终会达到您未预料到的大小。 另一方面,如果您需要它来指定页面特定区域的大小,它确实为您提供了更细粒度的控制。
看下面的例子,如果parent没有指定任何字体,那么,他们都将根据相同的字体来计算长度,所以所有rem em都相等。
而如果给parent设置了不同的字体大小,情况就不同了,em会根据新的字体大小计算长度。在parent外面的div不受影响,如下图。
什么是VW和VH?
虽然 PX、EM 和 REM 主要用于字体大小,但 %、VW 和 VH 主要用于边距、填充、间距和宽度/高度。
重申一下,VH 代表“视口高度”,即可视屏幕的高度。 100VH 表示视口高度的 100%,或屏幕的整个高度。当然,VW 代表“视口宽度”,即可视屏幕的宽度。 100VW 表示视口宽度的 100%,或屏幕的整个宽度。 % 反映了父元素大小的百分比,与视口的大小无关。
视口单位表示当前浏览器视口(当前浏览器大小)的百分比。虽然类似于 % 单位,但还是有区别的。 视口单位计算为浏览器当前视口大小的百分比。 另一方面,百分比单位计算为父元素的百分比,这可能与视口大小不同。
让我们考虑一个 480px x 800px 的移动屏幕视口示例。
1 VW = 视口宽度的 1%(或 4.8px)
50 VW = 视口宽度的 50%(或 240px)
1 VH = 视口高度的 1%(或 8px)
50 VH = 视口高度的 50%(或 400px)
如果视口大小发生变化,元素的大小也会相应变化。
结论:
什么时候改用什么单位呢?
归根结底,这个问题没有完美的答案。一般来说,通常最好选择相对单位之一而不是 PX,这样您的网页就有机会呈现出精美的响应式设计。但是,如果您需要确保元素永远不会在任何断点处调整大小并且无论用户是否选择了不同的默认大小都保持不变,请选择 PX。 PX 即使显示不理想,也能确保一致的结果。
EM 是相对于父元素的字体大小的,所以如果你想根据父元素的大小来缩放元素的大小,请使用 EM。
REM 是相对于根 (HTML) 字体大小的,因此如果您希望根据根大小缩放元素的大小,无论父大小是什么,都使用 REM。如果您使用过 EM,并且由于大量嵌套元素而发现大小问题,那么 REM 可能是更好的选择。
VW 对于创建填充整个视口宽度的全宽元素 (100%) 很有用。当然,您可以使用视口宽度的任何百分比来实现其他目标,例如一半宽度的 50VW 等。
VH 对于创建填充整个视口高度的全高元素 (100%) 很有用。当然,您可以使用视口高度的任意百分比来实现其他目标,例如一半高度的 50VH 等。
% 类似于 VW 和 VH,但它不是相对于视口宽度或高度的长度。相反,它是父元素宽度或高度的百分比。
- 上一篇:高逼格写作Markdown标记详解
- 下一篇:html简单的二级菜单制作
相关推荐
- Fabric.js使用说明详解(fabric nodejs)
-
Fabric介绍简介:Fabric是一款基于HTML5Canvas的开源绘图库,它提供了丰富的API和工具,可以轻松地创建交互式的绘图应用程序和游戏。功能特点:介绍Fabric的核心功能,如图形绘制...
- 如何才能快速将照片变成漫画?(如何才能快速将照片变成漫画风格)
-
本文分享8个超级详细的照片变漫画教程,让你秒变绘画大师,跟着教程就能亲手将自己的照片制作成精美的漫画,快来一起试试吧~1、PS一款专业的图像处理软件,具备出色的图像处理功能,提供了强大的编辑工具和广...
- 很少人知道的20个最好用的免费设计软件
-
不是每个人都能花重金去购置昂贵的软件来装备自己,特别是在刚开始涉足设计这个行业的新手们。我们知道adobe系列软件正版是收费的,而且很贵,虽然说我们国内已经能破解使用,很多人都认为adobe的那些软件...
- 13个免费的信息图表制作软件推荐(如何制作信息表)
-
制作信息图表涉及大量的工作,如:数据收集,数据排列,选择和规划信息图表的格式和设计信息图表。在设计信息图表时,选择适当的制图软件是一个非常艰巨的任务。下面为大家推荐13个最好的免费信息图表制作软件。A...
- 怎么转换图片的格式?(怎么转换图片的格式)
-
我们日常用到最多的图片格式是JPG/JPEG格式的,其他常见的图片格式包括有bmp,png,tif,gif,svg,cdr,ai,raw,webp等,由于图片的使用场景不同,所以要求的具体格式也会有所...
- Adobe的各种图形处理软件分别是做什么的
-
Adobe公司的Ps,Pr,Ae,An,Ai软件分别的用来做什么的?PS:AdobePhotoshop的简称,用于图像处理、编辑、通道、图层、路径综合运用,图像色彩的校正,各种特效滤镜的使用、特效字...
- 前端开发中,对图片的优化技巧有哪些?
-
按照先后顺序有以下:1.去掉无意义的修饰。嗯,我会瞎说吗?除了内容图片,其他的图片的作用是修饰,也就是对于传达信息来说并非本质性的。最大的优化就是压根不要图片!所以在优化之前要做的,首先是确认设计,...
- Adobe软件的最佳Linux替代品有哪些?这几款工具不容错过
-
如果你是一名平面设计工作者,那么估计很多与你职业相同或者是喜欢并正在学习平面设计的小伙伴们,而如果恰巧你们都是Linux用户的话,那么估计很多的小伙伴都在寻找Adobe的Linux替代品吧。但是,...
- 精心收集几个免费绘图、修图与照片编辑软件分享一下
-
本次为大家介绍几款绘图、修图与照片编辑软件,都可以免费授权个人与教育使用,有些开源软件甚至可以在工作上商业使用。其中大多数的绘图软件都是跨平台的,可以在Windows或Mac上安装,对个人照片...
- UI设计入门干货!八大软件+技能+素材网站
-
随着互联网行业的发展,UI设计师越来越多的被提及,UI设计师大火,需求岗位越来越多,也有越来越多的人转行投身UI设计师。UI设计是什么?一般所说的UI设计多指UI视觉设计,主要负责APP、Web、H5...
- 干货!一文读懂10种主流的图片格式
-
JPG、PNG、GIF,这些在我们生活中常见的图片格式,你真的了解它们吗?你知道除了这3种图片格式外,还有十多种主流的图片格式吗?每一种图片格式都有自己的特点和适用场景,选择正确的图片类型不仅能提升视...
- 最佳设计:A-Frame,阅读进度指示器,Colorify.js,交互式讲故事
-
最佳设计和开发好东西的综述以及一些新版本-第44期(2015年最后一期),包括A-Frame,阅读进度指示器,Colorify.js,交互式讲故事的动画地图路径,简单的Ionic侧菜单过渡等。摇滚...
- 当爆火的“粘土风”吹进铁路......
-
展播开始啦⑨<animateattributeName="opacity"begin="0s"dur="0.01"fill="freeze"from="1"to="1"/>&l...
- 日日是好日:书法艺术文字T恤定制,陶冶性情、现代生活新平衡
-
书法,心情和思想都融入文字的意境当中,对眼前或身边发生的不愉快事情视而不见、听而不闻,从而进入既轻松又舒适的状态,没有了妄念和烦恼,精神获得享受。本文节选自《DIYSKU个性化定制设计按需印刷行业出海...
- 从默默无闻到无可替代,Photoshop背后藏着多少不为人知的故事 ?
-
1990年2月推出了photoshop1.0。当时Photoshop只能在Mac计算机上运行,功能上也只有“工具”面板和少量的滤镜。1991年2月推出了photoshop2.0。该版本发行引发了桌...
- 一周热门
- 最近发表
- 标签列表
-
- HTML 简介 (30)
- HTML 响应式设计 (31)
- HTML URL 编码 (32)
- HTML Web 服务器 (31)
- HTML 表单属性 (32)
- HTML 音频 (31)
- HTML5 支持 (33)
- HTML API (36)
- HTML 总结 (32)
- HTML 全局属性 (32)
- HTML 事件 (31)
- HTML 画布 (32)
- HTTP 方法 (30)
- 键盘快捷键 (30)
- CSS 语法 (35)
- CSS 选择器 (30)
- CSS 轮廓 (30)
- CSS 轮廓宽度 (31)
- CSS 谷歌字体 (33)
- CSS 链接 (31)
- CSS 中级教程 (30)
- CSS 定位 (31)
- CSS 图片库 (32)
- CSS 图像精灵 (31)
- SVG 文本 (32)