【web】强大的屏幕适配布局rem响应式 实现一套web代码多端自适应适配

基于 tailwindcss 的多端自适应布局方案 基于 tailwindcss 的多端自适应布局方案,可以让我们在同一套代码上去针对不同的屏幕尺寸去做样式适配,可以大大减少我们的开发成本。但是,这要求前端开发和设计师能够协同工作,设计师需要提供不同断点下的布局设计,前端开发需要根据设计稿去实现不同断点下的布局。这样,我们才能实现一套代码,多端自适应的布局方案。 阅读详情

强大的屏幕适配布局rem响应式 实现一套web代码多端自适应适配

实现强大的屏幕适配布局

   流式的布局、固定的宽度,还有响应式来做,但是这些方案都不是最佳的解决方法。->->rem

rem是什么?

    rem(font size of the root element)是指相对于根元素的字体大小的单位。简单的说它就是一个相对单位。看到rem大家一定会想起em单位,em(font size of the element)是指相对于父元素的字体大小的单位。它们之间其实很相似,只不过一个计算的规则是依赖根元素一个是依赖父元素计算。


--动态计算方案: 通过网页的缩放动态更改网页DOM的fontSize值
// 动态计算屏幕的宽度,从而得到网页的fontSize大小
(function (doc, win) {
    var docEl = doc.documentElement,
        resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',
        recalc = function () {
            var clientWidth = docEl.clientWidth;
            if (!clientWidth) return;
            docEl.style.fontSize = 10 * (clientWidth / 320) + 'px';
        };

    if (!doc.addEventListener) return;
    win.addEventListener(resizeEvt, recalc, false);
    doc.addEventListener('DOMContentLoaded', recalc, false);
})(document, window);

--原理:根据网页的尺寸更改,计算出相对的字体大小

那么问题来了,假如用户用PC端打开了移动端的网页,那字体岂不是牛逼牛逼大咧@@。
换句话说,不限最大的宽度,那屏幕宽1920px时,字体不是很大了? 所以修改bug:
// 动态计算屏幕的宽度,从而得到网页的fontSize大小
(function (doc, win) {
    var docEl = doc.documentElement,
        resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',
        recalc = function () {
            var clientWidth = docEl.clientWidth;
            if (!clientWidth) return;
            if(clientWidth>750) clientWidth=750;//这里限制最大的宽度尺寸,从而实现PC端的两边留白等
            docEl.style.fontSize = 10 * (clientWidth / 320) + 'px';
        };

    if (!doc.addEventListener) return;
    win.addEventListener(resizeEvt, recalc, false);
    doc.addEventListener('DOMContentLoaded', recalc, false);
})(document, window);




运行效果:运行到 ipad下的动态更改



执行前提:

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">   

meta原理:
1.如果支持Google Chrome Frame:GCF,则使用GCF渲染;
如果系统安装ie8或以上版本,则使用最高版本ie渲染;
否则,这个设定可以忽略  至于你讲的新版chrome,本身就是在Chrome中,当然网页以Chrome的方式来渲染。
2.width - viewport的宽度 height - viewport的高度
initial-scale - 初始的缩放比例
minimum-scale - 允许用户缩放到的最小比例
maximum-scale - 允许用户缩放到的最大比例
user-scalable - 用户是否可以手动缩放

接下来就是调用了
    那么问题来了,如何计算出网页中元素的rem值?
我们知道  rem x fontsize = 网页中的实际像素;
那么我们可以知道 rem 等于 网页中的像素 / fontsize.
所以,假如你的层div的宽度100px,那么他的rem 等于多少?
  
UI中常见的以ios端的尺寸进行,那么我们可以参考ios端的屏幕尺寸和分辨率进行适配
>>尺寸及分辨率<<    
iPhone界面尺寸:320*480、640*960、640*1136(单位都是像素:px)
当然在设计当中我们并不需要每一种尺寸都做一套图,建议取用640*960的尺寸设计。
所以当我们方案中的clientWidth = 640
fontSize自然等于20,于是我们可以得到
100px /20 = 5.0 rem 
所以我们可以这么写
div{
width:5.0rem;
}
从而将px完全代替为rem

