Gyh's blog

vuePress-theme-reco gyh    2022
Gyh's blog Gyh's blog

Choose mode

  • dark
  • auto
  • light
Home
Category
  • Algorithm
  • CSS
  • JavaScript
  • Others
  • Server
  • Utils
  • Article
  • Note
  • Git
  • Npm
  • Standard
  • Summary
Tag
Timeline
About
GitHub
author-avatar

gyh

91

Article

11

Tag

Home
Category
  • Algorithm
  • CSS
  • JavaScript
  • Others
  • Server
  • Utils
  • Article
  • Note
  • Git
  • Npm
  • Standard
  • Summary
Tag
Timeline
About
GitHub

移动端适配

vuePress-theme-reco gyh    2022

移动端适配

gyh 2018-09-09 css移动端适配

lib-flexxble 适配方案现已废弃,新方案参考 https://www.jianshu.com/p/1f1b23f8348f 需要注意 Viewport Units Buggyfill 还提供了其他的功能。详细的这里不阐述了。但是 content 也会引起一定的副作用。比如 img 和伪元素::before(:before)或::after(:after)。在 img 中 content 会引起部分浏览器下,图片不会显示。这个时候需要全局添加:

img {
  content: normal !important;
}
1
2
3

lib-flexxble 一、项目中安装 lib-flexible

npm install lib-flexible --save
1

二、在项目的入口 js 文件中引入 lib-flexible

import 'lib-flexible'
1

三、使用 px2rem-loader 自动将 css 中的 px 转换成 rem 安装 px2rem-loader

npm install px2rem-loader --save-dev
1

配置 px2rem-loader 1.打开 build/utils.js 文件,找到 exports.cssLoaders 方法,在里面添加如下代码

const px2remLoader = {
    loader: 'px2rem-loader',
    options: {
      remUint: 75
    }
}
1
2
3
4
5
6

2.修改 generateLoaders 方法中的 loaders

// 注释掉这一行
// const loaders = options.usePostCSS ? [cssLoader, postcssLoader] : [cssLoader]
1
2
// 修改为
const loaders = [cssLoader, px2remLoader]
if (options.usePostCSS) {
  loaders.push(postcssLoader)
}
1
2
3
4
5

然后重新 npm run dev,打开控制台可以看到代码中的 px 已经被转成了 rem

注意: 1.此方法只能将.vue 文件 style 标签中的 px 转成 rem,不能将 script 标签和元素 style 里面定义的 px 转成 rem  2.如果在.vue 文件 style 中的某一行代码不希望被转成 rem,只要在后面写上注释 /_ no_/就可以了

Edit on GitHub~
LastUpdated: 5/17/2022, 8:59:22 AM