移动端rem布局基本介绍及原理

article/2025/9/16 22:29:30

rem布局

em和rem的认识

在布局中,除了px之外,还有两个常见的单位,em和rem

em: 相对于当前元素的字体大小→ 1em = 当前标签的font-size

rem: 相对于根元素(html)的字体大小→ 1rem = html标签的font-size

浏览器默认的font-size的大小为16px

rem布局的效果:

  • 屏幕越大,标签就越大
  • 屏幕越小,标签就越小

rem布局的原理:

通过媒体查询的方式动态改变html标签的font-size的大小

  • 当屏幕越大,让html标签的font-size变大即可
  • 当屏幕越小,让html标签的font-size变小即可

为什么要用rem布局

现状:

由于市面上手机种类繁多,导致移动端的屏幕种类非常的混乱,比如有常见的320px 360px 375px 384px 480px 640px等。在开发中,UI一般只会提供 750px 或者是 640px 的设计稿,这就要求我们通过一张设计稿能够适配所有的屏幕。常见的方案有以下:

  • 流式布局: 点击了解流式布局

    但是目前使用流式布局的公司非常多,比如 亚马逊 、京东 、携程

    • 优点:各种屏幕都适配,都能看
    • 缺点:只有当屏幕大小和设计图相同时才能完美还原设计图,其他屏幕下都会拉伸
  • 响应式布局:点击了解响应式布局及媒体查询原理

    一般多用于简单的网页和从零开始的站点。

    • 优点:一套页面可以适配多个客户端。
    • 缺点:对于复杂的网页来说工作量太大,维护性太难。
  • rem布局:

    与less配合使用更加方便,目前使用rem布局的有:淘宝 、 苏宁

    • 优点:rem布局盒子适配所有的屏幕,并且可以在多个屏幕大小中完美还原设计图(等比例缩放)

rem布局适配多个屏幕

rem布局适配的原理说白了,就是根据屏幕的大小,动态的改变html标签的font-size的大小,此时就可以配合媒体查询做到不同屏幕的适配

注意点:

因为要求页面是等比例缩放的,所以:

设计图的屏幕宽度/给设计图设置的font-size = 你需要适配的屏幕宽度/你需要适配屏幕的fong-size

保证屏幕宽度与html标签font-size的比例相同,就可以轻松适配多个屏幕

rem适配比例关系

以苏宁为例:

适配的步骤:

  1. 先适配设计图的屏幕大小(比如:750px),并且根据设计图屏幕大小定义一个html标签的font-size的大小(比如:50px),此时屏幕大小与font-size的比例为15
  2. 因为是等比例缩放的,所以每一个适配的屏幕大小与font-size的比例都是相同的,所以各个屏幕大小除以比例就能得出font-size的大小
/* 苏宁官网中适配了:750 720 540 480 424 414 400 384 375 360 320 */ /* 第一步先适配750的屏幕 */ 
/* 定义设计图屏幕大小html的font-size值为50px(可以随意定,我这里就以50为例) */ 
/* 比例为15(750/50) */ /* 设置媒体查询样式生效的最小宽为750px——》只有当屏幕宽度大于等于750px时,样式才会生效!!*/@media screen and (min-width:750px) {html {font-size: 50px;}}/* 用less函数封装,封装后上面一步就不需要了 */
.adapter(@width) {@media screen and (min-width:@width) {html {/* round(数值):让这个数值四舍五入 *//* round(数值,保留几位小数) */font-size: round(@width/15,2);}}
}.adapter(320px);
.adapter(360px);
.adapter(375px);
.adapter(384px);
.adapter(400px);
.adapter(414px);
.adapter(424px);
.adapter(480px);
.adapter(540px);
.adapter(720px);
.adapter(750px);
/* 这样就适配完成了 */ 

在上面的的适配中用到了less函数封装媒体查询戳这里了解less函数的使用

在rem布局中,需要把px的单位转换成rem,每一次都需要手动写式子把px转换成rem比较麻烦,在这里给大家推荐一款插件

