vue页面自适应 动态 postcss postcss-pxtorem

2024-08-28 05:12

本文主要是介绍vue页面自适应 动态 postcss postcss-pxtorem,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

vue页面自适应 动态 postcss postcss-pxtorem

  • postcss-pxtorem实现页面自适应
    • 1、安装postcss-pxtorem
    • 2、根目录创建postcss.config.js,并配置以下内容
    • 3、创建rem.js,动态设置root px
    • 4、在main.js中引入rem.js
    • 5、在main.js中创建全局处理函数px2rem
    • 6、对内联样式使用px2rem

背景:vue2做的页面,希望可以根据浏览器分辨率动态调整页面元素大小

postcss一款灵活配置css的插件,而postcss-pxtorem是属于postcss中的小工具可以动态将页面px转换为rem,现使用postcss-pxtorem实现页面自适应效果

postcss-pxtorem实现页面自适应

1、安装postcss-pxtorem

npm install postcss-pxtorem --s

2、根目录创建postcss.config.js,并配置以下内容

module.exports = {plugins: {"postcss-pxtorem": {rootValue: 16, // 根元素字体大小,用于将像素转换为rem的基准值unitPrecision: 5, // rem的小数位数propList: ["*"], // 需要转换的属性列表,['*']表示所有属性都会被转换。selectorBlackList: [], // 需要忽略的选择器,可以是正则表达式或字符串replace: true, // 是否替换原始值mediaQuery: false, // 是否在媒体查询中转换px。minPixelValue: 0 // 小于或等于该值的像素单位不被转换。}}
};

3、创建rem.js,动态设置root px

// 设置 rem 函数
function setRem() {// 1920 默认大小16px; 1920px = 120rem ;每个元素px基础上/16 这里是16就是初始化根元素px大小const screenWidth = 1920const scale = screenWidth / 16const htmlWidth = document.documentElement.clientWidth || document.body.clientWidth// 得到html的Dom元素const htmlDom = document.getElementsByTagName('html')[0]// 设置根元素字体大小htmlDom.style.fontSize = htmlWidth / scale + 'px'
}
// 初始化
setRem()
// 改变窗口大小时重新设置 rem
window.addEventListener('resize', ()=>{setRem()
})

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

import '@/utils/rem.js'

此时打开调试工具会发现px已经全部被转换为rem,也基本可以实现页面自适应变化了
在这里插入图片描述

注:postcss-pxtorem无法将内联样式转换为rem,此时需要额外单独处理
在这里插入图片描述

5、在main.js中创建全局处理函数px2rem

function px2rem(px){if(/%/ig.test(px)){ // 有百分号%,特殊处理,表述pc是一个有百分号的数,比如:90%return px}else{return (parseFloat(px) / 16) + 'rem' // 这里的16就是初始化根元素px大小}
}
Vue.prototype.$px2rem = px2rem // 放到全局

6、对内联样式使用px2rem

<span :style="{'margin-left': $px2rem('20px')}">内联样式</span>

到此结束,页面基本可以实现自适应!!!
若部分元素无法自适应,则可能是没有设置width、height

这篇关于vue页面自适应 动态 postcss postcss-pxtorem的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1113824

相关文章

Java实现Excel与HTML互转

《Java实现Excel与HTML互转》Excel是一种电子表格格式,而HTM则是一种用于创建网页的标记语言,虽然两者在用途上存在差异,但有时我们需要将数据从一种格式转换为另一种格式,下面我们就来看看... Excel是一种电子表格格式,广泛用于数据处理和分析,而HTM则是一种用于创建网页的标记语言。虽然两

C#使用HttpClient进行Post请求出现超时问题的解决及优化

《C#使用HttpClient进行Post请求出现超时问题的解决及优化》最近我的控制台程序发现有时候总是出现请求超时等问题,通常好几分钟最多只有3-4个请求,在使用apipost发现并发10个5分钟也... 目录优化结论单例HttpClient连接池耗尽和并发并发异步最终优化后优化结论我直接上优化结论吧,

C#中图片如何自适应pictureBox大小

《C#中图片如何自适应pictureBox大小》文章描述了如何在C#中实现图片自适应pictureBox大小,并展示修改前后的效果,修改步骤包括两步,作者分享了个人经验,希望对大家有所帮助... 目录C#图片自适应pictureBox大小编程修改步骤总结C#图片自适应pictureBox大小上图中“z轴

vue解决子组件样式覆盖问题scoped deep

《vue解决子组件样式覆盖问题scopeddeep》文章主要介绍了在Vue项目中处理全局样式和局部样式的方法,包括使用scoped属性和深度选择器(/deep/)来覆盖子组件的样式,作者建议所有组件... 目录前言scoped分析deep分析使用总结所有组件必须加scoped父组件覆盖子组件使用deep前言

VUE动态绑定class类的三种常用方式及适用场景详解

《VUE动态绑定class类的三种常用方式及适用场景详解》文章介绍了在实际开发中动态绑定class的三种常见情况及其解决方案,包括根据不同的返回值渲染不同的class样式、给模块添加基础样式以及根据设... 目录前言1.动态选择class样式(对象添加:情景一)2.动态添加一个class样式(字符串添加:情

SpringCloud配置动态更新原理解析

《SpringCloud配置动态更新原理解析》在微服务架构的浩瀚星海中,服务配置的动态更新如同魔法一般,能够让应用在不重启的情况下,实时响应配置的变更,SpringCloud作为微服务架构中的佼佼者,... 目录一、SpringBoot、Cloud配置的读取二、SpringCloud配置动态刷新三、更新@R

使用JavaScript将PDF页面中的标注扁平化的操作指南

《使用JavaScript将PDF页面中的标注扁平化的操作指南》扁平化(flatten)操作可以将标注作为矢量图形包含在PDF页面的内容中,使其不可编辑,DynamsoftDocumentViewer... 目录使用Dynamsoft Document Viewer打开一个PDF文件并启用标注添加功能扁平化

React实现原生APP切换效果

《React实现原生APP切换效果》最近需要使用Hybrid的方式开发一个APP,交互和原生APP相似并且需要IM通信,本文给大家介绍了使用React实现原生APP切换效果,文中通过代码示例讲解的非常... 目录背景需求概览技术栈实现步骤根据 react-router-dom 文档配置好路由添加过渡动画使用

SpringBoot如何访问jsp页面

《SpringBoot如何访问jsp页面》本文介绍了如何在SpringBoot项目中进行Web开发,包括创建项目、配置文件、添加依赖、控制层修改、测试效果以及在IDEA中进行配置的详细步骤... 目录SpringBoot如何访问JSP页python面简介实现步骤1. 首先创建的项目一定要是web项目2. 在

如何用Python绘制简易动态圣诞树

《如何用Python绘制简易动态圣诞树》这篇文章主要给大家介绍了关于如何用Python绘制简易动态圣诞树,文中讲解了如何通过编写代码来实现特定的效果,包括代码的编写技巧和效果的展示,需要的朋友可以参考... 目录代码:效果:总结 代码:import randomimport timefrom math