rem的兼容性:

 

 可以看出兼容性还是ok!

于是就有了淘宝的改版了! 手机淘宝web页面就是rem


笔者被有人私信问到,假如单纯用css进行rem控制,那么如何做到?
那么等先统计有哪些主流的屏幕设备 然后通过媒体元素进行适配: (不过建议用js动态控制)
譬如
html {
    font-size : 20px;
}
@media only screen and (min-width: 401px){
    html {
        font-size: 25px !important;
    }
}
@media only screen and (min-width: 428px){
    html {
        font-size: 26.75px !important;
    }
}
@media only screen and (min-width: 481px){
    html {
        font-size: 30px !important;
    }
}
@media only screen and (min-width: 569px){
    html {
        font-size: 35px !important;
    }
}
@media only screen and (min-width: 641px){
    html {
        font-size: 40px !important;
    }
}
【数学基础】基于欧拉角表达的旋转顺序 欧拉角旋转顺序 阅读详情

相关推荐

人工智能——框架表示法

1975年美国明斯基在“A framework for representing knowledge”提出了框架理论。 1. 框架及框架的一般表示形式 框架:一种描述对象属性的数据结构。 框架的一般表示形式 <框架名> 槽名1: 侧面名1:值1,值2…,值p1 侧面名2:值1,值2…,值p2 侧面名2:值1,值2…,值pm1 槽名2: 侧面名...

weixin_33759269的博客 1642

强大的屏幕适配布局rem响应式 实现一套web代码多端自适应适配 (实用、赞)

原文出处:https://blog.youkuaiyun.com/qq_14997169/article/details/53914201 实现强大的屏幕适配布局 流式的布局、固定的宽度,还有响应式来做,但是这些方案都不是最佳的解决方法。-&gt;-&gt;rem rem是什么?     rem(font size of the root element)是指相对于根元素(html)的字体大小的单位。...

chelen_jak的专栏 3281

手把手教你用内核远程call实现64位进程注入(附完整ShellCode示例)

本文深入探讨了在Windows 64位环境下,通过内核态直接操作线程TrapFrame结构实现进程注入的高级技术。文章提供了从驱动框架设计、用户态-内核态通信,到定位修改TrapFrame、编写Shellcode及执行环境恢复的完整实战指南,并附有详细的代码示例,为安全研究人员和开发者提供了绕过用户态检测、实现底层远程代码执行的新思路。

weixin_28396629的博客 344

Web多端适应原理与方案详解

1.概念 1.1.屏幕指标 物理上,一个屏幕是有尺寸、像素分辨率和密度指标的。如上图所示。其中显示的1920*1080是水平像素数*垂直像素数,ppi即是每英寸像素数。 1.2.CSS像素 px是CSS像素的基本单位,不同于硬件上的物理像素,CSS像素是逻辑像素。在谈论CSS像素时一定要清楚它的上下文: 标准的屏幕像素密度下,1个css像素对应一个物理像素。 对于高屏幕像素密度,就会存在1个css像素对应多个物理像素的情况。因此,将物理像素/css像素的比值称为设备像素比(dpr)。...

betty_grant的博客 2008

中兴问天 BE7200MAX SFP 光口用华为猫棒替代光猫完整配置教程

PPPoE 账号密码:若原光猫为 Route 模式,在宽带设置页可见用户名,密码需按 F12 打开浏览器开发者模式,点击密码输入框,查看代码中 “value=” 后的内容即为明文密码。若仍失败,核对 PON 类型是否与运营商网络匹配。PON 认证信息:LOID(逻辑 ID,部分地区含密码)、设备 SN 码(标签或设备信息页)、PON 类型(GPON/EPON,运营商网络类型)。电脑保持与路由器连接,访问路由器管理地址(默认通常为 192.168.5.1,可参考路由器说明书),登录后台。

