rem

含义

rem是CSS3的新标准,也是相对的长度单位。值是相对于根元素的字号大小来说的。

根元素的字号大小为20px时,某个子元素的宽度为8rem,即为 20 x 8 = 160px

作用

主要是为了用于移动端屏幕适配。

一般情况下,移动端的UI设计稿有640px和750px两种宽度,想要适配多种情况下的屏幕,就必须使用相对单位,而rem就是最好的选择。

媒体查询

  • 先使用媒体查询,判断屏幕大小,再将屏幕宽度均分
  • 640px宽的UI稿,可以分为40份,则1rem = 640px / 40 = 16px
  • 750px宽的UI稿,可以分为40份,则1rem = 750px / 40 = 18.75px

特殊情况下最小屏幕为320px, 可以分为40份,则1rem = 320px / 40 = 8px

function remSize() {let screenWidth = window.document.documentElement.clientWidth || window.innerWidth;if (screenWidth > 750) {screenWidth = 750;}if (screenWidth < 320) {screenWidth = 320}console.log('screenWidth:', screenWidth);document.documentElement.style.fontSize = (screenWidth / 40) + 'px';document.querySelector('body').style.fontSize = 0.3 + 'rem'
}
remSize()
window.onresize = function () {remSize()
}

flexible.js

适配方案采用rem布局,根据屏幕分辨率大小不同,调整根元素html的font-size,从而达到每个元素宽高自动变化,适配不同屏幕

// 安装依赖
npm install lib-flexible --save
// main.js中引入
import 'lib-flexible/flexible'

1.检查下html文件的head中,如果有 meta name="viewport"标签,需要将其注释掉。 2.html的font-size是根据屏幕宽度除以10计算出来的,所以我们需要设置页面的最大宽度是10rem

px2rem插件

// 安装依赖
npm i -D postcss-px2rem // 一般为0.3.0版本
// vue-ci3及更高版本中 vue.config.js
css: { loaderOptions: { postcss: { plugins: [ require('postcss-px2rem')({ remUnit: 37.5 }) ] } }
}

em

含义

em也是一种相对长度单位,但值是相对自身的字号大小。如果没有设置则参照父容器的字号大小或浏览器默认字号大小

自身元素的字号大小为10px时,某个子元素的宽度为1.6rem,即为 10 x 1.6= 16px

作用

由于em是相对于自身或父元素的字号大小,在多级嵌套的场景下很容易计算错误,所以其实并不是很推荐使用,更多的情况下还是推荐使用rem

px

含义

px表示像素,就是呈现在我们显示器上的一个个小点。也是我们在css中最常用的一种单位

每个像素点都是大小等同的,所以像素为计量单位被分在了绝对长度单位中。

rpx

含义

rpx是微信小程序独有的、解决屏幕自适应的尺寸单位。

作用

主要也是为了解决移动端的屏幕适配问题。

首先不论屏幕大小,将其屏幕宽度都认定为750rpx;再通过rpx相对长度单位设置元素和字体的大小;最终小程序在不同尺寸的屏幕下都可以自动适配

rpx与px的换算

换算有一个前提,或者说是在这个前提下rpx与px的换算是理想的。就是IPhone6为基础设计的UI稿。

IPhone6的宽度正好是375px,共750个物理像素。所以 375px = 750物理像素 = 750rpx。

同时UI以Iphone6为基础设计的UI稿正好是二倍图,即实际显示为40px,但设计图尺寸为80px,可于rpx进行无缝转换,绘制页面时直接写为80rpx即可

vh、vw

含义

将屏幕宽高各分为100份,100vh为屏幕高度,100vw为屏幕宽度。

作用

vh、vw都是可以作为相对单位给元素使用的,可以实现在浏览器视窗窗口的大小发生变化时而改变自身的大小

%

含义

%也是将屏幕分为100份,默认情况下只可以给盒子设置宽度,设置高度是无效的。

作用

百分比是继承于父级元素的。想要用%给盒子设置高度,就需要给父元素设置一个固定的高度,才能生效。

vh、vw、%的区别

  • vh、vw是相对于屏幕可视窗口确定的,%是相对于父级元素确定的。
  • vh、vw 设置宽高是有真实高度的,但%不是

