网页手机端自适应(手机端自适应)

网页手机端自适应(手机端自适应)

1rem 等于  文档流的font-size
通过修改 html的font-size实现自适应
假设
屏幕宽度为 750 clientwidth
设计稿宽度 750 materialWidth
将设计稿与当前设备比例放大100倍关系赋值给html,
则 1 rem 就等于 (设计稿与当前设备比例 * 100)html值则 
实际值(rem) =100*   比例 * 设计稿像素

所以为了较好的计算,建议采用开发选用的屏幕分辨率与设计稿一致以 1比1 计算。
例如:
750px的设计稿,开发屏幕750px,使得 1rem 等于 100px, 100%宽度就为 7.5rem;
320px的设计稿,开发屏幕320px,使得 1rem 等于 100px, 100%宽度就为 3.2rem;
以此类推。。。

所以取值为 设稿大小 除于 100,例如:
设计稿宽度为 200px,则rem取值为 2rem
以此类推。。。

注意浏览器支持文字最小像素,所以在 比例中 乘 100,避免rem布局错乱
const flxeJs = function (doc, win, materialWidth){
    materialWidth = materialWidth || 750
    const docEl = doc.documentElement
    const resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize'
    const recalc = function(materialWidth){
            var clientwidth = docEl.clientWidth
            if(!clientwidth)return;
            docEl.style.fontSize =  100 * (clientwidth / materialWidth)+ 'px';
    }.bind(null,materialWidth)

    if(!doc.addEventListener)return;
    win.addEventListener(resizeEvt,recalc, false);
    doc.addEventListener('DOMContentLoaded' , recalc, false)
}
export default flxeJs
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发表评论

登录后才能评论