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

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.lryc.cn/news/170312.html

相关文章:

  • Ei Scopus 双检索 |第三届信息与通信工程国际会议国际会议(JCICE 2024)
  • ChatGPT实战-Embeddings打造定制化AI智能客服
  • C语言指针,深度长文全面讲解
  • 云桌面打开部署在linux的服务特别卡 怎么解决
  • day5ARM
  • 旋转链表-双指针思想-LeetCode61
  • 使用自定义XML配置文件在.NET桌面程序中保存设置
  • 1787_函数指针的使用
  • 解决nomachine扫描不出ip问题
  • Web 3.0 发展到什么水平了?
  • 大模型:如何利用旧的tokenizer训练出一个新的来?
  • 【LeetCode-中等题】107. 二叉树的层序遍历 II
  • 斯坦福联合培养博士|专科生的逆袭之路
  • Verilog中parameter在仿真时的应用
  • v-model绑定导致的element UI文本框输入第一次值后被绑定,导致空文本框无法再输入文字
  • 数据结构——KD树
  • python趣味编程-恐龙克隆游戏
  • 【漏洞复现】泛微e-office OfficeServer2.php 存在任意文件读取漏洞复现
  • 基于Yolov8的野外烟雾检测(4):通道优先卷积注意力(CPCA),效果秒杀CBAM和SE等 | 中科院2023最新发表
  • 程序员必掌握的核心算法:提升编程技能的关键路径
  • 面试算法10:和为k的子数组
  • 王道考研操作系统
  • HEXO 基本使用
  • Webpack Sourcemap文件泄露漏洞
  • WebGL层次模型——单节点模型
  • 【链表】反转链表 II-力扣 92 题
  • 【考研数学】高等数学第六模块 —— 空间解析几何(1,向量基本概念与运算)
  • 巨人互动|Facebook海外户Facebook客户反馈分数
  • Tomcat多实例部署和动静分离
  • 关于 C/C++ 中在指针前加 const 关键字的作用说明