rem、em、px、rpx、vw、vh、%等相关推荐

  1. rem,em,px,rpx等

    1.任意浏览器的默认字体高都是16px.谷歌浏览器显示的最小字体大小是12px. exp:突破谷歌浏览器显示12px限制. (1).<div>文本</div> 文本嵌套块标签, ...

  2. 关于将px转换为vw vh的解决方案

    什么是vw(Viewport Width)和vh(Viewport Height)? vw和vh是前端开发中的一个动态单位,是一个相对于网页视口的单位. 系统会将视口的宽度和高度分为100份,1vw占 ...

  3. css单位介绍em ex ch rem vw vh vm cm mm in pt pc px

    长度单位主要有以下几种em ex ch rem vw vh vm cm mm in pt pc px %,大概可以分为几种"绝对单位"和"相对单位"和" ...

  4. CSS中的常见单位(px,%,em,rem,vw,vh,vmax,vmin,calc)

    像素(px)&百分比(%) 像素(Pixel) 长度单位,相对于显示器屏幕分辨率而言,通常在不定义显示缩放比例的情况下,1px对应显示器屏幕上的一个像素点. 早年的pc端展示的页面基本都用这个 ...

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

    CSS中的px 和 % px (pixels) 是固定单位,也可以叫基本单位,代表像素,可以确保元素的大小不受屏幕分辨率的影响. % (percentage) 是相对单位,代表元素大小相对于其父元素或 ...

  6. 7、em/px/rem/vh/vw区别?

    简介 em/px/rem/vh/vw都属于css的单位,这些单位可以分为相对单位,绝对单位 px:绝对单位,网页按照精确像素来显示 em:相对单位,相对自身定义的font-size来计算,自身没有设置 ...

  7. px,em,rem,%,vmin,vmax,vh ,vw

    传统的项目开发中,我们只会用到px.%.em这几个单位,它可以适用于大部分的项目开发,并且拥有比较良好的兼容性.但是你知道吗?从css3开始,浏览器对逻辑单位的支持又提升到了另外一个境界,增加了rem ...

  8. 前端css单位小结:vh、vw、百分比、rem、px、计算属性calc

    写在前面: 本文作为本人学习总结之用,同时分享给大家~ 个人前端博客网站:zhangqiang.hk.cn 欢迎加入博主的前端学习qq交流群::706947563,专注前端开发,共同学习进步! 前端c ...

  9. vscode px转换rem插件 px to rem rpx vw (cssrem)

    vscode px转换rem插件px to rem & rpx & vw (cssrem) 这个插件非常好用,我给3星! 选中按Alt + Z可以px和rem转换

  10. 移动Web(rem less Vw/Vh/bootstra)

    移动端适配方案 flex + rem单位,做适配效果(比如淘宝和小米移动端) 当前市场最多 flex +viewport width/vh单位 做适配效果(比如 B站移动端 新兴 让flex做布局(盒 ...

最新文章

  1. MySQL的binlog数据如何查看
  2. java tm 安装在哪里,安装以及配置Java环境
  3. Android屏幕信息获取
  4. c 语言 指针 指向数组,C 指向数组的指针
  5. vc 查看硬盘盘符剩余空间
  6. 淘宝API调用 申请 获取session key
  7. CVPR 9999 Best Paper——《一种加辣椒的番茄炒蛋》
  8. 04.监控过程组-偏差分析
  9. linux redis 数据迁移,redis cluster 迁移数据
  10. mysql 数据库中根据当前系统时间,取前后几秒、几分钟、几小时、几天
  11. [Python3] 017 字典的内置方法
  12. 真格基金王强:判断一个项目好坏,我会做五个思考!
  13. 系统服务图形化安装卸载工具SRVINSTW汉化版
  14. cdr圆形渐变填充怎么设置_CDR渐变填充实例教程
  15. HTTP1.0、HTTP2.0、HTTP 3.0及HTTPS简要介绍
  16. word中生成带方块的对勾
  17. ECDSA VS Schnorr signature VS BLS signature
  18. 读《人生不设限》 有感
  19. Xilinx Zynq ZynqMP DNA
  20. Java基础之刨根问底第1集——JVM的结构

热门文章

  1. 传感器技术(徐科军 第四版)第三章:变电抗式传感器
  2. 智能车扫线——斑马线识别
  3. 过滤器(1)_什么是过滤器?
  4. Cookie在前端写还是后端?
  5. dwg文件怎么打开呢?dwg是啥呢?
  6. 解惑“可观测性”与“监控”的不同
  7. 运动目标检测--三种方法比较
  8. 拍手游戏Python
  9. 【大数据入门核心技术-HBase】(九)Hbase协处理器coprocessor
  10. 欧奈尔的杯柄形态理论(技术干货)