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

相关文章

CSS3 布局样式及其应用举例

《CSS3布局样式及其应用举例》CSS3的布局特性为前端开发者提供了无限可能,无论是Flexbox的一维布局还是Grid的二维布局,它们都能够帮助开发者以更清晰、简洁的方式实现复杂的网页布局,本文给... 目录深入探讨 css3 布局样式及其应用引言一、CSS布局的历史与发展1.1 早期布局的局限性1.2

使用animation.css库快速实现CSS3旋转动画效果

《使用animation.css库快速实现CSS3旋转动画效果》随着Web技术的不断发展,动画效果已经成为了网页设计中不可或缺的一部分,本文将深入探讨animation.css的工作原理,如何使用以及... 目录1. css3动画技术简介2. animation.css库介绍2.1 animation.cs

CSS引入方式和选择符的讲解和运用小结

《CSS引入方式和选择符的讲解和运用小结》CSS即层叠样式表,是一种用于描述网页文档(如HTML或XML)外观和格式的样式表语言,它主要用于将网页内容的呈现(外观)和结构(内容)分离,从而实现... 目录一、前言二、css 是什么三、CSS 引入方式1、行内样式2、内部样式表3、链入外部样式表四、CSS 选

使用雪花算法产生id导致前端精度缺失问题解决方案

《使用雪花算法产生id导致前端精度缺失问题解决方案》雪花算法由Twitter提出,设计目的是生成唯一的、递增的ID,下面:本文主要介绍使用雪花算法产生id导致前端精度缺失问题的解决方案,文中通过代... 目录一、问题根源二、解决方案1. 全局配置Jackson序列化规则2. 实体类必须使用Long封装类3.

Python Selenium动态渲染页面和抓取的使用指南

《PythonSelenium动态渲染页面和抓取的使用指南》在Web数据采集领域,动态渲染页面已成为现代网站的主流形式,本文将从技术原理,环境配置,核心功能系统讲解Selenium在Python动态... 目录一、Selenium技术架构解析二、环境搭建与基础配置1. 组件安装2. 驱动配置3. 基础操作模

C#实现查找并删除PDF中的空白页面

《C#实现查找并删除PDF中的空白页面》PDF文件中的空白页并不少见,因为它们有可能是作者有意留下的,也有可能是在处理文档时不小心添加的,下面我们来看看如何使用Spire.PDFfor.NET通过C#... 目录安装 Spire.PDF for .NETC# 查找并删除 PDF 文档中的空白页C# 添加与删

Nginx部署React项目时重定向循环问题的解决方案

《Nginx部署React项目时重定向循环问题的解决方案》Nginx在处理React项目请求时出现重定向循环,通常是由于`try_files`配置错误或`root`路径配置不当导致的,本文给大家详细介... 目录问题原因1. try_files 配置错误2. root 路径错误解决方法1. 检查 try_f

在React聊天应用中实现图片上传功能

《在React聊天应用中实现图片上传功能》在现代聊天应用中,除了文字和表情,图片分享也是一个重要的功能,本文将详细介绍如何在基于React的聊天应用中实现图片上传和预览功能,感兴趣的小伙伴跟着小编一起... 目录技术栈实现步骤1. 消息组件改造2. 图片预览组件3. 聊天输入组件改造功能特点使用说明注意事项

一文详解如何在Vue3中封装API请求

《一文详解如何在Vue3中封装API请求》在现代前端开发中,API请求是不可避免的一部分,尤其是与后端交互时,下面我们来看看如何在Vue3项目中封装API请求,让你在实现功能时更加高效吧... 目录为什么要封装API请求1. vue 3项目结构2. 安装axIOS3. 创建API封装模块4. 封装API请求

全解析CSS Grid 的 auto-fill 和 auto-fit 内容自适应

《全解析CSSGrid的auto-fill和auto-fit内容自适应》:本文主要介绍了全解析CSSGrid的auto-fill和auto-fit内容自适应的相关资料,详细内容请阅读本文,希望能对你有所帮助... css  Grid 的 auto-fill 和 auto-fit/* 父元素 */.gri