💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
[toc] # 页面适配 页面适配:页面能够随着浏览器尺寸的变化,而内容也跟着放和缩小。 ## 实现方案 最常用的两种方案: 1. rem + flexible.js 2. 使用 vw 和 vh 做为单位 ## 方案一、rem + flexible.js ### 流程: 1. 先确定效果图在设计时使用的尺寸标准是多少 一般情况下,手机端都是 750px 为标准设计的。 2. 引入 flexible.js 这个包 2.1 下载包 [https://github.com/amfe/lib-flexible](https://github.com/amfe/lib-flexible) 2.2 页面中引入 3. 页面中使用 rem 做为单位 3.1 可以使用 vscode 安装 `cssrem` 插件 3.2 配置这个插件的基准值 ![](https://img.kancloud.cn/a8/56/a856caa4d55edb40e6310085729224e0_1088x1000.png) ![](https://img.kancloud.cn/66/35/66351393763934939e1fadb0a2885e65_1216x1002.png) 重启 vscode 3.3 当我们在 vscode 中写 px 单位时自动会转成 rem ![](https://img.kancloud.cn/e3/25/e325714a346066997c9af4a7250d6058_862x344.png) ### 原理 1. rem 到底是什么? rem 的含义:html(根标签) 标签的 font-size 的倍数。 比如: ~~~ // 设置 html 的 font-size 为 30px html { font-size: 30px; } p { width: 2rem; // 60px } ~~~ 2. 监听浏览器尺寸的变化,变化时修改 html 中 font-size 的值,这样整个页面中 rem 的值对应改变 ~~~ @media screen and (max-width: 1024px) { html { font-size: 12px; } } @media screen and (min-width: 1024px and max-width: 2920px) { html { font-size: 20px; } } ... ~~~ 以上就是实现原理:通过媒体查询来监听浏览器的尺寸变化 ,为不同的尺寸设置不同的 font-size 以改变整个页面的 rem 的值。 为了能够随着浏览器改变,我们还需要编写媒体查询的代码,为了简化,我们可以直接引入 `flexible.js` 这个包,这个包会自动帮我们监听浏览器的尺寸,相应的修改 html 中 font-size 的值,这样我们就不用自己写媒体查询了。 ![](https://img.kancloud.cn/50/28/502836d6783a3be36c24a5d2324c4378_1482x732.png) ## 方案二、vw 和 vh vw 和 vh 是新出的两个单位。1vw = 屏幕的尺寸的 1%。 ~~~ p { width: 5vw; // 屏幕宽度的 5% height: 5%; // 父元素高的 5% } ~~~ 流程: 1. 确定设计稿在设计时使用的基准值(一般,手机端是 750 px) 2. 在 vscode 中安装 `px2vw` 插件 3. 配置这个插件 ![](https://img.kancloud.cn/7d/ef/7def11a1237fda4e609caccd6cc16008_858x1102.png) ![](https://img.kancloud.cn/3e/61/3e613760ce4f186c0a12a1375f4a58d1_960x430.png) 重启一下 4. 页面中使用 px 时自动会弹出 对应的 vw 和 vh ![](https://img.kancloud.cn/2f/bf/2fbfa1e56d0366bef73b679c84f284a9_1200x320.png)