移动Web【rem、flexible、Less、vw / vh】

文章目录


rem

  • 网页效果
    • 屏幕宽度不同,网页元素尺寸不同(等比缩放)
  • px单位或百分比布局可以实现吗?
    • px单位是绝对单位
    • 百分比布局特点宽度自适应,高度固定
  • 适配方案
    • rem
    • vw / vh

  • rem单位
    • 相对单位
    • rem单位是相对于HTML标签的字号计算结果
    • 1rem = 1HTML字号大小

rem移动适配

  • 思考
      1. 手机屏幕大小不同,分辨率不同, 如何设置不同的HTML标签字号?
      1. 设备宽度不同,HTML标签字号设置多少合适?

rem移动适配 - 媒体查询

  • 思考

    • 手机屏幕大小不同,分辨率不同, 如何设置不同的HTML标签字号?
    • 媒体查询
  • 媒体查询能够检测视口的宽度,然后编写差异化的 CSS 样式

  • 当某个条件成立, 执行对应的CSS样式

  • 写法在这里插入图片描述


rem移动适配

  • 目前rem布局方案中,将网页等分成10份, HTML标签的字号为视口宽度1/10在这里插入图片描述

  • 思考:
  • 工作中,书写代码的尺寸要参照设计稿尺寸,设计稿中是px还是rem?
  • 如何确定rem的数值?
  • rem单位尺寸
      1. 根据视口宽度,设置不同的HTML标签字号
      1. 书写代码,尺寸是rem单位
      • 2.1 确定设计稿对应的设备的HTML标签字号
        • 查看设计稿宽度 → 确定参考设备宽度(视口宽度) → 确定基准根字号(1/10视口宽度)
      • 2.2 rem单位的尺寸
        • N * 37.5 = 68 → N = 68 / 37.5
        • rem单位的尺寸 = px单位数值 / 基准根字号

flexible

  • 思考:咱们检测了3个视口,分别设置了根字号,有什么弊端吗?
  • 答:手机设备多,屏幕尺寸不一,视口不仅仅有这3个

  • flexible.js是手淘开发出的一个用来适配移动端的js框架。
  • 核心原理就是根据不同的视口宽度给网页中html根节点设置不同的font-size。在这里插入图片描述

Less

Less语法

  • 思考:在px单位转换到rem单位过程中,哪项工作是最麻烦的?
  • 答:除法运算。CSS不支持计算写法。
  • 解决方案:可以通过Less实现。

  • Less是一个CSS预处理器, Less文件后缀是.less
  • 扩充了 CSS 语言, 使 CSS 具备一定的逻辑性、计算能力。
  • 注意:浏览器不识别Less代码,目前阶段,网页要引入对应的CSS文件。

编译插件

Easy Less :

  • vscode插件
  • 作用:less文件保存自动生成css文件在这里插入图片描述

Less语法

注释:

  • 单行注释
    • 语法:// 注释内容
    • 快捷键:ctrl + /
  • 块注释
    • 语法: /* 注释内容 */
    • 快捷键: shift + alt + A

运算:

  • 加、减、乘直接书写计算表达式

  • 除法需要添加 小括号.在这里插入图片描述

  • 注意:

  • 表达式存在多个单位以第一个单位为准


嵌套:

  • 思考:书写CSS选择器时, 如何避免样式冲突?

嵌套:

  • 作用:快速生成后代选择器。

  • 语法:在这里插入图片描述

  • 注意:&生成后代选择器,表示当前选择器,通常配合伪类或伪元素使用在这里插入图片描述


变量

  • 思考:
    • 网页中, 文字文字颜色基本都是统一的, 如果网站改版,变换文字颜色, 如何修改代码?
    • 方法一:逐一修改属性值(太繁琐)
    • 方法二: 把颜色提前存储到一个容器,设置属性值为这个容器名

变量

  • 方法二: 把颜色提前存储到一个容器,设置属性值为这个容器名
  • 变量:存储数据,方便使用和修改。
  • 语法:
  • 定义变量:@变量名: 值;
  • 使用变量:CSS属性:@变量名;在这里插入图片描述

  • 思考:
    • 开发网站时,网页如何引入公共样式?
      • CSS:书写link标签
      • Less:导入
  • 导入: @import “文件路径”;在这里插入图片描述

  • 思考:

  • 目前,Less文件导出的CSS文件位置是哪里?
    ;

  • 方法一:

    • 配置EasyLess插件, 实现所有Less有相同的导出路径
  • 配置插件: 设置 → 搜索EasyLess → 在setting.json中编辑 → 添加代码(注意,必须是双引号)在这里插入图片描述

  • 方法二:控制当前Less文件导出路径

    • Less文件第一行添加如下代码, 注意文件夹名称后面添加 /
      在这里插入图片描述

  • 思考:所有的Less文件都需要导出CSS文件吗?
  • 禁止导出
    • 在less文件第一行添加: // out: false在这里插入图片描述

vw / vh

  • 相对单位
  • 相对视口的尺寸计算结果
  • vw:viewport width
    • 1vw = 1/100视口宽度
  • vh:viewport height
    • 1vh = 1/100视口高度

  • vw单位尺寸
      1. 确定设计稿对应的vw尺寸 (1/100视口宽度)
      • 查看设计稿宽度 → 确定参考设备宽度 (视口宽度) → 确定vw尺寸 (1/100 视口宽度)
      1. vw单位的尺寸 = px单位数值 / ( 1/100 视口宽度 )

  • vh单位尺寸
      1. 确定设计稿对应的vh尺寸 (1/100视口高度)
      • 查看设计稿宽度 → 确定参考设备高度 (视口高度) → 确定vh尺寸 (1/100 视口高度)
      1. vh单位的尺寸 = px单位数值 / ( 1/100 视口高度 )

  • 思考:开发中,会不会vw和vh混用呢?
    • 不会。
    • vh是1/100视口高度,全面屏视口高度尺寸大,如果混用可能会导致盒子变形
// out: ./
* {
    margin: 0;
    padding: 0;
}

// 68 * 29  -- vw
.box {
    width: (68 / 3.75vw);
    height: (29 / 3.75vw);
    background-color: pink;
}

.box2 {
    // vh
    width: (68 / 6.67vh);
    height: (29 / 6.67vh);
    background-color: green;
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值