移动端h5适配方案:媒体查询、编写js、lib-flexible、vw、rem和vw单位换算

文章目录

  • 各种方案
    • 第二种:动态设置html的font-size
      • 媒体查询@media
      • js
    • 第三种:vw方案
  • rem、vw单位换算
    • 手动根据设计稿进行计算
    • less
    • vs code 插件

各种方案

1)百分比设置(X)【百分比很难统一,不推荐】
2)rem单位+动态html的font-size
3)vw单位
4)flex弹性布局

推荐的是第二种和第三种,更推荐第三种

第二种:动态设置html的font-size

我们都知道,rem是根据html节点的font-size进行换算的。1rem=[html的font-size]

媒体查询@media

    @media (min-width: 1500px) {:root {font-size: 1em;}.layout {height: 80%;}}

js

也可以引入ib-flexible.js库

/** @Description: 实时计算font-size* @Author: Conquer Byte* @ModifyAuthor: Dai* @Date: 2024-05-23 19:33:27* @LastEditTime:*///js动态变化html 的 font-sizevar htmlEl = document.documentElement; // 获取html的元素
var dpr = window.devicePixelRatio || 1; //获取像素比例// adjust body font size
function setBodyFontSize() {if (document.body) {document.body.style.fontSize = 12 * dpr + "px";} else {document.addEventListener("DOMContentLoaded", setBodyFontSize);}
}
setBodyFontSize();function setRem() {const width = htmlEl.clientWidth; //获取视口的宽度const htmlFontSize = width / 10; // 根据宽度计算html的font-size的大小htmlEl.style.fontSize = htmlFontSize + "px"; // 将font-size设置到html上
}setRem(); //第一次执行window.addEventListener("resize", setRem); // 监听resize// 当一条历史会话被执行的时候触发
window.addEventListener("pageshow", (e) => {// 如果页面来自缓存if (e.persisted) {setRem();}
});

第三种:vw方案

class{/*1%的视口宽度*/font-size: 1vw; /*10%的视口宽度*/width: 10vw;
}

rem、vw单位换算

手动根据设计稿进行计算

设计稿宽度:750px
html[fon-size]:75px
设计稿盒子宽度100px
代码宽度:
rem:100/75 rem
vw:100/750 vw

less

@clientWith: 750
@pxToRem(@px){result:@px / @clientWidth / 10 + 'px'
}

vs code 插件

px to rem & rpx & vw (cssrem)
在这里插入图片描述
设置根节点font-size、设计稿宽度和启用vw
在这里插入图片描述

在这里插入图片描述

插件根据设定的设计稿的宽度(默认750px,html:font-size为75px)进行计算。10px = 10/750*100vw = 10/75rem。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/839951.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安卓高级控件(下拉框、列表类视图、翻页类视图、碎片Fragment)

下拉框 此小节介绍下拉框的用法以及适配器的基本概念,结合对下拉框Spinner的使用说明分别阐述数组适配器ArrayAdapter、简单适配器SimpleAdapter的具体用法与展示效果。 下拉框控件Spinner Spinner是下拉框控件,它用于从一串列表中选择某项&#xff0…

Java与GO语言对比分析

你是不是总听到go与java种种对比,其中在高并发的服务器端应用场景会有人推荐你使用go而不是 java。 那我们就从两者运行原理和基本并发设计来对比分析,看看到底怎么回事。 运行原理对比 java java 中 jdk 已经帮我们屏蔽操作系统区别。 只要我们下载并…

Android中华为手机三态位置权限申请理解

博主前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住也分享一下给大家&#xff0c; &#x1f449;点击跳转到教程 前言&#xff1a; 使用的华为MATE 20,Android10的系统。 <!--精准定位权限&#xff0c;如&#xff1a;…

赶紧收藏!2024 年最常见 20道 Redis面试题(五)

上一篇地址&#xff1a;赶紧收藏&#xff01;2024 年最常见 20道 Redis面试题&#xff08;四&#xff09;-CSDN博客 九、Redis集群的主从复制模型是怎样的&#xff1f; Redis 集群的主从复制模型是一种数据冗余和高可用性策略&#xff0c;它允许数据在多个节点之间进行复制。…

41- 5 应急响应基本概念

一、应急响应基本概念 网络安全应急响应是指针对可能发生或已经发生的安全事件,进行监控、分析、协调、处理、保护资产安全的过程。其主要目的是让人们对网络安全有所认识和准备,以便在遭遇突发网络安全事件时能够有序应对并妥善处理。 当确实发生网络安全事件时,应急响应实…

js积累四 (读json文件)

