强大的屏幕适配布局rem响应式 实现一套web代码多端自适应适配
实现强大的屏幕适配布局
流式的布局、固定的宽度,还有响应式来做,但是这些方案都不是最佳的解决方法。->->rem
rem是什么?
rem(font size of the root element)是指相对于根元素的字体大小的单位。简单的说它就是一个相对单位。看到rem大家一定会想起em单位,em(font size of the element)是指相对于父元素的字体大小的单位。它们之间其实很相似,只不过一个计算的规则是依赖根元素一个是依赖父元素计算。
// 动态计算屏幕的宽度,从而得到网页的fontSize大小 (function (doc, win) { var docEl = doc.documentElement, resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize', recalc = function () { var clientWidth = docEl.clientWidth; if (!clientWidth) return; docEl.style.fontSize = 10 * (clientWidth / 320) + 'px'; }; if (!doc.addEventListener) return; win.addEventListener(resizeEvt, recalc, false); doc.addEventListener('DOMContentLoaded', recalc, false); })(document, window);--原理:根据网页的尺寸更改,计算出相对的字体大小
// 动态计算屏幕的宽度,从而得到网页的fontSize大小 (function (doc, win) { var docEl = doc.documentElement, resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize', recalc = function () { var clientWidth = docEl.clientWidth; if (!clientWidth) return; if(clientWidth>750) clientWidth=750;//这里限制最大的宽度尺寸,从而实现PC端的两边留白等 docEl.style.fontSize = 10 * (clientWidth / 320) + 'px'; }; if (!doc.addEventListener) return; win.addEventListener(resizeEvt, recalc, false); doc.addEventListener('DOMContentLoaded', recalc, false); })(document, window);
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> 1.如果支持Google Chrome Frame:GCF,则使用GCF渲染; 如果系统安装ie8或以上版本,则使用最高版本ie渲染; 否则,这个设定可以忽略 至于你讲的新版chrome,本身就是在Chrome中,当然网页以Chrome的方式来渲染。
2.width - viewport的宽度 height - viewport的高度
initial-scale - 初始的缩放比例 minimum-scale - 允许用户缩放到的最小比例 maximum-scale - 允许用户缩放到的最大比例 user-scalable - 用户是否可以手动缩放
>>尺寸及分辨率<< iPhone界面尺寸:320*480、640*960、640*1136(单位都是像素:px) 当然在设计当中我们并不需要每一种尺寸都做一套图,建议取用640*960的尺寸设计。所以当我们方案中的clientWidth = 640
rem的兼容性:
可以看出兼容性还是ok!
html { font-size : 20px; } @media only screen and (min-width: 401px){ html { font-size: 25px !important; } } @media only screen and (min-width: 428px){ html { font-size: 26.75px !important; } } @media only screen and (min-width: 481px){ html { font-size: 30px !important; } } @media only screen and (min-width: 569px){ html { font-size: 35px !important; } } @media only screen and (min-width: 641px){ html { font-size: 40px !important; } }
1642



被折叠的 条评论
为什么被折叠?



