解决移动端rem布局,用户调整手机字体大小或浏览器字体大小后导致页面布局出错问题

html5前端开发面试题
转行前端开发面试作品
web前端开发面试试题

一、用户修改手机字体设置大小,影响App里打开的web页面。

手机字体设置大小,影响App的页面。
Android的可以通过webview配置webview.getSettings().setTextZoom(100)就可以禁止缩放,按照百分百显示。

二、用户调整浏览器字体大小,影响的是从浏览器打开的web

浏览器设置字体大小,影响浏览器打开的页面。通过js可控制用户修改字体大小,使页面不受影响。

javascript 代码

;(function(doc, win) {
    // 用原生方法获取用户设置的浏览器的字体大小(兼容ie)
    if (doc.documentElement.currentStyle) {
        var user_webset_font = doc.documentElement.currentStyle[‘fontSize’]
    } else {
        var user_webset_font = getComputedStyle(doc.documentElement, false)[
            ‘fontSize’
        ]
    }
    // 取整后与默认16px的比例系数
    var xs = parseFloat(user_webset_font) / 16
    // 设置rem的js设置的字体大小
    var view_jsset_font, result_font
    var docEl = doc.documentElement,
        resizeEvt =
            ‘orientationchange’ in window ? ‘orientationchange’ : ‘resize’,
        clientWidth,
        recalc = function() {
            clientWidth = docEl.clientWidth
            if (!clientWidth) return
            if (!doc.addEventListener) return
            if (clientWidth < 750) {
                // 设置rem的js设置的字体大小
                view_jsset_font = 100 * (clientWidth / 750)
                // 最终的字体大小为rem字体/系数
                result_font = view_jsset_font / xs
                // 设置根字体大小
                docEl.style.fontSize = result_font + ‘px’
            } else {
                docEl.style.fontSize = 100 + ‘px’
            }
        }
    win.addEventListener(resizeEvt, recalc, false)
    doc.addEventListener(‘DOMContentLoaded’, recalc, false)
})(document, window)
web前端开发面试要求
前端开发面试作品分享
面试小程序前端开发
赞(0)
前端开发者 » 解决移动端rem布局,用户调整手机字体大小或浏览器字体大小后导致页面布局出错问题
64K

评论 抢沙发

评论前必须登录!