前端开发页面 根据屏幕的大小自适应 rem布局

前端开发里面怎么上传视频|前端比较好的开发工具|前端开发工具选择

rem是个低调的css单位,手淘在移动端的布局是基于rem处理的,当然还要基于viewport的处理,这里暂且不表。有的网页采用的是流式布局( 使用 % 百分比定义宽度,高度大都是用px来固定住)。如果使用 em 或 rem 单位进行相对布局,相对 % 百分比更加灵活,同时可以支持浏览器的字体大小调整和缩放等的正常显示。 因为em是相对父级元素的原因 没有得到推广

rem是什么?

rem和em单位一样,都是一个相对单位,不同的是em是相对于元素的父元素的font-size进行计算,rem是相对于根元素html的font-size进行计算,这样一来rem就绕开了复杂的层级关系,实现了类似于em单位的功能。默认情况下浏览器给的字体大小是16px,按照转化关系 16px = 1rem
自适应处理:

使用rem布局的时候,为了兼容不同的分辨率,我们应该要动态的修正根字体的大小,让所有的用rem单位的子元素跟着一起缩放,从而达到自适应的效果

一般情况在项目的最前面加载一段js来修改html的font-size,针对不同分辨率计算font-size,监听浏览器更改 html的font-size
html 代码

<!DOCTYPE html>
<head>
    <meta http-equiv=”Content-type” content=”text/html; charset=utf-8″ />
    <title>招聘前端小程序开发:圣诞主题</title>
    <style type=”text/css”>
        section {
            width: 100%;
            height: 100%;
            background: red;
        }
        .page {
            width: 5rem;
            height: 10rem;
            background: yellow;
            font-size: 0.3rem;
        }
    </style>
</head>
<body>
    <section>
        <div class=”page”>rem跟着html:font-size变化</div>
    </section>
</body>
<script type=”text/javascript”>
    var docEl = document.documentElement,
        //当设备的方向变化(设备横向持或纵向持)此事件被触发。绑定此事件时,
        //注意现在当浏览器不支持orientationChange事件的时候我们绑定了resize 事件。
        //总来的来就是监听当前窗口的变化,一旦有变化就需要重新设置根字体的值
        resizeEvt = ‘orientationchange’ in window ? ‘orientationchange’ : ‘resize’,
        recalc = function () {
            //设置根字体大小
            docEl.style.fontSize = 20 * (docEl.clientWidth / 320) + ‘px’;
        };
    //绑定浏览器缩放与加载时间
    window.addEventListener(resizeEvt, recalc, false);
    document.addEventListener(‘DOMContentLoaded’, recalc, false);
</script>
</html>

给html设置fontSize大小,其实就是在DOMContentLoaded或者resize变化后调整fontSize的大小,从而调整rem的比值关系。慕课的布局是右边区域展示,所以按照移动端的320宽度为标准去做适配的,当然基于这个缩放都是没关系的

前端开发谷歌常用插件|全球排名前50网站前端开发语言统计|网站前端开发 工具包

赞(0)
前端开发者 » 前端开发页面 根据屏幕的大小自适应 rem布局
64K

评论 抢沙发

评论前必须登录!