vue-cli配置flexible过程详解

yizhihongxing

下面我将为你详细讲解“vue-cli配置flexible过程详解”的完整攻略。

1. 安装依赖

我们需要安装以下依赖:
- postcss-px2rem
- lib-flexible

在vue-cli项目中,使用以下命令安装:

npm install postcss-px2rem lib-flexible --save-dev

2. 配置postcss

在 vue-cli 项目下,新建 /build/postcss.config.js,并写入以下代码:

module.exports = {
  plugins: {
    'postcss-import': {},
    'postcss-url': {},
    'postcss-aspect-ratio-mini': {},
    'postcss-write-svg': { utf8: false },
    'postcss-cssnext': {},
    'postcss-px-to-viewport': {
      viewportWidth: 750,     // 视窗宽度,单位为px
      viewportHeight: 1334,   // 视窗高度,单位为px
      unitPrecision: 3,       // 指定'px'转换为视窗单位值的小数位数(很多时候无法整除)
      viewportUnit: 'vw',     // 指定转换的视窗单位,建议使用vw
      selectorBlackList: ['.ignore', '.hairlines'], // 指定不转换为视窗单位的类名,可以自定义
      minPixelValue: 1,       // 小于或等于'1px'时,不转换为视窗单位
      mediaQuery: false       // 允许在媒体查询中转换'px'
    },
    'postcss-viewport-units':{},
    'cssnano': {
      preset: 'advanced',
      autoprefixer: false,
      'postcss-zindex': false
    }
  }
}

注意:以上代码中 postcss-px-to-viewport 是将 px 转换为 vw,如果要将 px 转换为 rem,使用 postcss-px2rem

3. 引入lib-flexible

main.js 中引入 lib-flexible

import 'lib-flexible/flexible'

4. 添加视窗标记

index.html 中添加视窗参数:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <!-- 添加以下视窗参数,使得在移动端设备上,1px = 1真实像素 -->
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no">
    <meta name="format-detection" content="telephone=no">
    <link rel="stylesheet" href="https://cdn.bootcss.com/font-awesome/4.7.0/css/font-awesome.min.css">
    <title>Vue App</title>
  </head>
  <body>
    <div id="app"></div>
    <!-- built files will be auto injected -->
  </body>
</html>

5. 配置webpack

webpack.base.conf.js 中,找到 module.exports 中的 module,添加 postcss 后置处理器:

const VueLoaderPlugin = require('vue-loader/lib/plugin')
const PostcssFlexbugsFixes = require('postcss-flexbugs-fixes')
// 添加以下代码
const postcssPresetEnv = require('postcss-preset-env')
const postcssAspectRatioMini = require('postcss-aspect-ratio-mini')
const postcssViewportUnits = require('postcss-viewport-units')
const postcssPxToViewport = require('postcss-px-to-viewport')

module.exports = {
  // ...
  module: {
    rules: [
      // ...
      {
        test: /\.vue$/,
        loader: 'vue-loader',
        options: {
          // ...
          // 可以在这里添加 postcss
          postcss: [
            PostcssFlexbugsFixes(),
            postcssPresetEnv({
              autoprefixer: {
                grid: true,
                flexbox: 'no-2009'
              },
              stage: 3
            }),
            postcssAspectRatioMini(),
            postcssPxToViewport({
              viewportWidth: 750,
              viewportHeight: 1334,
              unitPrecision: 3,
              viewportUnit: 'vw',
              selectorBlackList: ['.ignore', '.hairlines'],
              minPixelValue: 1,
              mediaQuery: false
            }),
            postcssViewportUnits()
          ],
          // ...
        }
      },
      // ...
    ]
  },
  plugins: [
    new VueLoaderPlugin()
  ]
}

示例说明

示例1

假设现在有一个设计稿为750px*1334px的页面,需要在移动端上显示。我们可以将页面宽度设置为100vw(视窗宽度的1倍),高度设置为 1334/750 * 100vw,这样就可以保证在移动端上宽高比与设计稿一致,如下所示:

.page {
  width: 100vw;
  height: 177.87vw; /* 1334/750 * 100vw */
  background-color: #fff;
}

使用上述方法可以很好的适配不同设备的屏幕。

示例2

假设现在有一个需求,页面上有一个字体大小为20px的标题,“七年之痒”,在移动端上需要相对于设计稿缩小三倍,因为视觉上感觉20px太大了。可以使用 postcss-px-to-viewport 将 px 转换成视窗相对单位,例如将20px转换为20vw/3,如下所示:

