之前自己接了个项目 PC+移动端 自动适配显示,因为手机端需要自适应,pc也是需要自适应

项目里 PC用的1920px,移动端用的375px,使用媒体查询适配显示

一、环境

使用lib-flexible,为html上添加 动态的font-size(屏幕宽度/10),根据宽度而变化
例如浏览器宽度为750px,则会自动设置为75px, 1rem就=75px

使用postcss-pxtorem,自动将css的px转成rem,

两个插件配合使用, 就能做到自适应大小

二、步骤

2.1 安装 lib-flexible

npm install lib-flexible --save-dev

2.2 引入 lib-flexible

main.js中引入lib-flexible

// px2rem 自适应
import 'lib-flexible'

2.3 安装 postcss-pxtorem

npm install postcss-pxtorem --save-dev

2.4 配置postcss-pxtorem

在项目根目录新建文件vue.config.js,然后如下配置:

注意脚手架不同,postcss版本也会不同,配置方法会有些许差异,不然会报错!!

vue脚手架4用的(vue-cli@4)

// 适配不同屏幕
const autoprefixer = require('autoprefixer'); //根据浏览器适配css,自动加前缀,不用可以删除
const pxtorem = require('postcss-pxtorem');
module.exports = {//postcss-pxtoremcss: {loaderOptions: {css: {},postcss: {plugins: [autoprefixer(),pxtorem({rootValue: 37.5,  //手机设计稿宽度为375px的propList: ['*'], //属性的选择器,*表示通用exclude: /web/i, //忽略web下的所有文件selectorBlackList: ['.a-'] // 过滤掉.a- 开头的class,不进行rem转换}),]}}},
};

vue脚手架5用的(vue-cli@5)

// 适配不同屏幕
const autoprefixer = require('autoprefixer'); //根据浏览器适配css,自动加前缀,不用可以删除
const pxtorem = require('postcss-pxtorem');
module.exports = {//postcss-pxtoremcss: {loaderOptions: {css: {},postcss: {postcssOptions: {plugins: [autoprefixer(),pxtorem({rootValue: 37.5,  //手机设计稿宽度为375px的propList: ['*'], //属性的选择器,*表示通用exclude: /web/i, //忽略web下的所有文件selectorBlackList: ['.a-'] // 过滤掉.a- 开头的class,不进行rem转换}),]}}}},
};

如果想ios,ipad,iPod设备无效

// 在index.html中添加如下代码
<script>/(pad|pod|iPad|iPod|iOS)/i.test(navigator.userAgent)&&(head=document.getElementsByTagName('head'),viewport=document.createElement('meta'),viewport.name='viewport',viewport.content='target-densitydpi=device-dpi, width=480px, user-scalable=no',head.length>0&&head[head.length-1].appendChild(viewport));
</script>

2.5 配置pc自适应

修改flexble.js,(npm安装的位置在node_modules/lib-flexble/),建议拉出来单独引用

修改前:

function refreshRem(){var width = docEl.getBoundingClientRect().width;if (width / dpr > 540) {width = 540 * dpr;}var rem = width / 10;docEl.style.fontSize = rem + 'px';flexible.rem = win.rem = rem;
}

修改后:

