您现在的位置是:网站首页> 编程资料编程资料
css中px、em和rem的区别总结css3中单位px,em,rem,vh,vw,vmin,vmax的区别及浏览器支持情况知识普及:彻底搞懂CSS中单位px和em,rem的区别浅析rem和em和px vh vw和% 移动端长度单位
2023-10-21
304人已围观
简介 相信每位前端工程师们都有这么一个体会,国内的设计师大都喜欢用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 单位的元素的字体大小。例如,如果一个 div 有 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 字体大小的菜单
通过这种方式,如果您更改菜单的字体大小菜单项周围的间距将在剩余的空间按比例缩放。
总结
- rem 和 em 单位是由浏览器基于你的设计中的字体大小计算得到的像素值。
- em 单位基于使用他们的元素的字体大小。
- rem 单位基于 html 元素的字体大小。
- em 单位可能受任何继承的父元素字体大小影响
- rem 单位可以从浏览器字体设置中继承字体大小。
- 使用 em 单位应根据组件的字体大小而不是根元素的字体大小。
- 在不需要使用em单位,并且需要根据浏览器的字体大小设置缩放的情况下使用rem。
- 使用rem单位,除非你确定你需要 em 单位,包括对字体大小。
- 媒体查询中使用 rem 单位
- 不要在多列布局中使用 em 或 rem -改用 %。
- 不要使用 em 或 rem,如果缩放会不可避免地导致要打破布局元素。
以上就是关于css中px、em和rem区别的全部内容了,希望本文的内容对的大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。
相关内容
- 浏览器默认样式(User Agent Stylesheet)的介绍与最佳处理方法我的css框架——base.css(重设浏览器默认样式)浏览器默认样式重置浏览器默认样式CSS样式表教程:浏览器默认样式-CSS教程-网页制作-网页教学网
- 利用css实现浮雕效果示例代码纯CSS3绘制打火机动画火焰效果html5使用canvas实现跟随光标跳动的火焰效果分享16款燃烧的火焰效果英文字体大宝库CSS3实现文字浮雕效果,镂刻效果,火焰文字
- CSS实现三栏布局的四种方法示例CSS经典三栏布局方案(6种方法)浅谈CSS三栏布局的N种实现CSS三栏布局探讨——中间固定宽度两边自适应宽度CSS Float布局过程与老生常谈的三栏布局 DIV+CSS 三栏布局实例代码css实现三栏布局的几种方法及优缺点
- 手把手教你用CSS实现带箭头的流程进度条HTML5+CSS3网页加载进度条的实现,下载进度条的代码实例CSS实现进度条和订单进度条 CSS3制作彩色进度条样式的代码示例分享基于CSS3实现可按进度百分比变色的进度条CSS3+JS实现iOS8风格loading加载进度条特效源码使用CSS实现阅读进度条
- 前端编码规范(4)—— CSS 和 Sass (SCSS) 开发规范详解利用css3的var()实现运行时改变scss的变量值uni-app中使用scss的示例代码scss使用mixin不生效(浏览器无法编译出来)的解决方法手机端用rem+scss做适配的详解CSS3 真的会替代 SCSS 吗
- web前端开发规范文档(2014年版本)html5+CSS3的编码规范前端编码规范(4)—— CSS 和 Sass (SCSS) 开发规范Web前端开发规范2017(HTML/JavaScript/CSS)web前端开发规范文档(2014年版本)响应式Web之流式网格系统 在网页标题栏上和收藏夹显示网站logo的实现方法Visual Foxpro 6.0 中文版安装向导(图解)网站日志200 0 64状态码的分析(协议子状态)W3C是什么意思 W3C标准简介有关网站网页设计中的那些事儿分享
- CSS3实现内凹圆角的实例代码css3图片边框border-image的用法css3 边框、背景、文本效果的实现代码利用CSS3伪元素实现逐渐发光的方格边框一篇文章带你学习CSS3图片边框
- css3+伪元素实现鼠标移入时下划线向两边展开的效果浅谈CSS3鼠标移入图片动态提示效果(transform)纯css写的评分鼠标移入的效果附图纯CSS实现商品图片点击放大效果CSS实现鼠标移入时图片的放大效果及缓慢过渡效果的示例代码
- 啪啪三国吕玲绮技能属性详细介绍_手机游戏_游戏攻略_
- 啪啪三国 关羽详细介绍_手机游戏_游戏攻略_
