vue px转vw_vue-template-compiler

vue px转vw_vue-template-compiler技术栈vue-cli3.0:使用脚手架工具创建项目postcss-pxtorem:转换px为rem的插件自动设置根节点html的font-size因为rem单位是相对于根节点的字体大小的,所以通过设置

设计稿对于前端来说是非常重要的,但是设计稿的单位是px,而h5的适配单位现在用得最多的是rem,百度了下都是比较老旧的实现方法,要么自己去计算rem值,要么依靠编辑器安装插件转换,接着我便查了一些资料,然后在这里记录下

技术栈

  • vue-cli 3.0: 使用脚手架工具创建项目
  • postcss-pxtorem: 转换px为rem的插件

自动设置根节点html的font-size

因为rem单位是相对于根节点的字体大小的,所以通过设置根节点的字体大小可以动态的改变rem的大小, html的font-size===1rem,网上有很多关于rem的介绍,这里就不记录了

1、创建 rem.js 文件

# 基准大小
const baseSize = 32
# 设置 rem 函数
function setRem () {
  # 当前页面宽度相对于 750 宽的缩放比例,可根据自己需要修改。
  const scale = document.documentElement.clientWidth / 750
  # 设置页面根节点字体大小
  document.documentElement.style.fontSize = (baseSize * Math.min(scale, 2)) + 'px'
}

# 初始化
setRem()
# 改变窗口大小时重新设置 rem
window.onresize = function () {
  setRem()
}

1、在 main.js 中引入rem.js

# main.js
import './utils/rem'

引入文件后可查看下html是否添加了font-size属性或者font-size被动态的改变了,以此来确定是否引入成功, 其实到这里基本上完成了rem布局了, h5会动态的去自适应,不过这样子在实际开发中还是要去计算px等于多少rem,接下来我们使用 postcss-pxtorem 自动转换px为对应的rem值


使用 postcss-pxtorem 将px转换为对应的rem值

先安装依赖包 postcss-pxtorem

npm install postcss-pxtorem --save-dev

接下来配置 postcss-pxtorem

# vue.config.js
module.exports = {
  lintOnSave: true,
  css: {
    loaderOptions: {
      postcss: {
        plugins: [
          require('postcss-pxtorem')({
            rootValue : 16, // 换算的基数
            selectorBlackList : [], // 忽略转换正则匹配项
            propList : ['*'],
          }),
        ]
      }
    }
  }
}

经过上面一通噼里啪啦的捣鼓后, 没出什么报错的话,便可用 px 作为单位开发

例如设计给出的设计图是 750 * 1136,那么可以直接在页面中写

body {
	width: 750px;
	height: 1136px;
}
# 将被转换为

body {
	widht: 23.4375rem;
	height: 35.5rem;
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/13683.html

(0)

相关推荐

  • 如何更新pip版本

    如何更新pip版本pip是Python包管理器,用于安装和升级Python包。更新pip是保持Python环境健康的一个重要步骤。

    2024-09-22
    15
  • plsql developer(plsql安装教程及配置)[通俗易懂]

    plsql developer(plsql安装教程及配置)[通俗易懂]

    2023-08-28
    150
  • Elasticsearch查询过滤解惑

    Elasticsearch查询过滤解惑简介 之前一直被查询(query)与过滤(filter)所困惑,为什么同样是bool在一个地方就是查询,在另一个地方就是过滤了。 后来仔细的看了一下官方文档才发现,都是查询,只是区分: query …

    2023-04-04
    172
  • redis怎么实现分布式缓存_分布式缓存异常

    redis怎么实现分布式缓存_分布式缓存异常发布和订阅模式(Pub/Sub)是构建企业级 .NET 应用程序不可或缺的工具。Pub/Sub 是一种消息传递范式,消息的发送方(发布者)不知道目标接收方(订阅者)的任何信息。此外,发布者和订阅者之间

    2023-05-31
    140
  • Mysql实战45讲-[通俗易懂]

    Mysql实战45讲-[通俗易懂]即使是一个开发工程师,也只是 MySQL 的用户,但在了解了一个个系统模块的原理后,再来使用它,感觉是完全不一样的。 当在代码里写下一行数据库命令的时候,就能想到它在数据库端将怎么执行,它的性能是怎么

    2023-02-12
    145
  • 04.深入浅出索引(上)[通俗易懂]

    04.深入浅出索引(上)[通俗易懂]简单来说,索引的出现就是为了提高数据查询效率,就像书的目录一样。 索引的常见模型 索引实现的方式有很多种,所以这里就引入了索引模型的概念,可以用于提高读写效率的数据结构很多,比较常见的数据结果有以下…

    2022-12-25
    152
  • Python嵌套if语句:实现复杂的条件判断

    Python嵌套if语句:实现复杂的条件判断条件语句是编程语言中非常重要的一种语句类型,它根据特定的条件来判断是否执行某些代码块,也可以根据不同的条件执行不同的代码块。Python中常用的条件语句包括if语句、if-else语句、if-elif语句等。

    2024-03-13
    76
  • ETL数据导入导出工具HData使用[通俗易懂]

    ETL数据导入导出工具HData使用[通俗易懂]注:近期因朋友的请求协助了解Hdata工具的使用,抽空进行了摸索,特整理此文;该ETL数据交换工具开发者已经有三、四年没有更新维护记录了,不确定该项目是否会继续维护,因此选择该工具应用于项目时,请考…

    2023-03-12
    149

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注