Gulper_Eel的博客 3331

Unity 代码混淆<混淆插件(Obfuscator Pro 3.9.4)>

Unity 代码混淆<混淆插件(Obfuscator Pro 3.9.4)> 插件导入项目 导入后打开OPS/Obfuscator/Obfuscator Pro Settings 打开后可以看到界面如下 可以在上面界面中选择你需要混淆的类,方法,字段,属性,事件,参数。需要混淆的程序集的选择。如果有些程序集混淆后会有问题也可以添加到白名单里不被混淆 根据自己需求取选择 这个界面是是否添加添加随机代码的 如果使用了上面的插件可以使用 插件下载网址:https://download.cs

Xing_Cheng_Yun的博客 5099

移动端适配以及多屏幕自适应方案

本文主要记录适配移动端以及多屏幕的解决办法,还有postcss转换插件的编写。

smz的博客 2269

[FreeRTOS+STM32CubeMX] 03 USART串口调试-基于中断实现接收和发送数据

我们接着上一小节,上一节讲到,接收上位机传来的数据时,需要事先知道传来的数据的字节数,这一操作实在有些反人类,那么如何解决这个问题,上位机输入多少,我们就接收多少数据呢? 接下来我将把USART引入中断,在接收数据的回调函数中引入二值信号量、消息队列,来让我的接收数据能够存储在队列中,并一个一个的在任务中输出出来,并最终在上位机回显。

RichieHuang的博客 2649

rem自适应布局

原文链接:http://caibaojian.com/web-app-rem.html 摘要:rem是相对于根元素&lt;html&gt;,这样就意味着,我们只需要在根元素确定一个px字号,则可以来算出元素的宽高。本文讲的是如何使用rem实现自适应。 rem这是个低调的css单位,近一两年开始崭露头角,有许多同学对rem的评价不一,有的在尝试使用,有的在使用过程中遇到坑就弃用了。但是我对rem...

蜗牛不会跑 1万+

LT9211 单路mipi转双路mipi芯片,方案成熟,提供技术支持

LT9211 单路mipi转双路mipi芯片

TEL15012949045的博客 5014

闲鱼客户端三重动态签名机制解析:x-sign、x-mini-wua与x-umt

在移动客户端安全通信中,设备级动态签名已成为主流App防范自动化攻击的核心手段。其原理是将设备指纹、运行时行为与可信硬件标识深度融合,生成不可复用、不可跨端、不可静态伪造的请求凭证。这类机制超越传统Token或Session鉴权,具备强上下文绑定性与实时熵值校验能力,广泛应用于电商、社交及开放平台等高风险接口场景。技术价值体现在有效识别模拟器、无头浏览器与集群化爬虫,同时保障多端一致性与合规数据对接。本文聚焦闲鱼客户端实际落地的x-sign(带设备上下文的混合签名)、x-mini-wua(小程序行为水印)与

weixin_35732273的博客 495

rem是如何实现自适应布局的?

