css中px、em和rem使用详解

相信每位前端工程师们都有这么一个体会,国内的设计师大都喜欢用px,而国外的网站大都喜欢用em和rem,那么三者有什么区别,又各自有什么优劣呢?下面这篇文章小编就来给大家详细介绍关于css中px、em和rem的区别,需要的朋友可以参考借鉴,下面来一起看看吧。

前言

em 和 rem 都是灵活可扩展的单位,由浏览器转换为像素值,取决于设计中的字体大小,如果使用值 1em 或 1rem ,它可以被浏览器转换为从 16px 到 160px 或其他任意值。浏览器使用 1px ,那么 1px 始终显示为完全 1px。

em 和 rem 的相同点

使用 em 和 rem 单位可以让我们的设计更加灵活,能够控制元素整体放大缩小,而不是固定大小

em 和 rem 区别

区别是浏览器根据谁来转化成 px 值

rem 单位如何转化为像素值

当使用 rem 单位,他们转化为像素大小取决于页根元素的字体大小,即 html 元素的字体大小。 根元素字体大小乘以你 rem 值。

例如,根元素的字体大小 16px,10rem 将等同于 160px,即 10 x 16 = 160。

em 单位如何转换为像素值

当使用em单位时,像素值将是 em 值乘以使用 em 单位的元素的字体大小。例如,如果一个 p 有 18px 字体大小,10em 将等同于 180px,即 10 × 18 = 180。

重点理解:

有一个比较普遍的误解,认为 em 单位是相对于父元素的字体大小。 事实上,根据W3标准 ,它们是相对于使用em单位的元素的字体大小。父元素的字体大小可以影响 em 值,但这种情况的发生,纯粹是因为继承。 让我们看看为什么以及如何起作用。

你需要知道的:

根 html 元素将继承浏览器中设置的字体大小,除非显式设置固定值去覆盖。所以 html 元素的字体大小虽然是直接确定 rem 值,但字体大小可能首先来自浏览器设置。因此浏览器的字体大小设置可以影响每个使用 rem 单元以及每个通过 em 单位继承的值。

总结与 rem 差异 em

上述所有归结如下:

rem 单位翻译为像素值是由 html 元素的字体大小决定的。 此字体大小会被浏览器中字体大小的设置影响,除非显式重写一个具体单位。

em 单位转为像素值,取决于他们使用的字体大小。 此字体大小受从父元素继承过来的字体大小,除非显式重写与一个具体单位。

为什么使用 rem 单位:

Rem 单位提供最伟大的力量并不仅仅是他们提供一致尺寸而不是继承。 相反,它给我们的一个途经去获取用户的偏好来影响网站中每一处使用rem的元素大小,不再是使用固定的 px 单位。
为此,使用 rem 单位的主要目的应该是确保无论用户如何设置自己的浏览器,我们的布局都能调整到合适大小。

为什么使用 em 单位

em 单位取决于一个font-size值而非 html 元素的字体大小。

为此,em 单位的主要目的应该是允许保持在一个特定的设计元素范围内的可扩展性。

例如,您可能使用em 值设置导航菜单项的padding、 margin,line-height等值。带有0.9rem 字体大小的菜单

通过这种方式,如果您更改菜单的字体大小菜单项周围的间距将在剩余的空间按比例缩放。

相信看了本文案例你已经掌握了方法,更多精彩请关注创想鸟其它相关文章!

推荐阅读:

CSS怎么处理浏览器的默认样式

CSS实现带箭头流程可见进度条

以上就是css中px、em和rem使用详解的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1609588.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月24日 00:51:25
下一篇 2025年12月24日 00:51:37

