CSS中单位:【px和%】【em和rem】【vw|vh|vmin|vmax】的区别

简介: CSS中单位:【px和%】【em和rem】【vw|vh|vmin|vmax】的区别

CSS中的px 和 %

  • px (pixels) 是固定单位,也可以叫基本单位,代表像素,可以确保元素的大小不受屏幕分辨率的影响。
  • % (percentage) 是相对单位,代表元素大小相对于其父元素或视口(viewport)的大小的百分比。使用百分比可以让元素随着屏幕大小或父元素大小的变化而自动调整大小。

选择使用哪种单位取决于您的需求和项目的要求。通常情况下,固定大小的元素(如图像)使用 px,而相对大小的元素(如布局)使用%

案例描述:

image.png

以上是描述盒子居中的过程。

1、box2由初始状态通过step1,盒子的定位类型变成了绝对定位元素,此时left: 50%和top: 50%两个属性值将**盒子的原点(0, 0)**移到了父元素(这里指box1)的中心位置。这里的50%是相对于父元素的,也就是相对于盒子box1, 通过换算得到:left:100px;top:100px; 代表的含义是:盒子的原点在X轴水平方向向右向移动的100px, 在Y轴的垂直方向向下移动了100px。

2、box2由step1到step2, 通过margin-left: -50px;margin-top: -50px;使得盒子在X轴的水平方向向左移动了50px,在Y轴的垂直方向向上移动了50px; ** 使得父盒子和子盒子的圆心重合**,至此盒子居中过程结束。

在此我先介绍一下CSS中的坐标系统:

 坐标轴不只是存在于数学中,它同样存在于 Web 世界中。在 Web 中,我们常称之为 Web 坐标轴CSS 坐标系统

   在 Web 中,默认原点是给定上下文的左上角,也就是元素盒子的左上角,它分为 x 轴(也称为水平轴),向右为正值,向左为负值;y 轴(垂直轴),向上为负值,向下为正值:image.png

CSS中的 em 和 rem

  • em 是相对单位,代表元素的字体大小相对于其父元素的字体大小。因此,如果父元素的字体大小变化,则 em 单位的大小也会随之变化。
  • rem(root em)也是一种相对单位,但它代表元素的字体大小相对于根元素(通常是 <html> 元素)的字体大小。因此,即使父元素的字体大小变化,rem 单位的大小也不会随之变化。

两种单位都可以用于设置字体大小、边距等元素的大小,但选择使用哪种单位取决于您的需求和项目的要求。通常情况下,使用 rem 更好,因为它提供了更好的可维护性和可读性。

案例描述:

image.png

在以上案例中:我设置的html根节点的字体大小font-size:15px,其中状态1、状态2、状态3 都各不相同。

下面我们来看看在浏览器中他们各自的属性:

  • 状态1中p标签的属性:
font-size: 20px;
  • 状态2中p标签的属性:
// <p style="text-indent: 2em;"><span>我是天界程序员</span></p>
font-size:20px;
text-indent:40px;
// <p style="text-indent: 2rem;"><span>我同时也是一个社畜</span></p>
font-size:20px;
text-indent:30px;

在这个状态下我们可以得出结论:

(1)2em === 40px, 说明em相对于父元素的字体大小,来换算大小的,而不是根元素.

(2)2rem === 30px, 说明rem相对于根元素的字体大小,来换算大小的,而不是父元素.

  • 状态3中p标签的属性:
// <p style="text-indent: 2em;font-size: 25px;"><span>我是天界程序员</span></p>
font-size:25px;
text-indent:50px;
// <p style="text-indent: 2rem;"><span>我同时也是一个社畜</span></p>
font-size:20px;
text-indent:30px;

在这个状态下我们可以得出结论:

2em === 50px, 说明该状态下的em是对于元素本身的字体大小,来换算大小的,而不是父元素。

结论:

  • em的大小变化是受父元素和元素本身的字体大小影响,其权重:元素本身 > 父元素。
  • rem的大小变化只受其根元素的字体大小影响,与父元素和元素本身无关。

