vw和rem适配
rem
概念
- 相对单位
- rem单位是相对于HTML标签的字号计算结果
- 1rem = 1HTML字号大小
- 目前rem布局方案中,将网页等分成10份, HTML标签的字号为视口宽度的 1/10
/* 视口宽度320px,根字号为32px */
@media (width:320px) {
html {
font-size: 32px;
}
}
/* 视口宽度375px,根字号为37.5px */
@media (width:375px) {
html {
font-size: 37.5px;
}
}
- 实现在不同宽度的设备中,网页元素尺寸等比缩放效果
根据视口宽度,设置不同的HTML标签字号
书写代码,尺寸是rem单位
-
确定设计稿对应的设备的HTML标签字号 查看设计稿宽度 → 确定参考设备宽度(视口宽度) → 确定基准根字号(1/10视口宽度)
-
rem单位的尺寸 N * 37.5 = 68 → N = 68 / 37.5 rem单位的尺寸 = px单位数值 / 基准根字号
-
使用flexible js配合rem实现在不同宽度的设备中,网页元素尺寸等比缩放效果
-
flexible.js是手淘开发出的一个用来适配移动端的js框架。
-
可以根据不同的视口宽度给网页中html根节点设置不同的font-size。
-
下载vscode插件 px to rem & rpx (cssrem)
-
配置settings.json文件,添加 "cssrem.rootFontSize": 37.5,
-
重启vscode
vw
概念
-
实现在不同宽度设备中等比缩放的网页效果
-
相对单位
-
相对视口的尺寸计算结果
-
vw:viewport width 1vw = 1/100视口宽度
-
vh:viewport height 1vh = 1/100视口高度
-
vw适配原理
实现在**不同宽度**的设备中,网页元素尺寸等比缩放效果
-
确定设计稿对应的vw尺寸 (1/100视口宽度) 查看设计稿宽度 → 确定参考设备宽度 (视口宽度) → 确定vw尺寸 (1/100 视口宽度)
-
vw单位的尺寸 = px单位数值 / ( 1/100 视口宽度 )
-
vh适配原理
-
确定设计稿对应的vh尺寸 (1/100视口高度) 查看设计稿宽度 → 确定参考设备高度 (视口高度) → 确定vh尺寸 (1/100 视口高度)
-
vh单位的尺寸 = px单位数值 / ( 1/100 视口高度
-
开发中,不会vw和vh混用 ,因为 vh是1/100视口高度,全面屏视口高度尺寸大,如果混用可能会导致盒子变形 。
使用vw单位设置网页元素的尺寸 (vscode)步骤
- 下载vscode插件 px2vw
- 配置settings.json文件,添加 "px2vw.width": 375, 意思是设计稿的宽度 / 10
- 重启vscode
作用
- 实现在不同宽度设备中等比缩放的网页效果
使用vw单位设置网页元素的尺寸 步骤
- 下载vscode插件 px2vw
- 配置settings.json文件,添加 "px2vw.width": 375,
- 重启vscode
rem 和 vw / vh 的区别
| rem | vw/vh |
|---|---|
| 需要不断修改html文字大小 | 省去各种判断和修改 |
| 需要媒体查询media | 将来(马上)趋势 |
| 需要 flexible.js | B站在用 |
使用媒体查询设置差异化CSS样式
-
媒体查询能够检测视口的宽度,然后编写差异化的 CSS 样式
-
当某个条件成立, 执行对应的CSS样式
-
写法
@media (媒体查询) { 选择器 { css属性 } }@media (width:320px) { html { font-size:32px; } }
实战演练笔记
-
图片标签间隙问题解决
给img添加 vertical-align: middle;