vue中px 转 vh/vw

安装插件

npm install postcss-px-to-viewport --save -dev
(直接在vscode 中安装插件 px to rem & rpx & vw (cssrem))

postcss.config.js 配置

module.exports = {
    plugins: {
        // to edit target browsers: use "browserslist" field in package.json
        'autoprefixer': {},
        'postcss-px-to-viewport': {
            // options
            unitToConvert: "px", // 要转化的单位
            viewportWidth: 1920, // UI设计稿的宽度
            // viewportHeight: 1080,
            unitPrecision: 6, // 转换后的精度,即小数点位数
            propList: ["*"], // 指定转换的css属性的单位,*代表全部css属性的单位都进行转换
            viewportUnit: "vw", // 指定需要转换成的视窗单位,默认vw
            fontViewportUnit: "vw", // 指定字体需要转换成的视窗单位,默认vw
            selectorBlackList: ["wrap"], // 指定不转换为视窗单位的类名,
            minPixelValue: 1, // 默认值1,小于或等于1px则不进行转换
            mediaQuery: true, // 是否在媒体查询的css代码中也进行转换,默认false
            replace: true, // 是否转换后直接更换属性值
            exclude: [/node_modules/, /GlobalApi/], // 设置忽略文件,GlobalApi 只需要写文件名称即可
            //include: [/Multistage/], 设置包含文件只转换当前文件 
            landscape: false // 是否处理横屏情况
        }
    }
}
** 如果使用 include的话 需要在 package.js 中这样写"postcss-px-to-viewport": "https://github.com/evrone/postcss-px-to-viewport.git", 重新 cnpm/npm install 安装依赖 ** 

**或者地址安装 cnpm/npm i https://github.com/evrone/postcss-px-to-viewport --save-dev**

vscode 安装

px to rem & rpx & vw (cssrem)
// 然后再去 setting.js 设置 cssrem 设计稿宽度
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用`node-sass`和`sass-loader`来解析`.scss`文件,同时使用`postcss-loader`和`autoprefixer`来自动添加浏览器厂商前缀,最后使用`css-loader`和`style-loader`将CSS样式注入到HTML页面。 在Vue项目,可以在`vue.config.js`文件进行配置: ```javascript module.exports = { css: { loaderOptions: { sass: { prependData: ` @import "@/assets/scss/_variables.scss"; @import "@/assets/scss/_mixins.scss"; ` }, postcss: { plugins: [ require('autoprefixer')({ overrideBrowserslist: ['last 2 versions', '>1%'] }) ] } } } } ``` 然后,可以在`.vue`文件使用`<style lang="scss">`标签来编写Sass样式,例如: ```scss // _variables.scss $base-font-size: 16px; $base-width: 750px; // _mixins.scss @function px2rem($px) { @return ($px / $base-font-size) * 1rem; } @mixin center() { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); } // index.vue <style lang="scss"> .container { width: $base-width; margin: 0 auto; } .title { font-size: px2rem(32px); margin-top: px2rem(20px); } .box { width: 50vw; height: 50vh; background-color: #f00; @include center(); } </style> <template> <div class="container"> <h1 class="title">Hello World!</h1> <div class="box"></div> </div> </template> ``` 以上示例,`$base-font-size`和`$base-width`变量定义在`_variables.scss`,`px2rem()`和`center()`混合宏定义在`_mixins.scss`,然后在`index.vue`引入并使用它们来实现移动端自适应布局。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值