CSS中的 vw 和 vh

  • vhviewport height)代表元素大小相对于视口(viewport)高度的百分比。因此,如果您将元素的高度设置为 100vh,则元素的高度将占据整个视口的高度。
  • vwviewport width)代表元素大小相对于视口宽度的百分比。因此,如果您将元素的宽度设置为 100vw,则元素的宽度将占据整个视口的宽度。

两种单位都可以用于设置元素的宽度和高度,但选择使用哪种单位取决于您的需求和项目的要求。例如,如果您想让元素始终占据整个屏幕的高度,则可以使用 100vh

  • vw : 取屏幕宽度的 1%,作为基础换算单位。
  • vh : 取屏幕高度的 1%,作为基础换算单位。
  • vmin : 取两者的最小值,作为基础换算单位。如果屏幕宽 < 屏幕高 则取屏幕宽为单位,否则,反之。
  • vmax : 取两者的最大值,与vmin的基础换算互斥。
相关文章
|
11月前
|
前端开发 JavaScript Serverless
揭秘CSS布局神器:vw/vh、rem、%与px大PK,掌握它们,让你的网页设计秒变高大上,面试难题迎刃而解!
【8月更文挑战第4天】在Web开发中,合理选择CSS单位对响应式布局至关重要。本文探索viewport单位(vw/vh)、rem、百分比(%)及像素(px)的基础知识与应用场景。通过代码示例,展示如何运用这些单位实现全屏布局、尺寸比例调整、灵活的元素大小及固定尺寸。最后,模拟面试题,介绍如何仅用CSS实现一个元素的高度为其宽度两倍且响应视口变化的方法。
531 8
|
11月前
|
前端开发
css中px和em的区别
css中px和em的区别
119 0
|
11月前
|
前端开发
css中px和em的区别
css中px和em的区别
|
编解码 前端开发
CSS【详解】长度单位 ( px,%,em,rem,vw,vh,vmin,vmax,ex,ch )
CSS【详解】长度单位 ( px,%,em,rem,vw,vh,vmin,vmax,ex,ch )
159 0
|
前端开发
CSS3中的Rem值与Px之间的换算
bootstrap默认 html{font-size: 10px;}   rem是一个相对大小的值,它相对于根元素, 比如假设,我们设置html的字体大小的值为html{font-size: 87.5%;}(也就是14px)。
953 0
|
21天前
|
存储 自然语言处理 前端开发
抖音快手小红书虚拟评论截图生成器,模拟对话制作工具,html+js+css
这是一款纯前端实现的多平台虚拟评论生成器,支持抖音、快手、小红书风格,适用于产品演示与UI设计。采用Vanilla JS与Flexbox布局,利用IndexedDB存储数据,CSS Variables切换主题。
|
21天前
|
存储 前端开发 安全
病历单生成器在线制作,病历单生成器app,HTML+CSS+JS恶搞工具
本项目为医疗病历模拟生成器,旨在为医学教学和软件开发测试提供数据支持,严格遵守《医疗机构病历管理规定》。
|
20天前
|
存储 前端开发 JavaScript
仿真银行app下载安装, 银行卡虚拟余额制作app,用html+css+js实现逼真娱乐工具
这是一个简单的银行账户模拟器项目,用于学习前端开发基础。用户可进行存款、取款操作,所有数据存储于浏览器内存中
|
21天前
|
前端开发 JavaScript 容器
制作b超单生成器, 假怀孕b超单图片制作, p图医院证明【css+html+js装逼恶搞神器】
本资源提供一个适合用于熟人之间恶搞的工具,效果逼真,仅供学习参考与娱乐。包含前端技术学习要点:语义化布局、响应式设计、Flexbox、图片自适应
|
21天前
|
前端开发
医院检查单子p图软件,在线制作仿真病历,js+css+html装逼神器
本示例展示如何用HTML/CSS创建医疗信息页面,内容仅供学习参考。页面模拟“阳光医院体检中心”场景,提供预约功能验证(如姓名、手机号、日期)。所有数据仅用于演示

热门文章

最新文章