本文介绍: px(pixel)和rem(root em)都是用于测量长度单位,但是它们有不同的换算关系px是绝对单位,1px = 1/96寸。在不同设备上,1px对应不同的物理尺寸,所以不适合用于响应布局rem相对单位,它是相对于根元素字体大小计算的。所以,如果htmlfontsize是16px,则1rem = 16px。如果htmlfontsize是20px,则1rem = 20px。

px和rem换算

px(pixel)和rem(root em)都是用于测量长度的单位,但是它们有不同的换算关系。px是绝对单位,1px = 1/96寸。在不同设备上,1px对应不同的物理尺寸,所以不适合用于响应布局。rem相对单位,它是相对于根元素<html>的字体大小计算的。
所以,如果htmlfontsize是16px,则1rem = 16px。
如果htmlfontsize是20px,则1rem = 20px。所以,px和rem的换算关系公式为:px = rem × fontsize of <html&gt例如:
– 如果htmlfontsize是16px
– 设定元素width: 10rem
– 那么这个元素的px宽度就是:10rem * 16px = 160px在实际开发中,我们通常会给<html>元素设置不同的fontsize,以适配不同屏幕:- 在大屏幕上,给<html>设置较大的fontsize,例如20px,那么1rem = 20px
– 在小屏幕上,给&lt;html>设置较小的fontsize,例如10px,那么1rem = 10px这样,我们设计稿上量取的rem单位,可以在不同屏幕上显示不同的px值,达到响应效果推荐的<html>字号设置方式有:1. 媒体查询设置:

css
html {
  font-size: 16px;  /* 默认16px */
}

@media (min-width: 768px) { 
  html {
    font-size: 20px; 
  }
}

2. 使用视口单位vw设置:

css
html {
  font-size: 5vw;  /* 视口宽度的5% */
}

3. 使用javascript动态设置:

js
function setFontSize() {
  var winWidth = document.documentElement.clientWidth;
  if (winWidth >= 1920) {
    document.documentElement.style.fontSize = '100px';
  } else if (winWidth >= 1600) {
    document.documentElement.style.fontSize = '90px';
  } else if (winWidth >= 1366) {
    document.documentElement.style.fontSize = '80px';
  } else {
    document.documentElement.style.fontSize = '16px';
  }
}

以上就是px和rem的换算关系及在响应布局中的应用。 

px和rpx换算

px(pixel)和rpx(responsive pixel)也都是用于度量长度的单位,但是它们有不同的换算关系。px是绝对单位,1px = 1/96寸。在不同设备上,1px对应不同的物理尺寸,所以不适合用于响应式布局。rpx是相对单位,它是相对于屏幕宽度计算的。在iPhone 6上,屏幕宽度为750px,所以750rpx = 1px。
在iPhone X上,屏幕宽度为1125px,所以1125rpx = 1px。所以,px和rpx的换算关系为:rpx = px × (设备宽度 / 标准宽度)标准宽度一般为750px。例如:
– 在iPhone 6上(屏幕宽度750px):
– 设定元素width: 150rpx
– 那么这个元素的px宽度就是:150rpx * 750px / 750 = 150px- 在iPhone X上(屏幕宽度1125px):
– 设定元素width: 150rpx
– 那么这个元素的px宽度就是:150rpx * 1125px / 750 = 225px可以看出,在不同屏幕宽度的设备上,rpx对应的px值会不同,这就是rpx实现响应式的原理。在小程序开发中,我们通常会根据标准宽度750px来设计UI,然后使用rpx作为单位。在不同设备上,rpx会自动转换为对应的px值,实现响应式布局。

原文地址:https://blog.csdn.net/ceike/article/details/130656625

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_23794.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注