响应式布局想法和实现
看过这篇文章,写的挺全面, 从几个方面分析响应式写法优劣,先收藏:
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
响应式布局想法和实现相关推荐
- css3媒体查询实现网站响应式布局
响应式建筑设计.响应式家具设计.响应式办公设计,这些词可能是已有的专业名词,也可能是我自己想出来的一些名词. 因为在生活中,我们常常会见到很多让人惊叹的设计,为什么同一套东西经过不同的方式变化之后会给 ...
- 流体式布局与响应式布局_将固定像素设计转换为流体比例布局
流体式布局与响应式布局 Responsive web design has been a prime necessity for every enterprise ever since Google ...
- 【探索HTML5第二弹05】响应式布局(中),一步一步响应式布局
前言 前天初步探究了一次响应式布局,虽然花了一天功夫,做出来的东西还是不行,在此我还是认为要做响应式布局设计应该先行,应该先制作3个以上的设计图出来,但是对于手机来说,图片流量也是个问题,但是这个我们 ...
- html页面高度设为自动,html – CSS:响应式布局中的高度自动问题
没有固定的正确高度.如果我在css中设置固定高度,则在响应式布局中,图像将不会以正确的宽高比调整大小. 主要问题是css根据src-attribute设置的图像计算自动高度和宽高比,而不是width- ...
- html手机响应式布局,手机网页设计中的响应式布局
随着各种特性和智能手机浏览器的发展,网页能够根据设备显示变得很重要.我们不用再根据桌面浏览器窗口尺寸建立网站,然后让它们在更小的移动浏览器上渲染.现在,我们可以让元素大小和布局针对设备作出改变. 在C ...
- 响应式布局的常用解决方案(媒体查询、百分比、rem和vw/vh)
在前端开发过程中,静态网页通常需要适应不同分辨率的设备,常用的自适应解决方案包括媒体查询.百分比.rem.和vw /vh,本文主要分析px在移动端布局中的不足,以及几种不同的自适应解决方案 一 ...
- 判断两个图片的特征向量_响应式布局提高篇 图片正确的打开方式
作者 | Brilliant Open Web团队 编辑 | Aaron 本文承接上一章的内容,接着介绍响应式布局设计,主要讲如何实现响应式图片.通过对图片适配问题的说明,加深对响应式图片的理解,并分 ...
- 总是听别人说响应式布局,原来这么简单
总听别人说响应式布局,觉得是一个很高大上的东西,近日做的一个项目需要适配不同的屏幕尺寸,于是就简单研究了一下 Web响应式布局,其实原理很简单,下面就简单整理了一下分享给大家. 什么是响应式布局 如图 ...
- html响应式布局media,JS中使用media实现响应式布局
常见写法: 下面总结常见的响应式布局的分类: @media screen and (max-width:320px){ #talkFooter .editArea{-- } } @media scre ...
最新文章
- java curl json_curl javaSSm框架中传入json数组的格式方法
- HTML5 + CSS 左右排版自适应高
- c++ primer 5th 习题11.14自己编写的答案
- Linux 查看服务器开放的端口号
- POJ1821-Fence【单调队列,dp】
- AUTOSAR从入门到精通100讲(七十九)-AUTOSAR基础篇之DTC
- jboss连接池,断开后自动重连功能
- GNS3全面详解系列-GNS3的前世今生
- 使用EL表达式获得session中内容
- 盛大“传奇”的网游启示录
- 条款28:避免返回handles指向对象内部的成分(Avoid returning handles to objects internals)...
- ios是否安装了某应用
- freeswitch被外国IP攻击盗打的防护措施
- dSPACE控制电机启动与停止
- a4纸尺寸在html中是多大,a4纸尺寸是多少厘米(各种标准纸张大小)
- 小程序:canvas绘制网络图片
- [转载] 网络硬件发展史
- 2022国内TMS运输管理系统排行榜
- 【目标检测】(10) Mosaic 数据增强方法,附Python完整代码
- vue+springboot实现调用本地摄像头拍照上传后端使用百度ocr识别身份证信息
热门文章
- Ubuntu21.04 Docker 安装
- 【网址收藏】Porter:面向裸金属环境的 Kubernetes 开源负载均衡器
- kafka批量启动脚本
- spark on k8s配置日志存储路径:spark-defaults.conf
- Centos7安装Python3并更改默认版本为python3(编译安装)
- harbor 2.0.1安装部署
- scala for循环
- Java动态代理代码案例:使用jdk自带的Proxy只能对有接口的类进行动态代理
- ElementUI弹出新增窗口
- centos打显卡驱动命令_在Linux系统下安装Nvidia官方显卡驱动的方法