当前位置: 首页 > news >正文

移动端适配:vw适配方案

vw (Viewport Width) 是一种长度单位,代表视口宽度的百分比。1vw 等于视口宽度的1%。在网页设计和前端开发中,vw 单位常用于实现响应式设计和屏幕适配,尤其是针对不同尺寸和分辨率的移动设备。

为什么使用vw适配?

  1. 响应式: 使用vw可以确保元素的尺寸随浏览器窗口或设备屏幕的大小变化而按比例调整,实现良好的响应式布局。
  2. 简化计算: 相比于传统的像素单位,vw让开发者能够更直观地根据视口比例来设定元素尺寸,无需考虑具体像素值。
  3. 设计师与开发者对齐: 设计图上的百分比尺寸可以直接转换为vw单位,有助于设计与实现的一致性。

如何使用?

基于postcss插件,实现项目vw适配!

安装

npm install postcss-px-to-viewport --save-dev// 如果报错,就执行以下代码安装
// npm i postcss-px-to-viewport@1.1.1 -D --legacy-peer-depv

根目录下新建 postcss.config.js文件,填入配置

// postcss.config.js
module.exports = {plugins: [require('postcss-px-to-viewport')({viewportWidth: 375, // 视口宽度,对应设计稿的宽度,一般为设计稿宽度的1/10viewportHeight: 1334, // 视口高度,可选,一般不需要设置unitPrecision: 5, // 单位转换后的精度,即小数点后的位数viewportUnit: 'vw', // 转换后的单位selectorBlackList: ['.ignore', '.hairlines'], // 不进行转换的类名列表minPixelValue: 1, // 小于或等于这个值的px不转换为vwmediaQuery: false, // 是否在媒体查询的CSS代码中也进行转换,默认falsereplace: true, // 是否直接替换原始的px值,而不是添加备用的vw值exclude: /(node_modules|bower_components)/, // 忽略某些文件夹下的文件include: undefined, // 可以显式地包含某些文件或文件夹}),],
};

关于viewportWidth建议取设计稿的宽度,一般设计稿是750px,但是我们移动端屏幕一般宽度为375px(以iphone SE为基准),也就是屏幕实际1px对应设计稿2px,这样才能分配好设计稿的像素。

更新Vue配置(仅限Vue CLI)

如果使用Vue CLI,可能需要在vue.config.js中添加对PostCSS的配置,确保PostCSS被正确加载。对于Vue CLI 3及以上版本,配置通常是自动检测的,但如果需要手动配置,可以这样操作:

// vue.config.js
module.exports = {css: {loaderOptions: {postcss: {plugins: [require('postcss-px-to-viewport')({// 插件的配置选项同上}),],},},},
};

相关文章:

移动端适配:vw适配方案

vw (Viewport Width) 是一种长度单位,代表视口宽度的百分比。1vw 等于视口宽度的1%。在网页设计和前端开发中,vw 单位常用于实现响应式设计和屏幕适配,尤其是针对不同尺寸和分辨率的移动设备。 为什么使用vw适配? 响应式: 使用v…...

实战Java虚拟机-实战篇

一、内存调优 1.内存溢出和内存泄漏 内存泄漏(memory leak):在Java中如果不再使用一个对象,但是该对象依然在GC ROOT的引用链上,这个对象就不会被垃圾回收器回收,这种情况就称之为内存泄漏。内存泄漏绝大…...

力扣:349. 两个数组的交集

349. 两个数组的交集 给定两个数组 nums1 和 nums2 ,返回 它们的 交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。 示例 1: 输入:nums1 [1,2,2,1], nums2 [2,2] 输出:[2]示例 2: …...

深度学习之基于Matlab的BP神经网络交通标志识别

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景与意义 随着智能交通系统(ITS)的快速发展,交通标志识别&#xff0…...

Linux备份服务及rsync企业备份架构(应用场景)

备份服务概述 备份服务:需要使用到脚本,打包备份,定时任务. 备份服务:rsyncd服务,不同主机之间数据传输. 特点: rsync是个服务也是命令使用方便,具有多种模式传输数据的时候是增量传输 增量与全量: 全量 :无论多少数据全部推…...

用手机打印需要下载什么软件

在快节奏的现代生活中,打印需求无处不在,无论是工作文件、学习资料还是生活小贴士,都可能需要一纸呈现。然而,传统的打印方式往往受限于时间和地点,让人倍感不便。今天,就为大家推荐一款便捷又省钱的手机打…...

Storm在Java中的应用

Storm在Java中的应用主要体现在构建分布式实时计算系统,用于处理大数据流。以下是一些Storm在Java中的具体应用场景和步骤: 实时数据处理:Storm可以实时地接收、处理和传输数据。对于需要快速响应的应用场景,如在线广告、金融交易…...

Java 面试题日常练习

### 基础知识 1. **什么是 JVM?解释其架构。** - JVM(Java Virtual Machine)是 Java 程序的运行时环境。其架构包括类加载器子系统、运行时数据区(堆、栈、本地方法栈、PC 寄存器、方法区)、执行引擎和本地方法接口…...

卷爆短剧出海:五大关键,由AIGC重构

短剧高温下,谈谈AIGC的助攻路线。 短剧,一个席卷全球的高温赛道。 以往只是踏着霸总题材,如今,内容循着精品化、IP化的自然发展风向,给内容、制作、平台等产业全链都带来新机,也让短剧消费走向文化深处&am…...

LLM实战:当网页爬虫集成gpt3.5

1. 背景 最近本qiang~关注了一个开源项目Scrapegraph-ai,是关于网页爬虫结合LLM的项目,所以想一探究竟,毕竟当下及未来,LLM终将替代以往的方方面面。 这篇文章主要介绍下该项目,并基于此项目实现一个demo页面&#x…...

Flutter底部导航栏和顶部Tab切换完整代码

题记 —— 执剑天涯,从你的点滴积累开始,所及之处,必精益求精,即是折腾每一天。 目前市场上绝大部分App的布局结构基本统一:底部导航顶部导航,底部导航页里嵌套顶部导航栏,顶部导航页里嵌套图文…...

Jupyter 使用手册: 探索交互式计算的无限可能

什么是 Jupyter? Jupyter 是一个开源的 Web 应用程序,可用于创建和共享包含实时代码、可视化和叙述性文本的文档。它最初是作为 IPython 项目的一部分开发的,后来发展成为支持多种编程语言的交互式计算环境。 应用场景 作为一个开源的交互式计算环境,Jupyter 在以下几个领域…...

IP地址显示“不安全”怎么办|已解决

解决IP地址显示“不安全”的问题,通常需要确保网站或服务使用HTTPS协议进行加密通信,可以通过部署SSL证书来解决,以下是具体的解决步骤: 1 申请IP地址SSL证书:网站管理员应向证书颁发机构(CA)申…...

国内安全实用的图纸透明加密软件厂家,靠谱的透明加密软件供应商--安秉信息

设计类图纸安全已经成为企业需要注意的问题,在当前互联网设计行业、汽车制造设计、机械制造行业等相关企业都需要对企业内部图纸的保护需求,现在在互联网中,企业数据泄露的事情已经层出不穷,企业对核心图纸的数据安全工作需要重点…...

【kubernetes】探索k8s集群中kubectl的陈述式资源管理

目录 一、k8s集群资源管理方式分类 1.1陈述式资源管理方式:增删查比较方便,但是改非常不方便 1.2声明式资源管理方式:yaml文件管理 二、陈述式资源管理方法 2.1查看版本信息 2.2查看资源对象简写 2.3配置kubectl自动补全 2.4node节点…...

VUE 创建组件常见的几种方式

在 Vue.js 中,组件的创建和使用通常遵循以下三种方法: 1. 全局组件 全局组件是通过 Vue.component() 方法创建的,注册后的组件可以在任何新创建的 Vue 实例(包括根实例)的模板中使用。 Vue.component(my-component,…...

华为OBS命令行简单使用

华为OBS(Object Storage Service)是一种云存储服务,提供了高可靠、高性能、安全的数据存储能力。通过使用OBS的命令行工具obsutil,用户可以方便地进行文件上传、下载、删除等操作,而无需依赖图形界面。下面&#xff0c…...

避免超卖!深入解析高并发分布式锁架构

1.引入并发控制的必要性 并发控制是一切分布式系统设计的基石,确保数据一致性、系统稳定性和最终的用户体验。要理解为什么需要并发控制,就必须先探讨并发对系统可能造成的问题。 1.1. 理解并发问题 多线程和分布式环境中,无数的进程和线程…...

latent diffusion 原理+代码

latent diffusion - Github 以下代码来自 作者: 李宝璐 链接: https://libaolu312.github.io/2023/11/27/Latent-Diffusion-Models-原理和代码/ 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处&…...

Unity开发——好用的数值概率公式

1、血量、伤害两个因素作用,击杀目标 正常状态下:hp - attackValue; 特殊状态下:attackValue *2; //伤害翻倍 如飞机/坦克大战中,击杀对方;受到伤害时,装备道具磨损失效; public int…...

OpenLayers 可视化之热力图

注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...

ssc377d修改flash分区大小

1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端

🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

STM32标准库-DMA直接存储器存取

文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设…...

微信小程序 - 手机震动

一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注&#xff1a;文档 https://developers.weixin.qq…...

Spring数据访问模块设计

前面我们已经完成了IoC和web模块的设计&#xff0c;聪明的码友立马就知道了&#xff0c;该到数据访问模块了&#xff0c;要不就这俩玩个6啊&#xff0c;查库势在必行&#xff0c;至此&#xff0c;它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据&#xff08;数据库、No…...

分布式增量爬虫实现方案

之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面&#xff0c;避免重复抓取&#xff0c;以节省资源和时间。 在分布式环境下&#xff0c;增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路&#xff1a;将增量判…...

Linux 中如何提取压缩文件 ?

Linux 是一种流行的开源操作系统&#xff0c;它提供了许多工具来管理、压缩和解压缩文件。压缩文件有助于节省存储空间&#xff0c;使数据传输更快。本指南将向您展示如何在 Linux 中提取不同类型的压缩文件。 1. Unpacking ZIP Files ZIP 文件是非常常见的&#xff0c;要在 …...

为什么要创建 Vue 实例

核心原因:Vue 需要一个「控制中心」来驱动整个应用 你可以把 Vue 实例想象成你应用的**「大脑」或「引擎」。它负责协调模板、数据、逻辑和行为,将它们变成一个活的、可交互的应用**。没有这个实例,你的代码只是一堆静态的 HTML、JavaScript 变量和函数,无法「活」起来。 …...

tauri项目,如何在rust端读取电脑环境变量

如果想在前端通过调用来获取环境变量的值&#xff0c;可以通过标准的依赖&#xff1a; std::env::var(name).ok() 想在前端通过调用来获取&#xff0c;可以写一个command函数&#xff1a; #[tauri::command] pub fn get_env_var(name: String) -> Result<String, Stri…...