vue移动端页面适配

页面的适配,就是一个页面能在PC端正常访问,同时也可以在移动端正正常访问。

现在我们可以通过弹性布局【Flexible布局】、媒体查询和响应式布局。除此之外,还可以通过rem和vw针对性地解决页面适配问题。

响应式布局

响应式布局的核心,就是一个网站可以 兼容多个终端,而不是每一个终端都得开发一个独立的版本。

响应式布局,主要是通过可视区和媒体查询来完成。

在HTML的head标签中的meta标签来设置浏览器的可视区域。

<meta name="viewport" content="width=device-width, initial-scale=1.0,maximum-scale=1.0, user-scalable=no" />

在没有摄者浏览器的可视区域前,H5调试效果是这样的:

在这里插入图片描述
超出部分出现了滚动条。

设置可视区域后,效果是这样的:

在这里插入图片描述
注意:简单的了解一下物理像素和CSS像素

像素,也就是px,是图像显示的基本单位,每一个像素可以有颜色数值和位置信息,每一个图像是由无数个像素组成。

物理像素,是设备屏幕拥有多少个像素,主要是和渲染的硬件有关,比如iPhone 6总共有750*1334个物理像素。

CSS像素,就是逻辑像素,是软件程序系统使用的像素。逻辑像素最终会转化为物理像素的。

物理像素和逻辑像素之间的转换,可以通过window.devicePixelRatio来设置【window.devicePixelRatio是一个物理像素和逻辑像素的比例】

一般的屏幕使用1个物理像素来渲染一个逻辑像素,这是后window.devicePixelRatio的值为1。

有一些高清的屏幕,比如苹果的Retina屏幕,使用2个或者3个物理像素来渲染一个逻辑像素,这样屏幕更清晰。

浏览器厂商提供了一种虚拟的布局视区来解决页面在手机上显示的问题,通过meta标签设置Viewport来修改。比如:

<meta name="viewport" content="width=device-width, initial-scale=1.0,
maximum-scale=1.0, user-scalable=no" />
  1. width:控制可视区域的宽度,比如设置为320,或者device-width,表示设备的实际宽度,这样为了自适应布局。
  2. height:控制可视区域的高度,比如设置为640,或者device-height;
  3. initial-scale:设置页面的初始缩放比例【0~10】,等于1的时候,表示不缩放;大于1时表示放大;小于1表示缩小。initial-scale只是设置初始的比例,用户可以自动放大缩小;
  4. maximum-scale:设置用户手动放大的最大比例,可以设置0到10之间;
  5. minimum-scale:指定页面缩小的最小比例;
  6. user-scalable:表示是否允许用户手动缩放,属性为yes或者no;

当有的浏览器不支持user-scalable=no的时候,可以通过JavaScript来控制,比如:

