从零开始在vue-cli4配置自适应vw布局的实现

下面是关于从零开始在vue-cli4配置自适应vw布局的实现的完整攻略:

什么是vw布局

vw布局是CSS3的新单位,可以让网页元素大小随屏幕大小按比例缩放,在不同尺寸的屏幕上保持一致的排版效果。

1vw等于视口宽度的1%,它的特点是随着屏幕宽度的改变而比例缩放,所以可以根据屏幕渲染成不同尺寸的布局效果。

具体实现步骤

在vue-cli4中配置vw布局主要涉及到以下几步:

1. 安装postcss-px-to-viewport插件

在vue-cli4的项目中,需要安装postcss-px-to-viewport插件,把px自动转换成vw。

npm install postcss-px-to-viewport -D

2. 配置postcss.config.js

在项目根目录下创建postcss.config.js文件,并配置插件信息。

module.exports = {
  plugins: {
    'postcss-px-to-viewport': {
      viewportWidth: 375,  // 视窗的宽度,对应设计稿的宽度(750)
      viewportHeight: 667, // 视窗的高度,对应设计稿的高度(也可以不配置)
      unitPrecision: 3,     // 指定`px`转换为视窗单位值的小数位数
      viewportUnit: 'vw',   // 指定需要转换成的视窗单位,建议使用vw
      selectorBlackList: ['.ignore', '.hairlines'],  // 指定不转换为视窗单位的类名,可以自定义
      minPixelValue: 1,      // 小于或等于`1px`不转换为视窗单位
      mediaQuery: false      // 允许在媒体查询中转换`px`
    }
  }
}

配置完成后,就可以愉快的使用vw来布局了。

3. 示例说明

示例一:

假设设计稿的宽度为750px,下面是一个div元素的样式:width: 100px; height: 100px; background-color: green;

默认情况下是用px作为单位的,那么这个div在屏幕上的大小是固定的,如果屏幕宽度发生改变,那么这个div的大小也不会发生变化,会导致排版效果不佳。

如果我们按照上面的配置步骤进行vw转换,那么这个div的样式应该是:width: 13.333vw; height: 13.333vw; background-color: green;

这样就可以做到自适应屏幕,保持布局效果了。

示例二:

在实际项目中,需要在某些场景下禁用vw转换。比如border、box-shadow等样式。可以在对应的样式类名后添加.ignore类名,如下所示:

.border {
  border: 1px solid #000;
}

.ignore.border {
  border: 1px solid #000 !important;
}

这样在模板中使用.border类名时会自动转换为vw,而忽略掉.ignore.border中的border转换,保持原样式大小。

总结

通过以上步骤,我们就可以在vue-cli4项目中完成自适应vw布局的配置,并且,我们还可以通过.debug { border: 1px solid red !important; }这个类名来方便的查看转换后的vw尺寸。

需要注意的是,vw布局只在较新版本的浏览器中支持,需要使用autoprefixer插件来自动添加CSS前缀以保证兼容性。

希望以上攻略能够帮助到你。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:从零开始在vue-cli4配置自适应vw布局的实现 - Python技术站

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

相关文章

  • HTML属性的概念和使用

    HTML属性是在HTML标签中定义的特性,用于控制标签的行为和外观。在HTML中,使用属性为HTML元素添加各种特性,以控制它们的行为和样式。HTML属性按照标准HTML规范来定义,通常是成对出现的,包含属性名和属性值两部分。 以下是HTML属性的使用攻略和给出代码示例: 基本属性的使用 最常用的属性是id和class,id应该是唯一的,在文档中只能出现一次…

    Web开发基础 2023年3月15日
    00
  • 微信小程序使用uni-app实现首页搜索框导航栏功能详解

    下面是“微信小程序使用uni-app实现首页搜索框导航栏功能详解”的完整攻略。 前言 本攻略介绍了如何在微信小程序中使用uni-app框架实现首页搜索框导航栏功能。其中,搜索框和导航栏都是uni-app提供的基础组件,通过二次开发和调整可以实现需要的效果。本攻略分为以下几个步骤: 创建uni-app项目 修改App.vue 创建searchBar.vue组件…

    css 2023年6月10日
    00
  • 浅析CSS :is() 和 :where() 即将出现在浏览器中

    概述 在CSS4 Selector Level 4 规范中, :is() 和 :where() 伪类将被正式引入到浏览器中。这两个伪类都可以用来简化CSS选择器的书写,提高选择器的复用性。其中,:is() 和 :where() 功能类似,但也有细微差异。 :is() 伪类 对于复杂的选择器,我们经常需要嵌套或者使用逗号分隔不同的选择器。 :is() 可以让我…

    css 2023年6月9日
    00
  • webpack项目轻松混用css module的方法

    下面是关于“webpack项目轻松混用css module的方法”的详细攻略。 什么是CSS Module? CSS Module 是一种用于应对 CSS 样式作用域相互污染的方案,在 css-loader 中提供了对 CSS Module 的支持。通过 CSS Module,我们可以将 CSS 样式文件的类名等变量转换为局部作用域的值,从而实现组件级别的样…

    css 2023年6月10日
    00
  • CSS教程之CSS盒模型

    下面是关于“CSS盒模型”的完整攻略: 什么是CSS盒模型? 盒模型是一种在CSS中用来确定元素布局的框架。元素的盒子(box)由内容区域、内边距(padding)、边框(border)和外补白(margin)组成。CSS盒模型包括两种不同的结构:W3C盒模型和IE盒模型,其中W3C盒模型是CSS2.1所规定的标准盒模型,而IE盒模型则是在IE5及之前版本中…

    css 2023年6月9日
    00
  • Bootstrap5的断点与容器的具体使用

    下面是关于Bootstrap5的断点与容器的具体使用的完整攻略。 一、什么是Bootstrap5的断点? Bootstrap5的断点是指在不同屏幕大小下,页面的显示效果和布局会有所不同。Bootstrap5提供了多种断点,例如xs, sm, md, lg, xl, xxl等,我们可以在CSS中通过这些断点来设置不同屏幕大小下的样式。 二、如何使用Bootst…

    css 2023年6月10日
    00
  • 深入理解css中的margin属性(推荐)

    深入理解CSS中的margin属性 什么是 margin 属性? 在 CSS 中,margin 属性用于设置元素的外边距,即元素和其他元素之间的距离和元素和文档边缘之间的距离。margin 属性有四个方向可以设置值:上方(top)、下方(bottom)、左边(left)和右边(right)。 margin 的属性值 margin 属性可以设置不同类型的属性值…

    css 2023年6月9日
    00
  • 探索webpack模块及webpack3新特性

    探索webpack模块及webpack3新特性 Webpack 是什么? Webpack 是一个前端工具,用于打包(package) JavaScript 模块文件。 Webpack 有以下优点: 可以处理模块化代码和包含其他文件类型的文件 可以将代码按照优化级别分离打包,使应用加载更快 可以添加各种插件,增强功能 可以使用 webpack-dev-serv…

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