关于rem移动端适配

news/2024/7/19 15:35:12 标签: 移动端适配, rem, flexible, 媒体查询, js

rem_0">关于rem适配

文章目录

      • 关于rem适配
      • 测试了以下方式
      • 方式一: 使用 JS 计算两种(方便)
          • A
          • B
      • 方式二: 使用 flexible.js
          • Demo图
      • 方式三: 设置根字号 + 媒体查询
          • 初始化
          • 使用

  • 适配对于我,比较头痛,发现自己在项目中用的那套方式,不方便计算且有点不精准。(也许没有正确使用), 大神朋友推荐了其它方式, 一起来测试吧。。。

测试了以下方式

  • 方式一: 使用 JS 计算(个人使用最多)
  • 方式二: 使用 flexible.js
  • 方式三: 设置根字号 + 媒体查询

方式一: 使用 JS 计算两种(方便)

A
<script>
	//window.onload = function () { //加onload,会出现加载页面集体缩放问题
	    window.onresize = function () {
	        getRem(750, 100)
	    }
	
	    function getRem(pwidth, prem) {
	        var html = document.getElementsByTagName("html")[0];
	        var oWidth = document.body.clientWidth || document.documentElement.clientWidth;
	        console.log(oWidth)
	        html.style.fontSize = oWidth / pwidth * prem + "px";
	        console.log(html.style.fontSize = oWidth / pwidth * prem + "px")
	    }
	    /*720代表设计师给的设计稿的宽度,你的设计稿是多少,就写多少;100代表换算比例,这里写100是
	为了以后好算,比如,你测量的一个宽度是100px,就可以写为1rem,以及1px=0.01rem等等*/
	    getRem(750, 100)
	//}
</script>
B
(function(d, w) {
    const doc = d.documentElement;
    function rem() {
      const width = Math.min(doc.getBoundingClientRect().width, 768);
      doc.style.fontSize = width / 7.5 + 'px';
    }
    rem();
    w.addEventListener('resize', rem);
 })(document, window);

flexiblejs_51">方式二: 使用 flexible.js

  • 下载flexible.js
  • 根据设计稿, 定义变量 rem
  • 使用: 元素值 / 定义变量
@r: 75rem;

 // 测量值 / 设置rem变量
.wrap {
	height: 100 / @r;
}
Demo图

这里写图片描述

方式三: 设置根字号 + 媒体查询

* 首先 设置 html 根据号 (自定义)
* 定义媒体查询: 根据不同尺寸计算字号
初始化
// 1. 这里以 12px 作为根字号
// 2. 360宽度的 13.5是如何计算的呢?360当前屏 / 320最小屏 * 12根字号】 以此类推

html {
    font-size: 12px;
}

@media only screen and (min-width: 320px) {
	 html{
	    font-size: 12px;
	  }
}

@media only screen and (min-width: 360px) {
    html {
        font-size: 13.5px !important;
    }
}

@media only screen and (min-width: 375px) {
    html {
        font-size: 14.0625px !important;
    }
}

@media only screen and (min-width: 400px) {
   html {
        font-size: 15px !important;
    }
}

@media only screen and (min-width: 412px) {
    html {
        font-size: 15.45px !important;
    }
}

@media only screen and (min-width: 414px) {
    html {
        font-size: 15.525px !important;
    }
}

@media only screen and (min-width: 640px) {
   html {
        font-size: 24px !important;
    }
}
使用
1.  ps: 某元素测量 高度为90px
2.  计算: 90 / 2(设计稿2倍图) / 12根字号
// 除 2 要根据设计稿, 
	【我这次项目中 750设计稿,计算不太准, 也许跟 除2倍图有关系】

| ps: 个人比较喜欢 第一种方式, 感谢朋友指导, 望请各位大神指教更好的方式。。。


http://www.niftyadmin.cn/n/1581800.html

相关文章

webpack初体验(一)

ps: 手动搭建webpack 文章目录参考&#xff1a;webpackwebpack 打包一个js文件webpack 打包两个具有依赖关系的js文件webpack 打包css文件webpack打包css文件webpack 的配置文件【webpack.config.js】webpack 插件的初体验webpack 打包时候可以接的参数使用 html-webpack-plugi…

webpack+手工搭建vue开发环境配置(二)

webpack开发环境配置步骤 文章目录webpack开发环境配置步骤1. 项目目录结构2. 在 App.vue、main.js、webpack.config.dev.js中写代码3. 使用 html-webpack-plugin 创建 & webpack-dev-server 打包运行&#xff0c;预览效果4. 项目中用到一些包5. 配置好的&#xff1a; webp…

webpack打包优化插件(三)

webpack打包优化 文章目录webpack打包优化在生产阶段&#xff0c;使用 webpack 打包webpack打包时候的优化之压缩bundle.js优化之压缩bundle.jswebpack打包之压缩html使用 clean-webpack-plugin 在每次打包之前&#xff0c;删除上一次的dist目录项目中用到的第三方样式&#xf…

webpack生产阶段配置(四)

webpack生产阶段配置文件 文章目录webpack生产阶段配置文件webpack.config.prod配置.babelrc配置package.json安装依赖上一篇文章介绍webpack打包优化直接拷贝此配置文件安装即可使用package.json安装依赖.babelrc配置安装方式&#xff1a; npm install 以下完整手工搭建vue生…

保留n位小数函数

保留n位小数 为了小数在计算时误差小&#xff0c; 使用以下方法过滤(参考大神)可以输出下&#xff1a; 0.1 0.2 ??? 封装 /*** parme1: 传入数字* parme2&#xff1a;保留几位数*/function toDecimal(x, n) {var pf parseFloat(x);if (isNaN(pf)) {return false;}n n …

加减乘除精确方法

加减乘除精确方法 能精确到: 0.1 0.2 0.3哦 转载大神&#xff0c; 请各位多多指教 /*** 加法* */function add (arg1, arg2) {var r1, r2, m, c;try {r1 arg1.toString().split(".")[1].length} catch (e) {r1 0}try {r2 arg2.toString().split("."…

vscode配置Typescript自动编译环境

vscode下配置Typescript编译环境 文章目录vscode下配置Typescript编译环境步骤tsconfig.json配置vscode 自动编译Typescript测试步骤 首先需要安装Nodejs node -v安装typescript模块 npm install -g typescript可查看typescript模块版本号 tsc -v在window r —> 输入cmd进…

vscode几十款常用插件及emmet语法

开发中使用的一些vscode插件 文章目录开发中使用的一些vscode插件EaseServerLive ServerLive HTML PreviewerLiveReloadAuto Close TagAuto Rename TagBeautifyBeautify css/sass/scss/lessAutoFileNameBetter CommentsBracket Pair ColorizerCSS treeCode OutlineCode RunnerC…