rem结合媒体查询适配的vue项目(PC端和移动端共用一套代码) 您所在的位置:网站首页 vue做移动端项目和flutter做移动端哪个好 rem结合媒体查询适配的vue项目(PC端和移动端共用一套代码)

rem结合媒体查询适配的vue项目(PC端和移动端共用一套代码)

2024-01-25 03:02| 来源: 网络整理| 查看: 265

一、前言

上周四接到了一个简单的纯前端网页的项目,我用了三天时间已经开发并且部署完毕(为了实现快速简易部署,使用了gitee pages进行部署,这篇文章记录我使用gitee pages部署的详细过程)。这个展示页要求在PC端和移动端双场景使用,但是由于页面简单,为了简单起见,我采用rem结合媒体查询适配开发一套代码来实现这个场景要求。

二、实现结合媒体查询的rem适配 2-1、rem布局 2-1-1、什么是rem

rem是CSS3新增的一个相对单位(root em,根em),这个单位与em有什么区别呢?区别在于使用rem为元素设定字体大小时,仍然是相对大小,但相对的只是HTML根元素。通过它既可以做到只修改根元素就成比例地调整所有字体大小,又可以避免字体大小逐层复合的连锁反应。目前,除了IE8及更早版本外,所有浏览器均已支持rem。对于不支持它的浏览器,应对方法也很简单,就是多写一个绝对单位的声明。这些浏览器会忽略用rem设定的字体大小——摘自“菜鸟教程”

2-1-2、rem举例 p {font-size:14px; font-size:.875rem;} 2-1-3、rem应用

由这个单位的介绍可推出rem的使用,通过动态修改根元素html标签的font-size以px为单位的数值来实现采用了rem单位的元素的相对页面大小,具体操作请继续阅读。

2-2、媒体查询 2-2-1、什么是媒体查询

使用 @media 查询,你可以针对不同的媒体类型定义不同的样式。@media 可以针对不同的屏幕尺寸设置不同的样式,特别是如果你需要设置设计响应式的页面,@media 是非常有用的。当你重置浏览器大小的过程中,页面也会根据浏览器的宽度和高度重新渲染页面。——摘自“菜鸟教程”。

2-2-2、媒体查询举例 // 如果文档宽度小于 300 像素则修改背景颜色(background-color): @media screen and (max-width: 300px) { body { background-color:lightblue; } } 2-2-3、媒体查询应用

媒体查询@media有几个CSS3 多媒体类型,有需要的话,大家可以参考上个链接去了解。常用的是屏幕尺寸,即screen这个类型(如2-2-2中的例子)。 结合你的具体需求将设备的屏幕划分为几个“档次”,来实现在不同的设备屏幕尺寸下显示不同的页面效果。使用媒体查询意味着CSS的代码量有所增加。

2-3、媒体查询结合rem实现PC端和移动端共用一套代码的适配方案 2-3-1、使用VS Code进行代码开发

当然,你也可以使用别的方式计算px和rem的对应数值,我只是提供一种比较简单的方法供大家参考。 VS Code有大量好用的插件,比如这次要用的一个你设定好的单位,你写px值,这个插件帮助你计算rem值,你只需要进行选择即可。插件名是:px to rem & rpx (cssrem),使用图解: 1、打开设置 在这里插入图片描述 2、根据你在不同规格的媒体查询,设置每个屏幕尺寸“档”的初始html的font-size的值: 在这里插入图片描述 设置好之后直接关闭它自动保存并作为当下的计算依据。

2-3-2、区分PC端和移动端

因为UI给了一版PC端的设计图和一版移动端(750px)的设计图,我默认屏幕的宽度大于750px的都用PC的这版图,750px及以下是移动端。 1、使用媒体查询“识别”移动端:

/* PC端的CSS样式代码 */ @media screen and (max-width: 750px) { /* 移动端的CSS样式代码 */ }

2、动态修改当下html跟标签的font-size的js代码:

... mounted () { this.rem() // 动态监听屏幕尺寸变化从而修改font-size window.onresize = () => { this.rem() } }, methods: { // 动态修改font-size rem () { const docEl = document.documentElement window.rem = docEl.getBoundingClientRect().width / 24 docEl.style.fontSize = window.rem + 'px' } } ... 三、说明

参考链接: 菜鸟教程

欢迎大家一起讨论、学习



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有