vue-cli配置flexible过程详解

下面我将为你详细讲解“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日

相关文章

  • css实现弹窗上下左右居中且背景透明锁定窗口效果

    下面是详细的攻略,过程中会有两个示例说明。 首先,要实现弹窗上下左右居中,我们需要在css中使用绝对定位和transform属性来控制它的位置。代码如下: .modal { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); } 这里,我们使用position:fix…

    css 2023年6月9日
    00
  • js实现花俏的转动、旋转之后慢慢张开的窗口特效

    下面我将为你详细讲解“js实现花俏的转动、旋转之后慢慢张开的窗口特效”的完整攻略。 首先,我们需要明确的是该效果涉及到的三个主要特效,分别为旋转、缩小展示、弹性放大展示。因此,我们需要针对这三个特效分别进行设计和实现。 1.旋转特效 对于旋转特效,我们可以使用css3中的transform属性实现。代码如下: .box{ width: 200px; heig…

    css 2023年6月10日
    00
  • 原生javascript实现简单的datagrid数据表格

    请看下面的攻略: 一、什么是DataGrid数据表格 DataGrid数据表格是Web应用程序中常见的一种显示和编辑数据的方式。它通常由多个数据列和若干行组成,每一个单元格可以编辑文本、选项、日期等不同类型的数据。 二、实现DataGrid数据表格的基本思路 我们可以借助HTML的<table>标签来实现数据表格的显示和基本布局,然后用原生Jav…

    css 2023年6月10日
    00
  • CSS3结构性伪类选择器九种写法

    CSS3结构性伪类选择器可以根据元素在结构中的位置进行选择。在本文中,我将详细讲解CSS3结构性伪类选择器九种写法,并提供两个实际的示例来说明其用法。 1. :first-child 该选择器选取父元素的第一个子元素。 示例代码: <ul> <li>第一个</li> <li>第二个</li> &lt…

    css 2023年6月9日
    00
  • jquery如何改变html标签的样式(两种实现方法)

    想要使用 jQuery 改变 HTML 元素的样式,需要使用 css() 方法。这个方法可以帮助我们改变元素的内联样式,也可以修改嵌入样式表或外部样式表中的规则。总体来说,可以通过两种方式来改变 HTML 标签的样式。下面就详细介绍这两种实现方法。 一、使用 .css() 方法 使用 jQuery 的 .css() 方法可以轻松地改变 HTML 元素的样式。…

    css 2023年6月10日
    00
  • WordPress中自定义后台管理界面配色方案的小技巧

    下面是WordPress中自定义后台管理界面配色方案的完整攻略,包括以下内容: 确定需要修改的样式 首先,我们需要确定需要修改的样式,才能针对性地进行修改。在WordPress后台管理界面中,有许多不同的元素,如导航菜单、顶部工具栏、文章列表、插件列表等等。我们需要根据实际需求,选择需要修改的元素。 创建一个新的配色方案 在WordPress中,我们可以通过…

    css 2023年6月9日
    00
  • vue中(el-button的五种类型,三种css格式)

    当我们在Vue项目中使用Element UI组件库时,会经常使用到el-button这个按钮组件。它有五种不同类型:primary、success、warning、danger和info,分别代表不同的状态,可根据需求进行选择。 除了类型之外,el-button 同时支持三种 css 格式:默认、朴素和圆形。其中默认格式带有边框和背景色,朴素格式仅有文字而无…

    css 2023年6月9日
    00
  • css浮动 float属性详解

    CSS浮动float属性详解 什么是CSS浮动float? CSS浮动(float)是一种布局方式,可以在网页中实现元素的多列布局以及图片与文字环绕等效果。使用浮动属性可以将元素沿着父元素左侧或者右侧移动,直到遇到父元素的边框或其他浮动元素的边框为止。 如何使用CSS浮动float? 在CSS中,我们可以使用float属性来实现浮动布局。其语法如下: sel…

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