rem是如何实现自适应布局的? 摘要:rem是相对于根元素<html>,这样就意味着,我们只需要在根元素确定一个px字号,则可以来算出元素的宽高。本文讲的是如何使用rem实现自适应。 rem这是个低调的css单位,近一两年开始崭露头角,有许多同学对rem的评价不一,有的在尝试使用,有的在使用过程中遇到坑就弃用了。但是我对rem综合评价是用来做web app它绝对是最合适的人选之一。 rem是什么? rem(font size of the root&nb

w710537643的博客 2949

【重要内容】敬告读者

由于优快云近期将要搞事情,此专栏建议已购买的用户将内容保存到本地。尚未购买的用户请待9月1日后再决定是否需要购买。如此规则上线,本人将会关闭此专栏。并寻找其他渠道进行发布。

魔落的博客 910

h5 rem是如何实现自适应布局的?

摘要:rem是相对于根元素,这样就意味着,我们只需要在根元素确定一个px字号,则可以来算出元素的宽高。本文讲的是如何使用rem实现自适应。 rem这是个低调的css单位,近一两年开始崭露头角,有许多同学对rem的评价不一,有的在尝试使用,有的在使用过程中遇到坑就弃用了。但是我对rem综合评价是用来做web app它绝对是最合适的人选之一。 rem是什么? rem(font size of the root element)是指相对于根元素的字体大小的单位。简单的说它就是一个相对单位。看到rem大家一定会想起

weixin_44117767的博客 1510

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

webapp适配 rem实现

转自:http://caibaojian.com/web-app-rem.html (推荐两篇:http://mux.alimama.com/posts/1423             http://www.jianshu.com/p/eb05c775d3c6) 文章目录 rem是什么? 为什么web app要使用rem? 1、实现强大的屏幕适配布局: 2.固

flicking20105的博客 2064

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

WebApp - Rem 是如何实现自适应布局的?

前言 rem是相对于根元素&lt;html&gt;,这样就意味着,我们只需要在根元素确定一个px字号,则可以来算出元素的宽高。本文讲的是如何使用rem实现自适应。· rem这是个低调的css单位,近一两年开始崭露头角,有许多同学对rem的评价不一,有的在尝试使用,有的在使用过程中遇到坑就弃用了。但是我对rem综合评价是用来做webapp它绝对是最合适的人选之一。 rem是什么? r......

804

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

rem是如何实现自适应布局的

摘要:rem是相对于根元素&lt;html&gt;,这样就意味着,我们只需要在根元素确定一个px字号,则可以来算出元素的宽高。本文讲的是如何使用rem实现自适应。rem这是个低调的css单位,近一两年开始崭露头角,有许多同学对rem的评价不一,有的在尝试使用,有的在使用过程中遇到坑就弃用了。但是我对rem综合评价是用来做web app它绝对是最合适的人选之一。rem是什么rem(font size...

前端小贤 4857

屏幕适配

rem是什么? rem(fontsizeoftherootelement)是指相对于根元素的字体大小的单位。简单的说它就是一个相对单位。看到rem大家一定会想起em单位,em(font...

weixin_39037804的博客 284

css rem em的用法

css3 rem的用法 文章目录css3 rem的用法概念为什么web app要使用rem?1、实现强大的屏幕适配布局:2.固定宽度做法3.响应式做法4.设置viewport进行缩放 概念 rem是什么? rem(font size of the root element)是指相对于根元素的字体大小的单位。简单的说它就是一个相对单位。看到rem大家一定会想起em单位,em(font size of...

Brave Soul Blog 988

移动WEB开发之rem布局

文章目录一、rem基础二、媒体查询1.概念2.语法规范三、less 基础1.less的使用2.less的嵌套3.less的运算四、rem适配方案总结 # 每篇一言 为了实现强大的屏幕适配布局,在移动端和pc端自由切换。我们今天来学习rem布局相关的知识。 一、rem基础 1.rem (root em)是一个相对单位,类似于em,em是父元素字体大小。 2.不同的是rem的基准是相对于html元素的字体大小。 3.rem的优势:父元素文字大小可能不一致, 但是整个页面只有一个html,可以很好来控制整个页

这个世界上有各种各样的人. 378

如何实现自适应布局的?

最近为了能够做出自适应的页面找了很多资料,大致较为有用的两类 1.根据屏幕大小不同引入不同的css样式文件 "css/css-pc.css" rel="stylesheet" type="text/css" media="screen and (min-width: 1000px)"> 2.使用rem单位实现自适应布局 转载自:http://caibaojian.com/web-app

李水灵的博客 1万+

rem适配和Flex

无

weixin_50351355的博客 277
上一篇: Ionic2 slides的使用
下一篇: Vue学习第一天 Vue2简单入门
IT有钱人
博客等级 码龄13年 269粉丝 68原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值