当前位置: 首页 > news >正文

pc端如何做自适应呢?

    <!-- 默认html的font-size的大小是16px  1rem = 16px  -->

    <!-- 想要实现自适应的前提条件是 当浏览器的窗口发生变化的时候, html的font-size将会跟着发生改变 -->

    <!-- 实现的步骤如下 -->

    <!-- 1 借助flexble.js文件 -->

    <!-- 2 将flexble.js文件中的屏幕适配分为24份。 那么随着屏幕不断发生变化的时候 屏幕的fonst-size的大小就是当前屏幕的尺寸/24了 -->

    <!-- 3 屏幕适配 当设计稿为1920的时候,而我的屏幕是1240, 而设计稿的盒子尺寸是500的时候,那么我的盒子尺寸应该(500/1920)*1240; 基于这样的运算会比较复杂 -->

    <!-- 4 下载插件帮助计算 pxtorem;  -->

    <!-- 5 因为我们量尺寸都是基于设计稿去量的 所有我们要将pxtorem的尺寸进行修改 在设置里面找到修改尺寸的地方也就设计稿的尺寸1920/24 = 80 -->

    <!-- 6 这样我们就可以基于原设计稿的尺寸来进行测量,而在我们这里转化为rem就可以了 -->

(function flexible(window, document) {var docEl = document.documentElementvar dpr = window.devicePixelRatio || 1// adjust body font sizefunction setBodyFontSize() {if (document.body) {document.body.style.fontSize = 12 * dpr + 'px'} else {document.addEventListener('DOMContentLoaded', setBodyFontSize)}}setBodyFontSize()// set 1rem = viewWidth / 10// pc端屏幕适配 一般将flexble分为24份// 默认情况下是将屏幕大小分为了100份// 原理 不管屏幕是多大 反正默认指定的分数function setRemUnit() {// 这里默认是10等份,手动改为24,此时1rem=1920/24px即80px。(设计稿是1920px的)var rem = docEl.clientWidth / 24docEl.style.fontSize = rem + 'px'}setRemUnit()// reset rem unit on page resizewindow.addEventListener('resize', setRemUnit)window.addEventListener('pageshow', function (e) {if (e.persisted) {setRemUnit()}})// detect 0.5px supportsif (dpr >= 2) {var fakeBody = document.createElement('body')var testElement = document.createElement('div')testElement.style.border = '.5px solid transparent'fakeBody.appendChild(testElement)docEl.appendChild(fakeBody)if (testElement.offsetHeight === 1) {docEl.classList.add('hairlines')}docEl.removeChild(fakeBody)}
})(window, document)

 

http://www.lryc.cn/news/308921.html

相关文章:

  • c语言经典测试题8
  • 解决GitHub无法访问的问题:手动修改hosts文件与使用SwitchHosts工具
  • ETL数据仓库的使用方式
  • POST参数里加号+变成空格的问题处理
  • 【华为面试基础题】检查是否存在满足条件的数字组合
  • 亚信安慧AntDB数据并行加载工具的实现(一)
  • 面经 | Java创建线程的三种方式
  • 【计算机网络】五种IO模型与IO多路转接之select
  • 通过一篇文章让你了解数据结构和算法的重要性
  • python代码优化学习
  • C#,数值计算,求解微分方程的吉尔(Gear)四阶方法与源代码
  • 2024年新提出的算法|LEA爱情进化算法(Love Evolution Algorithm)
  • javaWeb个人学习02
  • EchoServer回显服务器封装与测试
  • 详解POCV/SOCV的时序报告
  • [VNCTF2024]-PWN:preinit解析(逆向花指令,绕过strcmp,函数修改,机器码)
  • 网络通信技术
  • 【刷题】位运算
  • C++重新入门-string容器
  • C语言头歌:指针进阶
  • 【C++】一个求数组中最大元素的函数模板
  • SpringCloud Alibaba(保姆级入门及操作)
  • SpringBoot集成Activiti案例
  • Vulnhub靶机:basic_pentesting_2
  • 复试PAT乙级day33
  • npm ERR! path /Users/apple/.npm/_cacache/index-v5/11/77/cf18d9ab54d565b57fb3
  • 震惊!python类型的自动化测试框架原来这么简单!
  • 人脸高清算法GFPGAN之TensorRT推理
  • 05 OpenCV图像混合技术
  • 2326. 王者之剑(网络流,最小割,最大权独立集,最小点权覆盖)