优秀的编程知识分享平台

网站首页 > 技术文章 正文

手机端自适应-rem(手机端自适应滚动条)

nanyue 2024-10-22 13:05:12 技术文章 4 ℃



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

Tags:

最近发表
标签列表