一、前言

上周四接到了一个简单的纯前端网页的项目,我用了三天时间已经开发并且部署完毕(为了实现快速简易部署,使用了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、使用媒体查询“识别”移动端:

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

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

<script>
...
mounted () {this.rem()// 动态监听屏幕尺寸变化从而修改font-sizewindow.onresize = () => {this.rem()}},
methods: {// 动态修改font-sizerem () {const docEl = document.documentElementwindow.rem = docEl.getBoundingClientRect().width / 24docEl.style.fontSize = window.rem + 'px'}
}
...
</script>

三、说明

参考链接:
菜鸟教程

欢迎大家一起讨论、学习

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

  1. 移动端适配+响应式布局+从设计图到CSS(rem+viewport+媒体查询+Sass)

    转自:https://www.cnblogs.com/gymmer/p/6883063.html 根据UI图对移动端的h5页面做样式重构,是前端工程师的本职工作,看似简单,不过想做好却并不容易.下面总 ...

  2. 使用chatgpt工具实现媒体查询适配各大厂商手机

    本文目的: 使用chatgpt工具实现媒体查询适配各大厂商手机,根据不同的尺寸显示不同颜色的文字 实验过程: 1.先查询各大手机厂商存在哪些手机尺寸机型 华为手机有多种型号和尺寸,以下是其中一些主要的 ...

  3. 媒体查询适配不同分辨率应用

    媒体查询适配不同分辨率应用 <meta charset="UTF-8" /> <meta name="renderer" content=&q ...

  4. 媒体查询适配代码 适配IOS等各类机型

    媒体查询适配代码,适配IOS等各类机型,可按需取用 /*屏幕分辨率比大于2*/ @media screen and (min-aspect-ratio: 200/100) { } /*屏幕分辨率比大于 ...

  5. Vue项目pc端适配方案(scss)

    前言:vue项目适配可借助于插件lib-flexible 和postcss-px2rem. lib-flexible插件的作用:根据屏幕尺寸不同设置html根标签的字体大小,1rem即等于根标签的字体 ...

  6. vscode使用rem、媒体查询@media(图文详解,代码展示)

    rem适配布局 一.rem单位 ​ em是相对于父元素的字体大小来说的,例:父亲的font-size:10px,孩子的width:10em表示是100px: ​ rem是相对于html的字体大小,例: ...

  7. CSS3 @media媒体查询 适配不同尺寸设备的响应式布局(清晰详解)

    随着宽屏的不断普及,CSS3出现了@media媒体查询技术 一.了解@Media 相关知识 1.了解Media Queries Media Queries能在不同的条件下使用不同的样式,使页面在不同在 ...

  8. 前端移动端适配 - 媒体查询适配方案

    背景 工作中难免会有写静态页面的需求,有时候移动端适配真的是做的心累,如果自己新做一个页面倒还好,整体布局会按照自己习惯来,但有时候不得不修改别人的代码,尤其是别人没适配好的代码,找样式以及命名规范等 ...

  9. html5移动端开发(rem和媒体查询@media)

    css下:index.css @charset "utf-8"; body,ol,ul,li,h1,h2,h3,h4,h5,h6,p,th,td,dl,dd,form,fields ...

最新文章

  1. 顺序表-有序顺序表表示集合-并集(两者比较,小者放入C,未遍历继续放入)
  2. 大道至简 23种模式一点就通
  3. 快速搭建基于 Serverless 的 .NET Core 数据库应用
  4. PM应该找哪些副业?
  5. Java基础之String,StringBuilder,StringBuffer三者的区别
  6. androidstudio新建项目中在布局文件中不显示title的方法
  7. [leetcode] N-Queens II
  8. Linux memcached
  9. SQLAlchemy Mapping Class Inheritance Hierarchies
  10. 【已解决】输入mysqld -install时报错Install/Remove of the Service Denied
  11. python编程案例教程-Python程序开发案例教程
  12. 怎么在Mac上格式化USB驱动器
  13. 2013年云计算发展展望:混合云即将起飞
  14. android手机常用浏览器,Android平台三款手机浏览器对比评测
  15. jpg格式电脑怎么弄_电脑上图片改为jpg格式方法_照片怎么改为jpg格式-win7之家
  16. 机器学习中的数学——距离定义(二十四):F-散度(F-Divergence)
  17. 捋一捋Python中的数学运算math库之三角函数
  18. Ubuntu快速安装或更新chrome
  19. 跟着小马哥学系列之 Spring AOP(AbstractAutoProxyCreator 详解)
  20. Wifi的密码长度有何限制

热门文章

  1. NUCLEO下载程序报错+调试经验
  2. java编写 超简易贪吃蛇
  3. dockerfile与docker-compose的区别
  4. C的几个小程序和概念(常见操作)(中)
  5. 机器学习里面的Ground Truth是什么意思
  6. 文案网站丨搞定你的写作难题
  7. 设计一个汽车类Auto,其中包含一个表示速度的double型成员变量speed和表示启动的start0方法、表示加速的speedUp()方法以及表示停止的stop()方法。
  8. web渗透-------信息收集
  9. 多表查询,字段名重复问题解决
  10. 电脑怎么录屏带声音?录屏软件哪个好?