function ReadRadioJson() {var url "../radio.json" //json文件url&#xff0c;本地的就写本地的位置&#xff0c;如果是服务器的就写服务器的路径var request new XMLHttpRequest();request.open("get", url, false); //设置请求方法与路径request.sen…

doxygen 1.11.0 使用详解(十一)——图形和图表

目录 Doxygen has built-in support to generate inheritance diagrams for C classes. Doxygen can use the “dot” tool from graphviz to generate more advanced diagrams and graphs. Graphviz is an open-source, cross-platform graph drawing toolkit and can be fou…

2024电工杯数学建模B 题:大学生平衡膳食食谱的优化设计

背景&#xff1a; 大学时代是学知识长身体的重要阶段&#xff0c; 同时也是良好饮食习惯形成的重要时期。这一特 定年龄段的年轻人&#xff0c; 不仅身体发育需要有充足的能量和各种营养素&#xff0c; 而且繁重的脑力劳动和 较大量的体育锻炼也需要消耗大量的能源物质。 大学生…

“闻起来有股答辩的味道”,答辩到底是什么味?

“闻起来有股答辩的味道”&#xff0c;答辩到底是什么味&#xff1f; 一位名叫“小鸡全家桶”的作者虚构了这样一个学校故事&#xff0c;故事说&#xff0c;由于学生的考试试卷印刷得特别模糊&#xff0c;导致里面的插图根本看不清&#xff0c;学生感到懵逼&#xff0c;监考老…

红队攻防渗透技术实战流程:云安全之云原生安全:云堡垒机

红队云攻防实战 1. 云原生安全-防护设备-云堡垒机1. 云原生安全-防护设备-云堡垒机 堡垒机攻防:(意义) https://mp.weixin.qq.com/s/-WcgyVoTCZuPamVtI5MrJw 堡垒机漏洞:(已知)https://avd.aliyun.com/search?q=%E5%A0%A1%E5%9E%92%E6%9C%BA 云堡垒机:(云攻防) http…

【区块链】智能合约漏洞测试

打开Ganache vscode打开智能合约漏洞工程 合约内容 pragma solidity >0.8.3;contract EtherStore {mapping(address > uint) public balances;function deposit() public payable {balances[msg.sender] msg.value;emit Balance(balances[msg.sender]);}function with…

深度学习之基于Tensorflow卷积神经网络(CNN)实现猫狗识别

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景与意义 在人工智能和深度学习的热潮中&#xff0c;图像识别是一个备受关注的领域。猫狗识别作为图像识…

权限维持--windows

隐藏文件 ①文件属性隐藏 如何排查&#xff1a; 使用dir命令无法看到有特殊属性的文件需使用/a ②真隐藏 相当于给原本的文件增加系统文件属性、存档文件属性、只读文集属性、隐藏文件属性 如何排查&#xff1a; 取消受保护的操作系统文件 ③利用ADS隐藏 使用数据流 echo &…

Docker(四) 文件和网络

1 Dockerfile 1.1 什么是Dockerfile Dockerfile是一个文本文件&#xff0c;包含一系列命令&#xff0c;这些命令用于在 Docker 镜像中自动执行操作。Dockerfile 定义了如何构建 Docker 镜像的步骤和所需的操作。 Dockerfile 中包含的命令可以设置和定制容器的环境&#xff0c;…

前端javascript 中 JSON.parse() 的作用

1.解析 JSON 字符串 JSON.parse({"name": "tom"}) // {"name": "tom"} JSON.parse([1,2,3]) // [1,2,3] 2.转换成数字 JSON.parse(12) // 12 3.转换成布尔值 JSON.parse(false) // false

QT--气泡框的实现

提示&#xff1a;本文为学习记录&#xff0c;若有疑问&#xff0c;请联系作者&#xff0c;谦虚受教。 文章目录 前言一、h文件二、CPP文件总结 前言 实现自定义的气泡框&#xff0c;类似QToolTip的使用 一、h文件 #ifndef CUSTOMTOOLTIP_H #define CUSTOMTOOLTIP_H#include &…

求第 N 个泰波那契数 | 动态规划

1.第 N 个泰波那契数 题目连接&#xff1a;1137. 第 N 个泰波那契数 泰波那契序列 Tn 定义如下&#xff1a; T0 0, T1 1, T2 1, 且在 n > 0 的条件下 Tn3 Tn Tn1 Tn2给你整数 n&#xff0c;请返回第 n 个泰波那契数 Tn 的值。 2.什么是动态规划 在解决这道问题之前…

数据架构规划与设计

1.数据库设计与类的设计融合 对类和类之间关系的正确识别是数据模型的关键所在。要想将建模过程缩减为一个简单的、逐步进行的过程是不太可能的。从本质上讲&#xff0c;建模是一项艺术。对一个给定的复杂情况而言&#xff0c;不存在唯一正确的数据模型&#xff0c;然而却存在…

2024年5月份最新独角数卡使用USDT详细小白教程

直观配套视频教程 2024年5月份最新独角数卡安装及USDT使用详细小白教程 1、创建服务器 Centos或者Ubuntu2、宝塔面板开心版安装寶塔 Linux 面版 8.0.5 開心版 - 2024年1月12日 - 开心专区 - 异次元 - Powered by Discuz!Centos安装命令&#xff08;默认安装是 8.0.1 直接在线升…

张大哥笔记:改变自己,才是改变一切的开始

人往往有一种惰性&#xff0c;总喜欢把希望寄托于别人&#xff01;比如会将注意力投向外部因素如环境、他人或命运从而期望为我们的生活带来突破和转机。但现实往往是残酷的&#xff0c;不会发生任何改变的&#xff01;真正的改变来自于自己&#xff0c;自我革新才是改变整个局…