相关推荐

  • CSS怎么处理浏览器的默认样式

    这次给大家带来CSS怎么处理浏览器的默认样式,CSS处理浏览器的默认样式注意事项有哪些,下面就是实战案例,一起来看一下。 发现 最近在调整网页的格式发现网页底部总是有一个10像素左右的空格。 通过用Chrome流浪器的审查元素发现有一个叫user agent stylesheet设置整个form的m…

    好文分享 2025年12月24日
    000
  • CSS3实现点击放大的动画实例

    这次给大家带来CSS3实现点击放大的动画实例,CSS3实现点击放大动画实例的注意事项有哪些,下面就是实战案例,一起来看一下。 前言 最近在工作中遇到一个需求,实现的效果是当点击商品图片右上的收藏按钮触发放大动画,后来通过查找相关的资料,发现利用css3:@keyframes animation即可实…

    2025年12月24日
    000
  • css做出波纹动画

    这次给大家带来css做出波纹动画,css做出波纹动画的注意事项有哪些,下面就是实战案例,一起来看一下。 效果图如下 实例代码如下 body{ background: #000; } .box{ width: 100%; height: 600px; background: #000; } .vr {…

    2025年12月24日
    000
  • CSS的background-attachment使用详解

    这次给大家带来,的注意事项有哪些,下面就是实战案例,一起来看一下。 一、background-attachment属性 在CSS中,使用背景附件属性background-attachment可以设置背景图像是随对象滚动还是固定不动。 语法: background-attachment:scroll/…

    2025年12月24日
    000
  • css3多类选择器使用详解

    这次给大家带来css3多类选择器使用详解,使用css3多类选择器的注意事项有哪些,下面就是实战案例,一起来看一下。 下面一段代码给大家介绍css3类选择器之结合元素选择器和多类选择器用法,具体代码如下所示: Title .p2{font-size:30px;} /*结合元素选择器*/ p.p1{co…

    好文分享 2025年12月24日
    000
  • React与CSS3实现微信拆红包动画

    这次给大家带来React与CSS3实现微信拆红包动画,React与CSS3实现微信拆红包动画的注意事项有哪些,下面就是实战案例,一起来看一下。 微信红包曾经引爆过一系列的营销热潮,相信大家对于这种红包形式并不陌生,这里本着娱乐至上的精神用React简单地实现了拆红包的动画效果,供大家一起交流学习 用…

    2025年12月24日
    000
  • 用CSS3实现头像旋转效动画

    这次给大家带来用CSS3实现头像旋转效动画,用CSS3实现头像旋转效动画的注意事项有哪些,下面就是实战案例,一起来看一下。 鼠标未放上效果: 鼠标放上之后旋转效果: transition: all 2.0s;表示所有的属性变换在2秒内完成; transform: rotate(360deg);表示图…

    2025年12月24日
    000
  • 在CSS实现Footer置底的几种方式

    这次给大家带来在CSS实现Footer置底的几种方式,在CSS实现Footer置底的注意事项有哪些,下面就是实战案例,一起来看一下。 页脚置底(Sticky footer)就是让网页的footer部分始终在浏览器窗口的底部。 当网页内容足够长以至超出浏览器可视高度时,页脚会随着内容被推到网页底部;但…

    2025年12月24日
    000
  • CSS3实现进度条的俩种方法

    这次给大家带来CSS3实现进度条的俩种方法,CSS3实现进度条的注意事项有哪些,下面就是实战案例,一起来看一下。 效果图如下:     第一种姿势如下  先上代码 /*对应CSS*/ #progress{ width: 300px; height: 30px; border:1px solid #c…

    2025年12月24日 好文分享
    000
  • CSS有多少清除浮动的方式

    这次给大家带来CSS有多少清除浮动的方式,清除浮动的注意事项有哪些,下面就是实战案例,一起来看一下。 1、设置父元素高度 如果一个元素要浮动,那么它的祖先元素一定要有高度.高度的盒子,才能关住浮动 只要浮动在一个有高度的盒子中,那么这个浮动就不会影响后面的浮动元素.所以就是清除浮动带来的影响了. 弊…

    2025年12月24日
    000
  • CSS的Selector使用详解

    这次给大家带来CSS的Selector使用详解,使用CSS的Selector注意事项有哪些,下面就是实战案例,一起来看一下。 CSS1 中定义的选择器 类型选择器 用于选择指定类型的元素(其实他就是 html 标签选择器),常见用法如下: body { /*对 body 元素定义样式*/}body,…

    2025年12月24日
    000
  • CSS的checkbox效果使用详解

    这次给大家带来CSS的checkbox效果使用详解,使用CSS的checkbox注意事项有哪些,下面就是实战案例,一起来看一下。 实现思路 纯css实现的主要手段是利用label标签的模拟功能。label的for属性可以关联一个具体的input元素,即使这个input本身不可被用户可见,有个与它对应…

    好文分享 2025年12月24日
    000
  • 用css3画个同心圆

    这次给大家带来用css3画个同心圆,用css3画个同心圆的注意事项有哪些,下面就是实战案例,一起来看一下。 基本思路 首先你得画三个圆吧,那三个圆怎么重叠到一块呢?这个就得靠-margin来控制了。 css #t1 { float:left; width:150px; height:150px; b…

    2025年12月24日
    000
  • css3取消上下边的列表间隔线

    这次给大家带来css3取消上下边的列表间隔线,css3取消上下边的列表间隔线的注意事项有哪些,下面就是实战案例,一起来看一下。 效果图:   方法一:通用兄弟选择器( ~ ) Document ul {margin: 0; padding: 0;} li { list-style: none; he…

    2025年12月24日
    000
  • 用CSS将网站变黑白

    这次给大家带来用CSS将网站变黑白,用CSS将网站变黑白的注意事项有哪些,下面就是实战案例,一起来看一下。 方法如下: 这段CSS代码可以变网页为黑白,将代码加到CSS最顶端就可以实现素装。 html{filter: grayscale(100%);-webkit-filter: grayscale…

    好文分享 2025年12月24日
    000
  • 用CSS将网页变黑白

    这次给大家带来用CSS将网页变黑白,用CSS将网页变黑白的注意事项有哪些,下面就是实战案例,一起来看一下。 方法如下: 这段CSS代码可以变网页为黑白,将代码加到CSS最顶端就可以实现素装。 html{filter: grayscale(100%);-webkit-filter: grayscale…

    好文分享 2025年12月24日
    000
  • css3的移动属性

    这次给大家带来css3的移动属性,使用css3移动属性的注意事项有哪些,下面就是实战案例,一起来看一下。 transform功能 放缩 使用sacle方法实现文字或图像的放缩处理,在参数中指定缩放倍率,比如sacle(0.5)表示缩小50%,例子如下: scale方法使用示例 p { width: …

    2025年12月24日 好文分享
    000
  • CSS设置Checkbox复选框的样式

    这次给大家带来CSS设置Checkbox复选框的样式,CSS设置Checkbox复选框样式的注意事项有哪些,下面就是实战案例,一起来看一下。 首先,需要添加一段CSS隐藏所有的Checkbox复选框,下面我们会改变它的外观。要做到点需要添加一段代码到你的CSS文件中。 隐藏掉所有的Checkbox复…

    2025年12月24日 好文分享
    000
  • 用CSS3实现无限循环的无缝滚动效果

    这次给大家带来用CSS3实现无限循环的无缝滚动效果,CSS3实现无限循环的无缝滚动效果注意事项有哪些,下面就是实战案例,一起来看一下。 有时候在页面的某个模块中,需要无限循环的滚动一些消息。那么如果我们用js实现无缝衔接滚动的思路是什么呢(比如我们这个模块是向上滚动的)? 克隆A一份完全一样的数据B…

    2025年12月24日
    000
  • 用CSS3实现发光方格边框

    这次给大家带来用CSS3实现发光方格边框,用CSS3实现发光方格边框的注意事项有哪些,下面就是实战案例,一起来看一下。 本文介绍的是一个使用伪元素来实现边框逐渐发光的代码,主要用到scale和opacity这两个属性。下面来看看详细的介绍: 效果图如下: HTML代码: @@##@@ 前端开发博客 …

    2025年12月24日
    000

发表回复

登录后才能评论
关注微信