.title {
  font-size: 6.67vw; /* 20 / 3 vw */
  font-weight: bold;
  color: #333;
}

这样就可以在移动端上以视觉上适合的字体大小进行显示了。

以上就是完整的“vue-cli配置flexible过程详解”的攻略。希望能对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vue-cli配置flexible过程详解 - Python技术站

(0)
上一篇 2023年6月11日
下一篇 2023年6月11日

相关文章

  • JavaScript快速实现一个颜色选择器

    下面是详细的“JavaScript快速实现一个颜色选择器”的完整攻略。 1. 确定需求和界面设计 首先,需要明确颜色选择器的设计和功能需求,例如需要支持颜色选择、输入、预览等功能。然后设计对应的界面和交互方式,可以参考其他网站或者UI库,也可以自己设计。 2. HTML和CSS搭建网页骨架和样式 在HTML中添加颜色选择器所需的元素,例如输入框、调色板、预览…

    css 2023年6月9日
    00
  • 小影怎么删除视频?小影app删除我发布的视频方法介绍

    小影怎么删除视频?小影app删除我发布的视频方法介绍 如果您想删除在小影app中发布的视频,可以按照以下步骤操作: 打开小影app并登录您的账户,进入主页。 点击主页下方的“我的”选项,进入个人中心页面。 在个人中心页面中,您可以看到发布的视频列表。选中您想要删除的视频,点击视频下方的删除按钮。 在弹出的提示框中,确认删除操作。 删除成功后,该视频将不再在小…

    css 2023年6月11日
    00
  • 企业网站建设之企业网站易用性分析

    那我就来为你详细讲解一下“企业网站建设之企业网站易用性分析”的完整攻略。 一、什么是企业网站易用性分析? 企业网站易用性分析是指通过对企业网站的用户体验和用户操作行为进行分析,总结出网站易用性问题点,并提出相应的改善策略和建议,以提高用户对企业网站的黏性和满意度。 二、如何进行企业网站易用性分析? 根据不同用户群体制定用户调研方案,对用户的需求、习惯和行为进…

    css 2023年6月9日
    00
  • CSS 优先级问题详解

    下面我来详细讲解一下 CSS 优先级问题。 什么是 CSS 优先级 CSS 优先级是指决定 CSS 样式应用顺序的一个规则,当多个 CSS 样式同时作用于同一个 HTML 元素时,浏览器根据优先级的规则来决定哪一个样式将被应用在该元素上。 CSS 优先级规则 CSS 优先级规则是由一组样式选择器和各个选择器的权重值来组成的,它们的优先级由高到低分别如下: !…

    css 2023年6月9日
    00
  • CSS3实现10种Loading效果

    CSS3实现10种Loading效果具体实现过程如下: 第一步:HTML结构 先在HTML中定义一个包含所有Loading效果的div容器,然后为每个效果定义一个独立的div。如下所示: <div class="loading-container"> <!– 第一种效果 –> <div class=&qu…

    css 2023年6月10日
    00
  • Bootstrap每天必学之日期控制

    Bootstrap每天必学之日期控制 日期控制是Web开发中必不可少的组件之一,Bootstrap也提供了强大的日期控制功能。本篇文章将深入探讨Bootstrap的日期控制功能,让您可以轻松掌握这个组件。 1. 导入日期控制组件 在Bootstrap中,日期控制组件需要依赖bootstrap-datepicker.js和bootstrap-datepicke…

    css 2023年6月9日
    00
  • css3弹性盒模型实例介绍

    针对“CSS3弹性盒模型实例介绍”的完整攻略,我将从以下几个方面进行详细的讲解: 弹性盒模型的概念和基本用法 弹性容器和弹性项目的属性详解 弹性盒模型实例说明 弹性盒模型的概念和基本用法 弹性盒模型(Flexbox)是CSS3新引入的一种页面布局模型,它的主要作用是实现页面中的各种自适应布局。使用弹性盒模型的好处在于,可以自定义容器中各个项目的排列方式和大小…

    css 2023年6月10日
    00
  • 设置div的z-index属性让div在另外一个div之上

    在网页设计中,我们经常需要设置 div 元素的 z-index 属性,以控制其在另一个 div 元素之上的显示顺序。下面是一个完整攻略,包含了如何使用 CSS 设置 div 元素的 z-index 属性的过程和两个示例说明。 CSS 如何设置 div 元素的 z-index 属性 我们可以使用 CSS 的 z-index 属性来设置 div 元素的层叠顺序。…

    css 2023年5月18日
    00
合作推广
合作推广
分享本页
返回顶部