vue pc端网页实现自适应

一、基本原理

pc端做自适应可以用rem来实现,啥是rem,自己百度

二、新建rem.ts文件

// rem等比适配配置文件
// 基准大小
const baseSize = 14
// 设置 rem 函数
function setRem () {// 当前页面宽度相对于 1920宽的缩放比例,可根据自己需要修改。这里的1920是设计图的宽度const scale = document.documentElement.clientWidth / 1920;// 设置页面根节点字体大小document.documentElement.style.fontSize = baseSize * scale + 'px';
}
// 初始化
setRem()
// 改变窗口大小时重新设置 rem
window.addEventListener('resize',()=>{setRem()
})

这个文件可以根据屏幕大小来设置根节点字体的大小,记住这里的baseSize,然后在main.ts文件中引入

三、安装postcss-pxtorem依赖

npm install postcss-px2rem px2rem-loader --save

在vite.config.ts文件中引入,我这项目用的是vue3 + vite + ts,你用的是webpack,那就在vue.config.js里面

import postCssPxToRem from 'postcss-pxtorem';
export default defineConfig(({ mode }) => {return {plugins: [vue()],css: {postcss: {plugins: [postCssPxToRem({// 自适应,px>rem转换rootValue: 14, // 这里不一定要14,但必须和rem.ts文件中的baseSize大小一样propList: ['*'], // 需要转换的属性,这里选择全部都进行转换selectorBlackList: ['norem'], // 过滤掉norem-开头的class,不进行rem转换}),],},},resolve: {alias: {// @:src  读取当前src在本地的目录'@': resolve(__dirname, './src'),// 'HkWebVideoCtrl': resolve('src/assets/js/webVideoCtrl.js'),}},server: {host: '0.0.0.0',port: 8000,open: true,},};
})

然后就可以直接在css里面使用px了,这个依赖会自动把px转换成rem,包括ui框架里面的,比如elmentui里面的,这样全局的css样式都是rem了,但是有一个缺陷就是行内元素里面的px不能转换,比如 <div style="width:300px"></div>,这里的px就转换不了,所以还得手动写一个js

// 获取当前屏幕大小与1920的比列,计算大小,这里的1920还是看设计图的宽度
export const getScaleByUI = (size: number) => {const scale = document.documentElement.clientWidth / 1920;return size * scale;
}

<div :style="{width:getScaleByUI (300) + 'px'}"></div>,但是不建议写在style里面,如果ui框架里面的样式用的是style,那就只能用穿透去修改了
这样所有的自适应就搞定了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/653817.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python笔记14-实战小游戏飞机大战(上)

文章目录 功能规划安装pygame绘制游戏窗口添加玩家飞机图像屏幕上绘制飞船代码重构驾驶飞船全屏模式射击 本示例源码地址 点击下载 功能规划 玩家控制一艘最初出现在屏幕底部中央的飞船。玩家可以使用箭头键左右移动飞船&#xff0c;还可使用空格键射击。游戏开始时&#xff…

敲黑板啦!CSGO游戏搬砖项目操作注意事项

CSGO游戏搬砖项目怎么赚钱的&#xff0c;利润在哪&#xff1f; 1.两个平台之间币种不一样&#xff0c;就存在一个汇率差&#xff0c;两平台装备价格也不一样&#xff0c;汇率差-价格差利润。 CSGO游戏搬砖项目具体有哪些操作步骤&#xff1f; 1、准备一台电脑&#xff0c;配置…

使用npm安装插件时报权限问题解决方法

使用npm安装插件时报权限问题解决方法 使用npm安装yarn时总报这个错误&#xff0c;显示权限问题&#xff0c;之前安装其它插件包的时候也有遇到过&#xff0c;总是潦草解决&#xff0c;今天仔细查了一下&#xff0c;是我没有管理端权限&#xff0c;应该是之前安装npm的时候没有…

IDEA 构建开发环境

本博客主要讲解了如何创建一个Maven构建Java项目。&#xff08;本文是创建一个用Maven构建项目的方式&#xff0c;所以需要对Maven有一定的了解&#xff09; IDEA 构建开发环境 一、创建一个空工程二、构建一个普通的Maven模块 一、创建一个空工程 创建一个空的工程 * 设置整…

VMware中CentOS 7解决网络问题

问题描述 在 VMware 中使用 CentOS 7 中使用 ping www.baidu.com 测试网络是否能正常连接。 出现了未知的名称和服务的问题&#xff1a; 解决方案一 在服务中检查 VMware NAT Service 是否开启 解决方案二 在控制面板中的网络适配器里检查 解决方案三 检查VMware中的网络适…

Python采集学习笔记-SQL Server不同表的数据转移

(同一数据库表数据转移)源码 import pyodbc# 连接数据库 server DESKTOP-HAI1BEH database T1 driver {ODBC Driver 17 for SQL Server} conn pyodbc.connect(fDRIVER{driver};SERVER{server};DATABASE{database};Trusted_Connectionyes;) # 查询数据 cursor conn.cursor…

周报(20240128)

日期&#xff1a;2024.1.22 - 2024.1.28 本周工作&#xff1a; 1. 阅读论文 本周阅读了以下论文&#xff1a; 《BRAU-Net&#xff1a;用于医学图像分割的U形混合CNN-Transformer网络》 背景 精确的医学图像分割对于临床量化、疾病诊断、治疗计划和许多其他应用至关重要。基…

【Linux】CentOS 7 安装配置Python

目录 一、简介 二、下载与安装 1、更新软件包 2、安装编译所依赖的环境 3、下载压缩包 4、解压 5、配置编译参数 6、编译和安装 7、查看python版本 8、创建软连接 9、pip换源&#xff08;清华源为例&#xff09;、更新 一、简介 Linux系统一般都自带python&#xff…

彻底搞懂事件循环

Event Loop 即事件循环&#xff0c;是指浏览器或Node的一种解决 JavaScript 单线程运行时不会阻塞的一种机制&#xff0c;也就是我们经常使用异步的原理。 JS 在执行的过程中会产生执行环境&#xff0c;这些执行环境会被顺序的加入到执行栈中。如果遇到异步的代码&#xff0c;…

Python算法题集_检测函数用时和内存占用的模块【自搓】

最近对算法的优化有了兴趣&#xff0c;陆续做了一些算法题 做着做着&#xff0c;有些问题就浮现出来咯 网站上测试时用时受服务器负载情况影响&#xff0c;每次都不同 网站会提示免费会员不能算法提交太快 既然如此&#xff0c;干脆就手搓一个自用测量函数运行用时、内存占用…

【Java 设计模式】行为型之模版方法模式

文章目录 1. 定义2. 应用场景3. 代码实现结语 模板方法模式&#xff08;Template Method Pattern&#xff09;是一种行为型设计模式&#xff0c;用于定义算法的框架&#xff0c;并将一些步骤的实现延迟到子类。模板方法模式通过定义一个算法骨架&#xff0c;将具体步骤的实现推…

Linux实验记录:使用LVM(逻辑卷管理器)

前言&#xff1a; 本文是一篇关于Linux系统初学者的实验记录。 参考书籍&#xff1a;《Linux就该这么学》 实验环境&#xff1a; VmwareWorkStation 17——虚拟机软件 RedHatEnterpriseLinux[RHEL]8——红帽操作系统 备注&#xff1a; 硬盘分好区或者部署为RAID磁盘阵列…

Python根据Excel表进行文件重命名

一、问题背景 在日常办公过程中&#xff0c;批量重命名是经常使用的操作。之前我们已经进行了初步探索&#xff0c;主要是通过批处理文件、renamer软件或者Python中的pathlib等模块对当前目录下的文件进行批量重命名。 而今天我们要使用的是PythonExcel的方法对指定目录下的文…

MySQL:三大日志(binlog、redolog、undolog)

再了解三个日志前我们先了解一下MySQL的两层架构&#xff1a; Server 层负责建立连接、分析和执行 SQL。MySQL 大多数的核心功能模块都在这实现&#xff0c;主要包括连接器&#xff0c;查询缓存、解析器、预处理器、优化器、执行器等。另外&#xff0c;所有的内置函数和所有跨…

Unity读书系列《Unity3D游戏开发》——拓展编辑器(一)

文章目录 前言一、扩展Project视图1、右键扩展菜单&#xff08;Asset&#xff09;2、监听事件3、拓展布局 二、扩展Hierarchy视图1、拓展菜单&#xff08;GameObject&#xff09;2、拓展布局3、重写菜单 三、扩展Inspector视图1、扩展原生组件2、扩展继承组件 四、扩展Scene视图…

嵌入式软件工程师面试题——2025校招社招通用(C/C++)(四十七)

说明&#xff1a; 面试群&#xff0c;群号&#xff1a; 228447240面试题来源于网络书籍&#xff0c;公司题目以及博主原创或修改&#xff08;题目大部分来源于各种公司&#xff09;&#xff1b;文中很多题目&#xff0c;或许大家直接编译器写完&#xff0c;1分钟就出结果了。但…

【每日一题】5.LeetCode——环形链表

&#x1f4da;博客主页&#xff1a;爱敲代码的小杨. ✨专栏&#xff1a;《Java SE语法》 ❤️感谢大家点赞&#x1f44d;&#x1f3fb;收藏⭐评论✍&#x1f3fb;&#xff0c;您的三连就是我持续更新的动力❤️ &#x1f64f;小杨水平有限&#xff0c;欢迎各位大佬指点&…

抖店春节飞鸽还用回复吗?飞鸽自动回复怎么设置?

一、抖店春节飞鸽还用回复吗&#xff1f; 在春节期间&#xff0c;由于员工休假和放假的原因&#xff0c;客服人员数量可能会减少。这就导致了客服团队在春节期间的人手不足&#xff0c;难以及时回复顾客的咨询和问题。 然而&#xff0c;为了保证顾客的满意度和体验&#xff0…

【智能家居入门之环境信息监测】(STM32、ONENET云平台、微信小程序、HTTP协议)

作为入门本篇只实现微信小程序接收下位机上传的数据&#xff0c;之后会持续发布如下项目&#xff1a;①可以实现微信小程序控制下位机动作&#xff0c;真正意义上的智能家居&#xff1b;②将网络通讯协议换成MQTT协议再实现上述功能&#xff0c;此时的服务器也不再是ONENET&…

c# 对路径的访问被拒绝

c#写入一个文件&#xff0c;报错&#xff1a; c# 对路径的访问被拒绝 解决方法&#xff1a; 检查文件路径和目录权限&#xff1a; 确保你的应用程序有权限写入指定的文件或目录。在某些情况下&#xff0c;你可能需要以管理员身份运行应用程序或更改文件/目录的权限。 确保目…