Web移动适配
移动适配
视口
作用:显示 HTML 网页的区域,用来约束 HTML 的尺寸
1 |
|
width=device-width
:视口宽度 = 设备宽度initial-scale=1.0
:缩放1倍(不缩放)
屏幕分辨率
分类:
- 物理分辨率:硬件分辨率(出厂设置)
- 逻辑分辨率:软件 / 驱动设置
结论:制作网页参考 逻辑分辨率
适配方案
宽度适配:宽度自适应
- 百分比布局
- Flex 布局
等比适配:宽高等比缩放
- rem
- vw
rem
简介
- rem单位,是相对单位
- rem单位是相对于HTML标签的字号计算结果
- 1rem = 1HTML字号大小
媒体查询
媒体查询能够检测视口的宽度,然后编写差异化的 CSS 样式
当某个条件成立, 执行对应的CSS样式
1 | @media (width:320px) { |
rem 布局
目前rem布局方案中,将网页等分成10份, HTML标签的字号为视口宽度的 1/10。
flexible.js
flexible.js
是手机淘宝团队开发出的一个用来适配移动端的 js 库。
核心原理就是根据不同的视口宽度给网页中 html 根节点设置不同的 font-size。
1 | <body> |
rem 移动适配
rem单位尺寸
- 确定基准根字号
- 查看设计稿宽度 → 确定参考设备宽度(视口宽度) → 确定基准根字号(1/10视口宽度)
- rem单位的尺寸
- rem单位的尺寸 = px单位数值 / 基准根字号
less
Less是一个CSS预处理器, Less文件后缀是.less
。扩充了 CSS 语言, 使 CSS 具备一定的逻辑性、计算能力
注意:浏览器不识别 Less 代码,目前阶段,网页要引入对应的 CSS 文件
VS Code 插件:Easy LESS
,保存 less文件后自动生成对应的 CSS 文件
注释
单行注释
- 语法:
// 注释内容
- 快捷键:ctrl + /
- 语法:
块注释
- 语法:
/* 注释内容 */
- 快捷键: Shift + Alt + A
- 语法:
运算
- 加、减、乘直接书写计算表达式
- 除法需要添加
(小括号)
或.
- 表达式存在多个单位以第一个单位为准
嵌套
作用:快速生成后代选择器
用 &
表示当前选择器,不会生成后代选择器,通常配合伪类或伪元素使用
1 | .father { |
变量
概念:容器,存储数据
作用:存储数据,方便使用和修改
语法:
- 定义变量:@变量名: 数据;
- 使用变量:CSS属性:@变量名;
1 | // 定义变量 |
导入导出
导入
作用:导入 less 公共样式文件
语法:导入: @import “文件路径”
;
提示:如果是 less 文件可以省略后缀
1 | @import './base.less'; |
导出
写法:在 less 文件的第一行添加 // out: 存储URL
提示:文件夹名称后面添加 /
1 | // out: ./index.css |
禁止导出
写法:在 less 文件第一行添加: // out: false
vw
vw和vh基本使用
vw和vh是相对单位,相对视口尺寸计算结果
- vw:
viewport width
(1vw = 1/100视口宽度 ) - vh:
viewport height
( 1vh = 1/100视口高度 )
vw布局
确定设计稿对应的vw尺寸(1/100视口宽度)
- 查看设计稿宽度 -> 确定参考设备宽度(视口宽度) -> 确定vw尺寸(1/100视口宽度)
vw单位的尺寸 = px 单位数值 / ( 1/100 视口宽度 )
vh问题
- 开发实践中,vw和vh不能混用
- vh是1/100视口高度,全面屏视口高度尺寸大,如果混用可能会导致盒子变形
响应式网页
媒体查询
基础写法
max-width
:最大宽度(小于等于)min-width
:最小宽度(大于等于)
1 | /*屏幕宽度小于等于320px*/ |
书写顺序
需求:
- 默认网页背景色为灰色
- 屏幕宽度大于等于768px,为粉色
- 屏幕宽度大于等于992px,为绿色
- 屏幕宽度大于等于1200px,为skyblue
- min-width(从小到大)
- max-width(从大到小)
完整写法
关键词 / 逻辑操作符
and
only
not
媒体类型
媒体类型用来区分设备类型
类型名称 | 值 | 描述 |
---|---|---|
屏幕 | screen | 带屏幕的设备 |
打印预览 | 打印预览模式 | |
阅读器 | speech | 屏幕阅读模式 |
不区分类型 | all | 默认值,包括上述三种 |
媒体特性
特性名称 | 属性 | 值 |
---|---|---|
视口宽高 | width、height | 数值 |
视口最大宽高 | max-width、max-height | 数值 |
视口最小宽高 | min-width、min-height | 数值 |
屏幕方向 | orientation | protrait:竖屏 landscape:横屏 |
外部CSS
1 | <!--实际使用中,通常只写(媒体特性)--> |
Bootstrap
简介
Bootstrap 是由 Twitter 公司(现在应该叫X)开发维护的前端 UI 框架,它提供了大量编写好的 CSS 样式,允许开发者结合一定 HTML 结构及JavaScript,快速编写功能完善的网页及常见交互效果。
中文官网:https://www.bootcss.com/
中文开发文档:https://v5.bootcss.com/docs/getting-started/introduction/
使用步骤
下载
下载:Bootstrap V5中文文档 → 进入中文文档 → 下载 →下载 Bootstrap 生产文件
使用
- 引入 Bootstrap CSS 文件
1 | <link rel="stylesheet" href="./Bootstrap/css/bootstrap.min.css"> |
- 调用类名: container 响应式布局版心类
1 | <div class="container">测试</div> |
栅格系统
作用:响应式布局
栅格化是指将整个网页的宽度分成12等份
,每个盒子占用的对应的份数
例如:一行排4个盒子,则每个盒子占 3份 即可(12 / 4 = 3)
col-*-*
:列(例如:col-xxl-3,表示在xxl的宽度占3份)row
:行,可以让内容在一行排(flex布局)
全局样式
按钮
类名
btn
:默认样式btn-success
:成功btn-warning
:警告- ……
- 按钮尺寸:
btn-lg
/btn-sm
表格
表格类:
table
:默认样式table-striped
:隔行变色table-success
:表格颜色- ……
组件
引入样式表
引入 js 文件
复制结构,修改内容
字体图标
下载
导航 / Extend:图标库 → 安装 → 下载安装包 → bootstrap-icons-1.X.X.zip
使用
- 复制 fonts 文件夹到项目目录
- 网页引入 bootstrap-icons.css 文件
- 调用 CSS 类名(图标对应的类名)
1 | <i class="bi-android2"></i> |