CSS rem移动适配 与媒体查询详解

rem基本使用

  • rem是一种相对单位
  • rem单位是相对于HTML标签(根标签) 的字号计算出来的结果
  • 1rem=1HTML字号的大小
 /* 1rem = 1html标签字号大小 必须设置html标签中的字号*/
        
        html {
            font-size: 20px;
        }

媒体查询

  • 通过媒体查询能够检测视口的宽度,然后编写差异化的 CSS 样式
  • 当某个条件成立时,执行对应的css样式
  /* 写法 @media(媒体属性){
            选择器{
                css属性
            }
        }
  使用媒体查询, 根据不同的视口宽度, 设置不同的根字号 */
        @media (width:375px) {
            html {
                font-size: 40px;
            }
        } 
        @media(width:320px) {
            html {
                font-size: 30px;
            }
        }
  • 部分电脑可能不会在某分辨率下执行css样式,原因在于电脑屏幕分辨率缩放比不是100%
    在这里插入图片描述

基本语法

  • max-width 小于等于
  • min-width大于等与
/* 视口宽度小于等于768px, 网页背景色是粉色 */
        
        @media (max-width:768px) {
            body {
                background-color: pink;
            }
        }
        /* 视口宽度大于等于1200px, 网页背景色是skyblue */
        
        @media(min-width:1200px) {
            body {
                background-color: skyblue;
            }
        }

书写顺序

  • min-width 从小到大书写
  • max-width 从大到小书写
 //css具有层叠性 后边的覆盖前边的样式
 @media(min-width:768px) {
            body {
                background-color: pink;
            }
        }
        
        @media(min-width:992px) {
            body {
                background-color: green;
            }
        }
        
        @media(min-width:1200px) {
            body {
                background-color: skyblue;
            }
        }

完整写法

在这里插入图片描述

  • 关键词 and only not
  • 媒体类型
    媒体类型
  • 媒体特征
    媒体特征

link写法

  • 外联式CSS引入
 	<!-- 视口宽度 >= 992px,网页背景色为粉色 -->
    <!-- 视口宽度 >= 1200px,网页背景色为绿色 -->
    <!-- 加media(作为html属性,不加@符号,后边加() ) -->
    <link rel="stylesheet" media="(min-width:992px)" href="./one.css">
    <link rel="stylesheet" media="(min-width:1200px)" href="./two.css">

隐藏

  /* 如果监测到视口宽度小于768px 隐藏左侧区域 */
        @media(max-width:768px) {
            .left {
                display: none;
            }
        }

移动适配

解决写法

  • rem移动适配布局中,一般将网页等分为10份,HTML标签的字号为视口宽度的1/10
  /* 步骤一 保证不同的视口,html标签字号不同
            字号是视口宽度的1/10
        */
        /* 视口宽度为320px 根字号为32px */
        @media(width:320px) {
            html {
                font-size: 32px;
            }
        }
        @media(width:375px) {
            html {
                font-size: 37.5px;
            }
        }
        @media(width:414px) {
            html {
                font-size: 41.4px;
            }
        }
        /* 2. 书写盒子尺寸, 单位rem */
        .box {
            width: 5rem;
            height: 3rem;
            background-color: pink;
        }

布局流程

  • 确定设计稿对应的设备的HTML标签字号
  • 查看设计稿宽度 → 确定参考设备宽度(视口宽度) → 确定基准根字号(1/10视口宽度)
  • N*37.5 = 68 → N = 68 / 37.5
  • rem单位的尺寸 = px单位数值 / 基准根字号

flexible(适配移动端js框架)

  • flexible.js是手淘开发出的一个用来适配移动端的js框架(开源)。
  • 核心原理:根据不同的视口宽度给网页中的html根节点设置不用的font-size
    引入flexible框架
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Gik99

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值