function refreshRem(){var width = docEl.getBoundingClientRect().width;if (width / dpr > 770) { //大于770像素时,改变自适应策略,改成手机设计稿大小width = width * dpr / 5.12; //520改成width 以pc上也能自适应// 5.12(pc设计稿除以手机,1920/350=5.12),如果只写电脑 就不需要加//因为rem设置的是手机的设计稿换算的,只能在font-size上动手脚}var rem = width / 10;docEl.style.fontSize = rem + 'px';flexible.rem = win.rem = rem;}

三、运行测试

vue PC+移动端 自适应布局相关推荐

  1. vue移动端自适应布局

    vue移动端自适应布局 根据postcss-pxtorem来实现自动渲染px至rem,不用再进行手动计算 一.实现方式 postcss-pxtorem:将px转换为rem: amfe-flexible ...

  2. 移动端自适应布局和响应式页面兼容移动端布局

    上篇博客讲到了移动端的常用布局模式之一:Flex布局,这篇博客咱们来了解一下移动端的另外两种布局--移动端自适应布局和响应式页面兼容移动端布局. 目录 一.移动端自适应布局 1.rem 什么是rem ...

  3. js页面自适应屏幕大小_移动端自适应布局方法的calc()与vw

    前端人员在处理移动端自适应布局时,目前前端最流行的方法应该就是使用媒体查询,来设置HTML的字体大小,然后用rem为单位对Dom的宽高进行设置,这个方法的优势在于兼容性方面很好,劣势则在于当前市场上不 ...

  4. html5 自适应手机布局,科技常识:html5移动端自适应布局的实现

    今天小编跟大家讲解下有关html5移动端自适应布局的实现 ,相信小伙伴们对这个话题应该有所关注吧,小编也收集到了有关html5移动端自适应布局的实现 的相关资料,希望小伙伴们看了有所帮助. 场景:为适 ...

  5. vue pc移动页面自适应

    自适应布局 * @midea 媒体布局 * flex 布局 * %百分比布局 * rem 布局 * vw.vh 布局 局部自适应 接手他人的项目,把某个页面改为自适应的,若用插件,就要动配置文件,导致 ...

  6. 移动端 自适应布局方案

    文章目录 DPR rem布局 实现机理 优点 缺点 相关技术方案 viewport 布局 优点 缺点 相关技术方案 媒体查询+等比缩放原理 DPR DPR = 设备物理像素 / CSS像素 DPR = ...

  7. php 网站移动端自适应,HTML5 移动端自适应布局

    场景:为适应各种大小的屏幕 自适应布局我知道的两种方式 1.使用媒体查询,下面制定了几种适应方式,例如第一个表示屏幕宽度在320px-360px之间的,html字体大小适配为13.65px @medi ...

  8. h5移动端自适应布局

    场景:为适应各种大小的屏幕 自适应布局我知道的两种方式 1.使用媒体查询,下面制定了几种适应方式,例如第一个表示屏幕宽度在320px-360px之间的,html字体大小适配为13.65px <s ...

  9. VUE 移动端自适应布局终极解决方案

    大佬们欲知详情看看这个 https://github.com/imochen/hotcss 引入px转rem插件 https://www.npmjs.com/package/px2rem-loader ...

最新文章

  1. java data使用_@Data注解详解及使用方法-Fun言
  2. php如何编写应用程序,编写安全 PHP 应用程序的七个习惯
  3. python如何读取公共盘的文档_如何使用 Sphinx 给 Python 代码写文档 | Linux 中国
  4. JAVAWEB项目--模拟考试系统需求(一)
  5. 判断客户端是电脑还是手机
  6. 高并发、低延迟之C#玩转CPU高速缓存(附示例)
  7. ARM, MIPS, Power PC
  8. 如何处理 Kubeadm 搭建的集群证书过期问题
  9. hibernate 并发获取session失败 空指针_高并发之|通过ThreadPoolExecutor类的源码深度解析线程池执行任务的核心流程...
  10. Qt 人类可读大小 quint64字节转可读字符串 “1.1 GB“
  11. 2014年软件评测师真题精选
  12. 检查网络是否畅通的四个步骤
  13. MSG_OOB MSG_PEEK
  14. VulnHub系列之Lampiao渗透测试
  15. 【力扣3题】快乐数有效的字母异位词字符串中的单词数
  16. 设计模式—单例模式(饿汉式、懒汉式)
  17. python 网页爬虫nike_python网络爬虫-爬取网页的三种方式(1)
  18. 145页6万字政务大数据交换共享平台建设方案
  19. SuperZero gero同步区块进度可视化
  20. 普元 AppServer 6.5 哑安装后执行启动命令./startup.sh后启动失败

热门文章

  1. 全能程序员系列(3)-安装Windows Server 2012操作系统
  2. KUBO编程将惊艳亮相2020迪拜世博会
  3. 手机HCI日志抓取教程
  4. 机动目标跟踪—匀速转弯CT模型/匀速圆周运动
  5. 简单修改PPT中剪贴画颜色的
  6. VB.NET视频总结——基础篇
  7. windows下浏览器网页视频下载方法
  8. 写给前端的 K8S 上手指南
  9. caffe net.blobs: net.params作用
  10. 电脑连手机热点偷跑流量