移动Web之rem布局

rem布局思想:

         我们希望网页的宽高文字各元素在不同大小的屏幕上同时进行等比例缩放,达到适配移动端多种尺寸屏幕最好效果
         在移动web页面中,由于理想视口的存在且如所述,故设网页设计宽度(屏幕宽度)为w1当前网页宽度(屏幕宽度)为w2,网页的某元素原设计宽度x1,该元素在当前屏幕下宽度x2,即:w1/w2 = x1/x2
         由于设计稿的存在,所以上述w1,x1的值都是已知的,但在css中无法获得当前网页宽度 (屏幕宽度) 的值 (只能判断),因此w2未知,我们无法进而获得x2
         在这里引入css中的rem单位。rem是一种类似于em的相对单位,其定义如下:单位rem的css像素默认大小参考标准为当前页面 <html>标签的font-size值
         我们能不能利用不同屏幕宽度的线性变化来让当前页面的html标签的font-size值呈线性变化呢?设原设计中html标签的font-size为f1(已知),当前宽度屏幕中html标签的font-size为f2,即:f1/f2 = w1/w2,也即:f1/f2 = x1/x2
         利用css的多媒体查询(判断),设置屏幕宽度变化节点尺寸下的字体大小呈线性变化还是可能的,直接令 f1 = w1,f2 = w2 即可 (也可以利用一个常量将所有字体同时缩小,设常量为a,即f1/a / f2/a = f1/f2)
         因为:f1/f2 = x1/x2
             所以:x2 = x1*f2 / f1
             根据rem定义可知,f2即为当前页面的rem参考标准值,所以将上述等式两边同时除以f2并化简得
             当前页面rem值 = x1rem / f1
 

总结:

        rem布局的重要公式:当前页面rem值 = 网页的某元素原设计宽度rem / 原设计中html标签的font-size

<!DOCTYPE html>
<html lang="en">
<!--实现header在指定宽度节点变为自适应大小,且宽高皆成比例变化-->
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <title>媒体查询和rem综合示例</title>
    
    <style type="text/css">
        header {
            width: 100%;
            height: 5rem;
            color: #fff;
            font-size: .5rem;
            line-height: 5rem;
            text-align: center;
            transition: 1s;
        }
        @media screen and (min-width: 320px) {
            html {
                font-size: 10px;
            }
            header {
                background-color: darkorchid;
            }
        }
        @media screen and (min-width: 960px) {
            html {
                font-size: 20px;
            }
            header {
                background-color: blue;
            }
        }
        @media screen and (min-width: 1280px) {
            html {
                font-size: 30px;
            }
            header {
                background-color: green;
            }
        }
    </style>
</head>
<body>
    <header>这是一张网页的head部分</header>
</body>
</html>

在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值