这两天H5静态页面开发过程当中的问题总结。html
//内容宽为设备宽度,初始化缩放倍数为1(不缩放) <meta name="viewport" content="width=device-width, initial-scale=1.0">
(1)px是相对于显示器屏幕分辨率而言的相对长度单位。浏览器
(2)rem是相对根元素的font-size大小的相对单位,能够作到只修改根元素font-size大小就成比例地调整全部字体大小。布局
适配:字体
html { font-size:16px; } @media (max-width:414px) { html { font-size: 18px; } } @media (max-width:375px) { html { font-size: 20px; } }
var deviceWidth=document.documentElement.clientWidth; var rootFontSize = deviceWidth / 6.4; document.documentElement.style.fontSize=rootFontSize + 'px';
手动设置元素居中,要否则浏览器会随机渲染,必须给它一个渲染规则。flex
解决:给父元素设置font-size:0; letter-spacing: -4px; 子元素再另外设置font-size和letter-spacing。spa
//orientationchange:设备更换事件 //onresize:接收reset事件时触发的EventHandler //DOMContentLoaded: 浏览器窗口大小发生变化事件 (function (doc, win) { resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize', recalc = function () { var clientWidth=doc.documentElement.clientWidth; if (!clientWidth) return; //动态计算根元素的font-size doc.documentElement.style.fontSize=(clientWidth / 6.4) + 'px'; }; if (!doc.addEventListener) return; //监听设备变化 win.addEventListener(resizeEvt, recalc, false); //监听浏览窗口变化 doc.addEventListener('DOMContentLoaded', recalc, false); })(document, window);
H5页面的开发,由于设备视口大小不一致,在适配上应该足够细致、严谨。除了自适应的布局以外,更应该注意细节的处理。调试