px2rem插件的使用

  1. 安装插件 px2rem
    在这里插入图片描述

  2. 每次写数字px之后,会有提示转换成rem,按下键回车即可

  3. 插件中默认html的font-size的大小为16px,所以默认是除以16的如果需要更改,需要进行配置(如:设计如是750,html标签的font-size的大小为50px,此时应该除以50)

    在设置中搜索px2rem,然后直接修改设置即可,注意设置完了之后需要重启才能生效!!

在这里插入图片描述


http://chatgpt.dhexx.cn/article/DsnpG5q3.shtml

相关文章

JavaScript-rem布局

JavaScript-rem布局 一、什么是Rem rem和em很容易混淆,其实两个都是css的单位,并且也都是相对单位,现有的em,css3才引入的rem,在介绍rem之前,我们先来了解下em: em作为font-size的单位时,其代…

Rem布局的原理解析

Rem布局的原理解析 tobAlier关注 22017.10.25 11:27:32字数 2,630阅读 12,367 什么是Rem rem和em很容易混淆,其实两个都是css的单位,并且也都是相对单位,现有的em,css3才引入的rem,在介绍rem之前,我们先…

html5如何利用rem实现自适应布局,使用Rem布局实现自适应

之前写过一篇移动端适配的文章,很长,内容太多,看得容易凌乱,重新写个通熟易懂版的。 为什么要自适应? 比如,对于一个移动端页面,设计师给的视觉稿画布宽 750,视觉稿中的一个黄色区块的尺寸是 702 x 300,并在画板中居中。我们希望在任何一个设备中的呈现比例都与视觉稿…

Rem布局

Rem布局?什么东西???Rem布局又称等比缩放布局,是移动端布局中常用的一种布局方式。Rem布局可以通过两种方式实现,一种通过JavaScript实现;还有一种通过vw实现。在这里小编主要讲述第二种方式。 下面小编先简单的说一下rem布局的优缺点: 优点:在不同的设备下看起来比较…

(精中求精) rem适配布局

1.适配导读: 什么是适配布局?与flex或者流式布局又有什么区别? 所谓的适配布局,是让页面盒子的高度,宽度,内外边距,边框大小,文字的大小,定位的元素位置等能够根据屏幕…

移动端布局(三) rem布局及原理

什么是rem 首先来了解一下什么是em: 作为font-size的单位时,其代表父元素的字体大小,em作为其他属性单位时,代表自身字体大小。 s1、s2、s5、s6的font-size和line-height分别是多少px? <div class"p1"><div class"s1">1</div><di…

安装Mysql

设置密码 检测安装是否成功 切换到安装目录的bin下C:\Program Files\MySQL\MySQL Server 8.0\bin&#xff0c;按住shift&#xff0c;单击鼠标右键&#xff0c;点选在此处代开命令窗口 在命令行中输入mysql -u root -p,之后输入之前设定的密码如果出现如下图所示&#xff0c;…

ODBC + WIN32 API 访问MYSQL 数据库实现简单QQ用户注册和登录

//在IT行业&#xff0c;不懂数据库是不行的&#xff0c;我自己在学校里还没有学过数据库有关的知识&#xff0c;不过由于前些日子写项目的要求&#xff0c;不得不去琢磨&#xff0c;虽然有很多数据库类别&#xff0c;包括微软的 SQL server &#xff0c;access,ORACLE公司的ORA…

QQ交谈、QQ在线状态代码生成…

原文地址&#xff1a;QQ交谈、QQ在线状态代码生成&#xff0c;非QQ商家可以正常生成 作者&#xff1a;HHeOnline 非QQ商家用户&#xff0c;直接在QQ互联可以生成QQ在线状态&#xff0c;也就是QQ交谈的代码。 直接放到对应的代码里就可以正常使用了。 QQ代码生成地址&#xff1a…

qq群关系数据库 mysql_QQ群关系数据库24.52G mdf源文件下载 附上使用教程

HQY 腾讯 7000W QQ群关系数据库泄漏共24.52G。 QQ24.5gb腾讯QQ群关系数据库,不包含密码。只包含个人名字(群备注名字等信息)。 如果想在线查询更多qq群数据信息可以查看: 一、下载完24.5gQQ数据库后,解压文件 下载后不要把文件改名,打开7z,点击其中一个文件,选择合并文件…

