看过这篇文章,写的挺全面, 从几个方面分析响应式写法优劣,先收藏:

http://caibaojian.com/web-app-rem.html

最终方案:

rem是通过根元素进行适配的,网页中的根元素指的是html,我们通过设置html的字体大小就可以控制rem的大小。

下面函数将屏幕宽度和根元素字体大小联系起来,而页面内元素宽度都是通过rem来设置,如750页面最大宽度也就是7.5rem,字体16px =>0.16rem。

页面大小变化时,根元素html大小相应变化,内部元素随rem变化相应改变,来达到响应效果。

//designWidth:设计稿的实际宽度值,需要根据实际设置
//maxWidth:制作稿的最大宽度值,需要根据实际设置
//这段js的最后面有两个参数记得要设置,一个为设计稿实际宽度,一个为制作稿最大宽度,例如设计稿为750,最大宽度为750,则为(750,750)
(function(designWidth, maxWidth) {var doc = document,win = window,docEl = doc.documentElement,remStyle = document.createElement("style"),tid;function refreshRem() {var width = docEl.getBoundingClientRect().width;maxWidth = maxWidth || 540;width>maxWidth && (width=maxWidth);var rem = width * 100 / designWidth;remStyle.innerHTML = 'html{font-size:' + rem + 'px;}';}if (docEl.firstElementChild) {docEl.firstElementChild.appendChild(remStyle);} else {var wrap = doc.createElement("div");wrap.appendChild(remStyle);doc.write(wrap.innerHTML);wrap = null;}//要等 wiewport 设置好后才能执行 refreshRem,不然 refreshRem 会执行2次;
    refreshRem();win.addEventListener("resize", function() {clearTimeout(tid); //防止执行两次tid = setTimeout(refreshRem, 300);}, false);win.addEventListener("pageshow", function(e) {if (e.persisted) { // 浏览器后退的时候重新计算
            clearTimeout(tid);tid = setTimeout(refreshRem, 300);}}, false);if (doc.readyState === "complete") {doc.body.style.fontSize = "16px";} else {doc.addEventListener("DOMContentLoaded", function(e) {doc.body.style.fontSize = "16px";}, false);}
})(750, 750);

扩展阅读:https://www.cnblogs.com/tiger95/p/7941341.html (3个方案:1.rem 625%  2.网易  3.淘宝)

转载于:https://www.cnblogs.com/lola/p/9597272.html

响应式布局想法和实现相关推荐

  1. css3媒体查询实现网站响应式布局

    响应式建筑设计.响应式家具设计.响应式办公设计,这些词可能是已有的专业名词,也可能是我自己想出来的一些名词. 因为在生活中,我们常常会见到很多让人惊叹的设计,为什么同一套东西经过不同的方式变化之后会给 ...

  2. 流体式布局与响应式布局_将固定像素设计转换为流体比例布局

    流体式布局与响应式布局 Responsive web design has been a prime necessity for every enterprise ever since Google ...

  3. 【探索HTML5第二弹05】响应式布局(中),一步一步响应式布局

    前言 前天初步探究了一次响应式布局,虽然花了一天功夫,做出来的东西还是不行,在此我还是认为要做响应式布局设计应该先行,应该先制作3个以上的设计图出来,但是对于手机来说,图片流量也是个问题,但是这个我们 ...

  4. html页面高度设为自动,html – CSS:响应式布局中的高度自动问题

    没有固定的正确高度.如果我在css中设置固定高度,则在响应式布局中,图像将不会以正确的宽高比调整大小. 主要问题是css根据src-attribute设置的图像计算自动高度和宽高比,而不是width- ...

  5. html手机响应式布局,手机网页设计中的响应式布局

    随着各种特性和智能手机浏览器的发展,网页能够根据设备显示变得很重要.我们不用再根据桌面浏览器窗口尺寸建立网站,然后让它们在更小的移动浏览器上渲染.现在,我们可以让元素大小和布局针对设备作出改变. 在C ...

  6. 响应式布局的常用解决方案(媒体查询、百分比、rem和vw/vh)

        在前端开发过程中,静态网页通常需要适应不同分辨率的设备,常用的自适应解决方案包括媒体查询.百分比.rem.和vw /vh,本文主要分析px在移动端布局中的不足,以及几种不同的自适应解决方案 一 ...

  7. 判断两个图片的特征向量_响应式布局提高篇 图片正确的打开方式

    作者 | Brilliant Open Web团队 编辑 | Aaron 本文承接上一章的内容,接着介绍响应式布局设计,主要讲如何实现响应式图片.通过对图片适配问题的说明,加深对响应式图片的理解,并分 ...

  8. 总是听别人说响应式布局,原来这么简单

    总听别人说响应式布局,觉得是一个很高大上的东西,近日做的一个项目需要适配不同的屏幕尺寸,于是就简单研究了一下 Web响应式布局,其实原理很简单,下面就简单整理了一下分享给大家. 什么是响应式布局 如图 ...

  9. html响应式布局media,JS中使用media实现响应式布局

    常见写法: 下面总结常见的响应式布局的分类: @media screen and (max-width:320px){ #talkFooter .editArea{-- } } @media scre ...

最新文章

  1. java curl json_curl javaSSm框架中传入json数组的格式方法
  2. HTML5 + CSS 左右排版自适应高
  3. c++ primer 5th 习题11.14自己编写的答案
  4. Linux 查看服务器开放的端口号
  5. POJ1821-Fence【单调队列,dp】
  6. AUTOSAR从入门到精通100讲(七十九)-AUTOSAR基础篇之DTC
  7. jboss连接池,断开后自动重连功能
  8. GNS3全面详解系列-GNS3的前世今生
  9. 使用EL表达式获得session中内容
  10. 盛大“传奇”的网游启示录
  11. 条款28:避免返回handles指向对象内部的成分(Avoid returning handles to objects internals)...
  12. ios是否安装了某应用
  13. freeswitch被外国IP攻击盗打的防护措施
  14. dSPACE控制电机启动与停止
  15. a4纸尺寸在html中是多大,a4纸尺寸是多少厘米(各种标准纸张大小)
  16. 小程序:canvas绘制网络图片
  17. [转载] 网络硬件发展史
  18. 2022国内TMS运输管理系统排行榜
  19. 【目标检测】(10) Mosaic 数据增强方法,附Python完整代码
  20. vue+springboot实现调用本地摄像头拍照上传后端使用百度ocr识别身份证信息

热门文章

  1. Ubuntu21.04 Docker 安装
  2. 【网址收藏】Porter:面向裸金属环境的 Kubernetes 开源负载均衡器
  3. kafka批量启动脚本
  4. spark on k8s配置日志存储路径:spark-defaults.conf
  5. Centos7安装Python3并更改默认版本为python3(编译安装)
  6. harbor 2.0.1安装部署
  7. scala for循环
  8. Java动态代理代码案例:使用jdk自带的Proxy只能对有接口的类进行动态代理
  9. ElementUI弹出新增窗口
  10. centos打显卡驱动命令_在Linux系统下安装Nvidia官方显卡驱动的方法