0
点赞
收藏
分享

微信扫一扫

介绍移动布局

像小强一样活着 2022-03-12 阅读 28

> **移动适配**指网页元素的宽高都要随着设备的宽度**等比例缩放**

> **解决方案:**
>
> 0.  `rem :`目前多数企业在用的解决方案 (尺寸单位)
> 0.  `vw / vh:`未来的解决方案

## rem是什么

> 0.  rem是一个**相对单位**
>
> 0.  是相对于HTML标签的字号计算结果
>
> 0.  1rem=1HTML标签字号大小
>
>     -   比如:HTML标签字号大小为`font-size:20px`则1rem=20,5rem=5*20=100px
>     -   HTML网页*根标签*就是html标签

> ```
>
> /* 1rem = 1html标签字号大小 */
>         
>         html {
>             font-size: 20px;
>         }
>         
>         .box {
>             width: 5rem;
>             height: 3rem;
>             background-color: blue;
>         }
> ```
>
> *效果图:5rem=5 * 20 , 3rem=3 * 20*
>

![Snipaste_2022-03-05_14-18-42.png](https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/028e34464b5f4412baa284cc59138a97~tplv-k3u1fbpfcp-watermark.image?)
## rem移动适配 - 媒体查询

> *使用媒体查询, 根据不同的**视口宽度**(设备宽度), 设置不同的根字号*

> 目标:能够使用媒体查询设置差异化CSS样式

> -   **媒体查询能够检测视口的宽度**,然后编写差异化的 CSS 样式
> -   当某个条件成立, 执行对应的CSS样式
>

![Snipaste_2022-03-05_15-46-39.png](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/7d7052c4515e4015a900417203abb178~tplv-k3u1fbpfcp-watermark.image?)
> 目前rem布局方案中,将网页 **(设计稿)** 等分成10份, HTML标签的字号为视口宽度的 1/10

## 计算rem

> 0.  先确定设计稿的尺寸

> -   N * 37.5 = 68 → N = 68 / 37.5
> -   rem单位的尺寸 = px单位数值 / 基准根字号 (结果取3位小数)

## rem适配原理(重要)

> **目标:** *实现在不同宽度的设备中,网页元素尺寸等比缩放效果*

> **rem单位尺寸**
>
> 0.  根据视口宽度,设置不同的HTML标签字号
>
> 0.  书写代码,尺寸是rem单位
>
>     -   确定设计稿对应的设备的**HTML标签**(基准根字号)字号
>
>     -   查看设计稿宽度 → 确定参考设备宽度(视口宽度) → 确定基准根字号(1/10视口宽度)
>
>     -   **rem单位的尺寸**
>
>         -   N * 37.5 = 68 → N = 68 / 37.5
>         -   rem单位的尺寸 = px单位数值 / 基准根字号
>
>     -   *rem单位的尺寸 = px单位数值 / 基准根字号 (结果取3位小数)*

## flexible.js

> -   flexible.js是手淘(淘宝)开发出的一个用来适配移动端的js框架。
> -   **核心原理**就是根据不同的视口宽度给网页中html根节点设置不同的font-size。

## less

> 目标:使用Less语法快速编译生成CSS代码

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

### less语法(运算)

> -   加、减、乘直接书写计算表达式
> -   除法需要添加 小括号 或 . **(建议用小括号)**
> -   注意:表达式存在多个单位以第一个单位为准
>

![Snipaste_2022-03-05_17-09-05.png](https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/c6f2dfee21ad48afb74d744b1acaa317~tplv-k3u1fbpfcp-watermark.image?)
### less语法(嵌套)

> 能够使用Less嵌套写法生成后代选择器
>
> **方便代码迁移**
>
> 最好不要超过三层嵌套

![Snipaste_2022-03-05_19-20-55.png](https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/5da0d0dfb3a74dd9a862e18016e1dbc0~tplv-k3u1fbpfcp-watermark.image?)
> *注意:*&符号不生成后代选择器,表示当前选择器,通常配合伪类或伪元素使用

### less语法(变量)

> 目标:能够使用Less变量设置属性值
>
> 作用:存储数据
>
> *方便修改*:例如网页有1000个颜色,只要修改变量值即可

> **方法:**
>
> -   把颜色提前存储到一个容器,设置属性值为这个容器名
>
> -   变量:存储数据,**方便使用和修改。**
>
> -   语法:
>
>     -   定义变量: **@变量名: 值;**
>     -   使用变量:**CSS属性:@变量名;**

### less语法(导入)

> 目标:能够使用Less导入写法引用其他Less文件

> 导入: **@import “文件路径”;**
>

![Snipaste_2022-03-05_19-54-57.png](https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/b972f9a8ed4b42fe821c690a5c663067~tplv-k3u1fbpfcp-watermark.image?)
### less语法(导出)

> 目标:使用Less语法导出CSS文件
>
> *注意:*添加代码的时候加上逗号

> **(插件配置)方法:**
>
> -   配置EasyLess插件, 实现所有Less有相同的导出路径
> -   配置插件: 设置 → 搜索EasyLess → 在setting.json中编辑 → 添加代码(注意,必须是双引号)
>

![Snipaste_2022-03-05_20-12-01.png](https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/a25723effb254997a9e83692582c4a59~tplv-k3u1fbpfcp-watermark.image?)

![Snipaste_2022-03-05_20-12-08.png](https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/b98a9d0e260844b594feee51e7a1ba7e~tplv-k3u1fbpfcp-watermark.image?)
> **单独路径**:
>
> -   Less文件**第一行**添加如下代码, 注意文件夹名称后面添加 /
>
>     -   `// out: ./abc/`
>     -   注意要在第一行添加

### 禁止导出

> 在less文件*第一行*添加: `// out: false`

举报

相关推荐

0 条评论