MySQL 数据类型

数值类型 MySQL支持所有标准SQL数值数据类型。 这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL和NUMERIC)&#xff0c;以及近似数值数据类型(FLOAT、REAL和DOUBLE PRECISION)。 关键字INT是INTEGER的同义词&#xff0c;关键字DEC是DECIMAL的同义词。 BIT数据类型保存…

mysql数据库的基本管理

一、数据库的介绍 1.数据库就是个高级的表格软件 2.常见数据库 Mysql Oracle mongodb db2 sqlite sqlserver .......3.Mysql (SUN -----> Oracle)4.mariadb 是数据库服务器 数据库中的常用名词 字段 :表格中的表头 表 :表格 库 :存放表格的目录…

mysql数据库

文章目录 一、Windows1.1 修改mysql的data文件夹存放位置&#xff1a;1.2 修改mysql密码1.3 设置Mysql允许其他电脑访问1.4 重新手动安装 二、mysql 时间查询三.解锁四.Linux4.1 下载安装4.2 配置4.3 卸载 三、Bug 一、Windows 1.1 修改mysql的data文件夹存放位置&#xff1a;…

MySQL使用与练习01

MySQL数据库概述 用来存储数据和管理数据,最终形成类似于表格的样子,有行有列(字段) 分类: 关系型数据库 和 非关系型数据库 关系型数据库&#xff0c; Oracle、MySQL、SQLServer、Access非关系型数据库&#xff0c; MongoDB、Redis、Solr、ElasticSearch、Hive、HBase 数据…

MySQL项目3总结创建与维护

登录MySQL mysql -u root -p密码 查看所有数据库 show databases; 创建数据库 CREATE DATABASE 数据库名; 修改数据库默认字符集 alter database 数据库名default character set 新字符集; 查看hao数据库创建信息&#xff1b; show create database 表名\g; 删除数据库 …

关于mysql的表情包_mysql表情包 - mysql微信表情包 - mysqlQQ表情包 - 发表情 fabiaoqing.com...

MySQ从删库到跑路_删库_MySQ表情 TFBOYS 三人击掌 - TFBOYS 三人有着独特的击掌方式_tfboys_明星表情_tfboys_明星表情表情 走,带你试衣服去(UNIQLO)_uniqlo_衣服表情 内裤不试完,谁都别想走!(UNIQLO)_不试_uniqlo_内裤表情 qqloveddme_qqloveddme表情 QQLOVE DDME(qq爱)_qq…

二叉树的最大深度

题目 思路 二叉树大多用递归来实现&#xff0c;本题如果知道左子树的深度和右子树的深度&#xff0c;那么整个二叉树的深度就为max&#xff08;左子树&#xff0c;右子树&#xff09; 1&#xff1b;该方法也叫做深度优先搜索 代码 package hot_100;public class MaxDepth {…

c语言二叉树结点 深度,求二叉树的深度、总结点数和叶子结点数

二叉树的二叉链表的存储结构: typedef char TElemType; typedef struct BiTNode {TElemType data;//数据元素 BiTNode * lchild;//指向左孩子 BiTNode * rchild;//指向右孩子 }BiTNode,* BiTree; 一、二叉树的深度 如果二叉树为空,结点的深度为0; 如果二叉树只…

二叉树的深度和高度

二叉树的深度和高度的定义是不一样的&#xff0c;并且是相反的。深度是从上往下数的&#xff0c;高度是从下往上数的&#xff0c;即深度是从根节点到该节点的距离&#xff0c;高度是该节点到叶子节点的距离。当然树的高度和深度是相等的。 根节点的深度和高度为0&#xff0c;所…

求二叉树的深度

题目 写一个算法求一棵二叉树的深度&#xff0c;二叉树以二叉链表为存储结构 求二叉树深度的函数 //求二叉树深度 int getDepth(BTNode *T) {int LD,RD;//左右子树的深度if(TNULL){return 0;//设定空树的深度为0}else{//采用后根遍历LDgetDepth(T->lchild);//求左子树的深度…