window.onload = () => {document.addEventListener("touchstart", function (event) {// 两个手指操作if (event.touches.length > 0) {event.preventDefault();}});let lastTouchEnd = 0;document.addEventListener("touchend", function (event) {let now = (new Date()).getTime();// 判断是否是双击,两次间隔小于300ms,认为是双击if (now - lastTouchEnd <= 300) {event.preventDefault();}lastTouchEnd = now;})
}

了解了浏览器的可视区域后,接下来就是媒体查询了。

媒体查询

所谓的媒体查询就是告诉浏览器根据不同的条件,渲染不同样式规则。

媒体查询在CSS中设置,以@media开头,然后指定媒体类型,也就是设备类型。随后指定媒体特性,中间用and链接。

完整的语法如下:

@media 媒体类型 and (媒体特性){css样式
}@media 媒体类型 and (媒体特性),媒体类型 and (媒体特性){css样式
}

另一种方式是直接在link标签中定义,比如:

<link rel="stylesheet" media="媒体类型 and (媒体特性)" href="example.css" />

CSS中的媒体类型为:

  1. all:用于所有设备。
  2. aural:用于语音和声音合成器。
  3. braille:用于盲文触摸式反馈设备。
  4. embossed:用于打印的盲人印刷设备。
  5. handheld:用于掌上设备或更小的设备,如PDA和小型电话(已废弃)。
  6. print:用于打印机和打印预览。
  7. projection:用于投影设备。
  8. screen:用于计算机屏幕、平板电脑、智能手机等。
  9. all:用于所有设备。
  10. aural:用于语音和声音合成器。
  11. braille:用于盲文触摸式反馈设备。
  12. embossed:用于打印的盲人印刷设备。
  13. handheld:用于掌上设备或更小的设备,如PDA和小型电话(已废弃)。
  14. print:用于打印机和打印预览。
  15. projection:用于投影设备。
  16. screen:用于计算机屏幕、平板电脑、智能手机等。

逻辑运算符包括not、and和only。
not运算符用来对一条媒体查询条件的结果进行取反,用来排除某种指定的媒体类型。
only运算符用来指定某种特定的媒体类型,可以用来排除不支持媒体查询的浏览器

    @media not all {}@media not print and (min-width:700px) {}@media only screen and (min-width: 401px) and (max-width: 600px) {}/* 在支持媒体查询的浏览器中等于*/@media screen and (min-width: 401px) and (max-width: 600px) {}/*如果想用于最小宽度为700像素或者横屏的手持设备上*/@media screen (min-width:700px),handheld and (orientation:lanscape) {}

这就是响应式布局的基本配置。

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

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

相关文章

公司需要同步大量数据,如何缓解传输压力提高同步效率?

数据同步是很多企业在面临各类需求时要进行的事项&#xff0c;但由于体量较大&#xff0c;往往出现了很多的问题&#xff0c;很会影响企业人员的时间和效率。如何缓解传输压力&#xff0c;提高同步效率&#xff0c;保证同步质量&#xff0c;成为企业关注的重点问题。本文将从以…

【少儿编程的网站应该怎么选择】

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;效率…

【JAVA】多态的概念与实际利用

个人主页&#xff1a;【&#x1f60a;个人主页】 系列专栏&#xff1a;【❤️初识JAVA】 前言 在面向对象(OOP)的程序设计语言中&#xff0c;多态与封装、继承合称为OOP的三大特性。在今天&#xff0c;我们就来学习一下JAVA中的多态是什么样子的。、 多态 指一个对象在不同…

【MySQL进阶】SQL性能分析

一、SQL性能分析 1.SQL执行频率 MySQL 客户端连接成功后&#xff0c;通过 show [session|global] status 命令可以提供服务器状态信 息。通过如下指令&#xff0c;可以查看当前数据库的 INSERT 、 UPDATE 、 DELETE 、 SELECT 的访问频次&#xff1a; -- session 是查看当…

网站登录界面制作(three.js 3D特效背景)+ boostrap导航栏实现 + jQuery移动窗口【附加源代码】

网站登录界面制作&#xff08;three.js 3D特效背景&#xff09; boostrap导航栏实现 文章目录 网站登录界面制作&#xff08;three.js 3D特效背景&#xff09; boostrap导航栏实现前言登录界面效果图主页面效果图&#xff1a;主页面源代码 前言 学过Web前端的许多小伙伴都会面…

五、Java基本数据类型

Java基本数据类型 Java基本数据类型1.1.整数类型1.1.1.int型1.1.2.byte型1.1.3.short型1.1.4.long型 1.2.浮点类型1.3.字符类型1.3.1.char型1.3.2.转义字符 1.4.布尔类型 —————————————————————————————————————————————————…

详解FreeRTOS:FreeRTOS任务删除过程源码分析(进阶篇—2)

本篇博文讲解FreeRTOS中任务删除过程的源代码,帮助各位更好理解删除任务的原理和流程。 在详解FreeRTOS:FreeRTOS任务管理函数(基础篇—11)中,讲述了可以使用vTaskDelete()函数实现删除任务。 函数源码如下: 程序说明如下: (1)、调用函数 prvGetTCBFromHandle()获取要删…

mysql redis的区别

.mysql和redis的数据库类型 mysql是关系型数据库&#xff0c;主要用于存放持久化数据&#xff0c;将数据存储在硬盘中&#xff0c;读取速度较慢。 redis是NOSQL&#xff0c;即非关系型数据库&#xff0c;也是缓存数据库&#xff0c;即将数据存储在缓存中&#xff0c;缓存的读取…

UI 自动化测试框架:PO 模式+数据驱动 【详解版】

目录 1. PO 设计模式简介 什么是 PO 模式&#xff1f; PO 模式的优点 2. 工程结构简介 工程结构 框架特点 3. 工程代码示例 page 包 action 包 business_process 包 util 包 conf 包 1. PO 设计模式简介 什么是 PO 模式&#xff1f; PO&#xff08;PageObject&am…

PHP8中字符串与数组的转换-PHP8知识详解

在php8中使用explode()函数和implode()函数实现字符串和数组之间的转换。 1、使用explode()函数把字符串按照一定的规则拆分为数组中的元素&#xff0c;并且形成数组。 使用explode()函数把字符串转换数组&#xff0c;示范代码&#xff1a; <?php $string "html,cs…

基于webman的CMS,企业官网通用PHP后台管理系统

2023年9月11日10:47:00 仓库地址&#xff1a; https://gitee.com/open-php/zx-webman-website 还有laravelscui的版本目前还未开源&#xff0c;电商laravel版本差不多&#xff0c;后续在移植webman 算是比较标准的phpvue的项目 CMS&#xff0c;企业官网通用PHP后台管理系统 …

数据库 MVCC 详解

目录 1. 什么是 MVCC&#xff1f; 2. MVCC 的好处&#xff1f; 3. 快照读&#xff1f;当前读分别是什么&#xff1f;怎么理解&#xff1f; 3.1 快照读 3.2 当前读 4. MVCC 实现原理 4.1 隐藏字段 4.2 undo log(版本链) 4.3 readView 5. readView 深层详解 6. 数据库…

企业架构LNMP学习笔记49

Redis数据持久化操作&#xff1a; 数据、持久化&#xff08;数据在服务或者软件重启之后不丢失&#xff09;。 如果数据只存储在内存中&#xff0c;肯定会丢失&#xff0c;实现持久化&#xff0c;就需要把数据存储在磁盘中&#xff08;hdd ssd&#xff09;。 memcached在宕机…

数据集笔记:Beijing-BRT-dataset

XMU-smartdsp/Beijing-BRT-dataset (github.com) 1 数据集介绍 这个数据集包含1,280张图片&#xff0c;标注了16,795名行人&#xff0c;用于人群分析。使用720张图片进行训练&#xff0c;560张图片进行测试。名为"frame"的文件夹包含人群图像。 名为"ground_t…

AB试验(三)一次试验的规范流程

AB试验&#xff08;三&#xff09;一次试验的规范流程 一次完整且规范的A/B试验可参考下图&#xff1a; 确定目标和假设 核心&#xff1a;A/B测试是因果推断&#xff0c;所以我们首先要确定原因和结果。目标决定了结果&#xff0c;而假设又决定了原因。 如何确定 分析问题&am…

【适用于电力系统和音频系统】计算信号的总谐波失真 (THD)(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

深眸科技迭代深度学习算法,以AI机器视觉技术扩围工业应用场景

智能制造是制造业数智化转型升级的发展方向&#xff0c;在当前以高端装备制造为核心的工业4.0时代背景下&#xff0c;越来越多的制造企业意识到机器视觉对于提高效率、降低成本&#xff0c;从而提升企业效益的意义。 目前&#xff0c;机器视觉已成为制造业迈向智能制造过程中极…

激光焊如何更准更稳?维视智造激光焊视觉解决方案助力精密制造

激光焊接是一种高能密度、非接触的焊接技术&#xff0c;它利用激光束对工件进行加热和熔化&#xff0c;然后使其在熔池的情况下形成连接。与传统的焊接方法相比&#xff0c;激光焊具有高密度、熔深小、变形小、焊缝质量高、适用性广、自动化程度高等特点&#xff0c;可以实现焊…

【VisualStudio】NuGet包管理器下载缓存packages文件夹过大怎么清理

使用Visual Studio 开发工具时间长了&#xff0c;会发现整个项目的总大小越来越大&#xff0c;默认是存放在电脑系统盘里的&#xff0c;随着Windows11系统常常更新重启&#xff0c;导致系统盘闲置空间越来越小&#xff0c;该怎么办呢。 描述问题 整个解决方案项目会越变越大&…

JVM调优工具

JVM调优工具 Jmap 查看类信息 此命令可以查看内存信息&#xff0c;实例个数以及占用内存大小。 num&#xff1a;序号instances&#xff1a;实例数量bytes&#xff1a;占用空间大小class name&#xff1a;类名称&#xff0c;[C is a char[]&#xff0c;[S is a short[]&#…