前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >前端工程师之 移动端布局基础

前端工程师之 移动端布局基础

作者头像
张哥编程
发布于 2024-12-13 10:06:49
发布于 2024-12-13 10:06:49
20600
代码可运行
举报
文章被收录于专栏:云计算linux云计算linux
运行总次数:0
代码可运行

1 移动端布局基础

虽然 H5 的页面与 PC 的 Web 页面相比简单了不少,但让我们头痛的事情是要想尽办法让页面能适配众多不同的终端设备。下图是我们需要适配的移动端屏幕设备尺寸,看到这些数据,是不是有一种键盘敲烂的感觉。

<img src="https://gitee.com/rawait/rwpicgo/raw/master/teaching/2021-12-22/202112222201467.png" alt="001" style="zoom: 80%;" />

1.1 移动端设备

移动端设备主要包括 AndroidiOS 等手机设备。屏幕尺寸非常多,手机分辨率和大小也不尽相同,碎片化严重。

<img src="https://gitee.com/rawait/rwpicgo/raw/master/teaching/2021-12-22/202112222211656.png" alt="image-20211222221103529" style="zoom: 80%;" />

常见的移动端设备的屏幕尺寸

移动端设备

屏幕尺寸(英寸)

分辨率(px)

设备像素比(dpr)

iPhone 6/6S/7/8

4.7

750 ×1334

2.0

iPhone 6/7/8 plus

5.5

1080 × 1920

3.0

iPhone X/XS

5.8

1125 × 2436

3.0

iPhone XR

6.1

828 × 1792

2.0

iPhone XS Max

6.5

1242 × 2688

3.0

iPad Mini 4/2

7.9

1536 × 2048

1.0

Samsung Galaxy S10+

6.4

1440 × 3040

3.5

Samsung Galaxy S20

6.2(直角)

1440 ×3200

3.5

Samsung Galaxy S20+

6.7

1440 ×3200

3.0

Samsung Galaxy S20 Ultra

6.9

1440 ×3200

3.0

  • 移动端的浏览器主要包括 Android Browser 和 Mobile Safari,以及国产浏览器。
  • 浏览器的内核主要是 Webkit 内核,对 HTML5 提供了很好的支持。

移动 Web 开发需注意两点

  • 移动端设备受屏幕尺寸限制 移动端设备受屏幕尺寸限制,操作的局限性比较大,所以要注意页面的结构不能过于复杂,要提炼出该网站最核心的功能,并简洁清晰地呈现出来。
  • 移动端的操作方式的改变 移动端的操作方式的改变。移动端页面的所有交互活动由鼠标控制变为手指触屏控制,操作方式更加丰富,如摇一摇、双指放大、滑动、双击、单击等。

1.2 移动Web开发主流方案

1.2.1 单独制作移动端页面

单独制作移动端页面,通常的做法是不改变原有的PC端页面,然后针对移动端单独开发出一套特定的版本。如果是移动设备,则跳转到移动端页面;如果是PC端设备,则跳转到PC端页面。

单独制作移动端页面优点

  • 可以充分考虑到平台的优势和局限性
  • 创建良好的用户体验设计
  • 网页在移动设备上加载更快

单独制作移动端页面缺点

  • 移动端网站会产生多个URL(PC端一套URL,移动端一套URL)
  • 维护成本会增加,工作量比较大
  • 重定向移动网站需要花费一些时间,需要对搜索引擎做一些处理
1.2.2 制作响应式页面

响应式页面指的是同一页面在不同屏幕尺寸下实现不同的布局,从而使一个页面兼容不同的终端。

响应式开发主要是为了解决移动互联网浏览的问题。

响应式页面优点

  • 可以跨平台。响应式开发具有跨平台的优势,能够快捷地解决多终端设备的显示适配问题。
  • 便于搜索引擎收录。无论在移动端设备还是PC端上访问的都是同一个链接地址,这样就减少了权重的分散。让网站对搜索引擎更加友好。
  • 节约成本。响应式网站可以兼容多个终端,我们不需要为各个终端编写不同的代码。对于我们来说,减少了大量重复的工作,提高了工作的效率;对于公司而言,节省了人员开支,降低了开发成本,两全其美。

响应式页面缺点

制作复杂,同时对于移动端而言,需要加载非常多的 pc 端的样式和图片等资源,影响加载速度,同时费流量。国内流量非常贵。(这也是国内纯响应式网站不多的原因。)

1.2.3 移动Web开发总结

现今大型网站,大部分已经没有做响应式了(例如淘宝)。

我们会发现,淘宝网手机端和网页端使用的是两个域名,也就是说,不同的客户端已经不再共用一套页面布局结构了。而是区分开来做自适应。然后每次用户访问的时候它就根据客户端的类型重定向。

为什么呢?

  • 试想一下淘宝这种大型网站,一个分页下的商品条目特别多,并且每个商品条目的页面布局结构又十分复杂,而且 pc 端往往显示的信息是要比手机端更多的。
  • 如果不分开做两套,而是直接用响应式的话,那么 pc 端上显示的很多页面布局就要在手机端上隐藏,结果这些页面都没有被用到,但是却加载了。
  • 在这个流量和速度至上的时代,代码冗余先不说,多加载的这些无用的代码而消耗的流量,从某种意义上来说就已经损失了很多的效益。

1.3 移动Web开发基础

1.3.1 视口

视口(Viewport)最早是由苹果公司在推出 iPhone 手机时发明的,其目的是为了让 iPhone 的小屏幕尽可能完整显示整个网页,它是浏览器显示页面内容的屏幕区域。

视口主要包括布局视口(layout viewport)、视觉视口(visual viewport)和理想视口(ideal viewport)。视口能将大分辨率尺寸网页缩小显示在手机浏览器上,这样保证网页在手机上看起来更像在桌面浏览器中的样子。

布局视口

布局视口是指网页的宽度,一般移动端浏览器都默认设置了布局视口的宽度。

<img src="https://gitee.com/rawait/rwpicgo/raw/master/teaching/2021-12-22/202112222227406.png" alt="image-20211222222721322" style="zoom: 80%;" />

当移动端浏览器展示 PC 端网页内容时,由于移动端设备屏幕比较小,布局视口不能像PC端浏览器那样完美地展示网页,网页在手机的浏览器中会出现左右滚动条,用户需要左右滑动才能查看完整的一行内容。

视觉视口

视觉视口是指用户正在看到的网站的区域,这个区域的宽度等同于移动设备的浏览器窗口的宽度。

<img src="https://gitee.com/rawait/rwpicgo/raw/master/teaching/2021-12-22/202112222229599.png" alt="image-20211222222918499" style="zoom:80%;" />

理想视口

理想视口是指对设备来讲最理想的视口尺寸。

<img src="https://gitee.com/rawait/rwpicgo/raw/master/teaching/2021-12-22/202112222229406.png" alt="image-20211222222948294" style="zoom:80%;" />

理想视口下,布局视口的大小和视觉视口是一致的,这样就不需要左右滚动页面了。

为了实现理想视口,需要给移动端页面添加 <meta> 标签配置视口,在 <meta> 标签中,将 name 属性设为viewport,即可设置视口。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<meta name="viewport" content="width=device-width">

<meta> 标签常用设置参数

参数名

说明

width

设置视口宽度,可以设为正整数(像素)或特殊值 device-width

height

设置视口高度,可以设为正整数(像素)或特殊值 device-height

initial-scale

初始缩放比,取值范围为 0.0~10.0

maximum-scale

最大缩放比,取值范围为 0.0~10.0

minimum-scale

最小缩放比,取值范围为 0.0~10.0

user-scalable

用户是否可以缩放,其值为 yes 或 no

viewport-fit

视窗填充屏幕的方式。默认值 contain,cover完全填充

<img src="https://gitee.com/rawait/rwpicgo/raw/master/teaching/2021-12-22/202112230026051.png" alt="004" style="zoom: 25%;" />

<img src="https://gitee.com/rawait/rwpicgo/raw/master/teaching/2021-12-22/202112230026577.png" alt="005" style="zoom:25%;" />

在实际开发中,通常会将视口设置为不允许用户缩放页面、视口宽度等于设备宽度、初始缩放比为1.0,最大缩放比为1.0。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0,user-scalable=no">
1.3.2 分辨率

分辨率分为屏幕分辨率和图像分辨率。屏幕分辨率是指一个屏幕上可以显示多少信息,通常以像素(px)为单位来衡量。在同一台设备上,图片的像素点和屏幕的像素点通常是一一对应的。

屏幕分辨率 1920×1080 表示水平方向含有 1920 个像素,垂直方向含有 1080 个像素,屏幕上总共有 2 073 600个像素点。

  • 在屏幕的大小相同的情况下,如果屏幕的分辨率低(如640×480),则屏幕上显示的像素少,单个像素点比较大,看起来会有种颗粒感。
  • 在屏幕的大小相同的情况下,如果屏幕的分辨率高(如1920×1080),则屏幕上显示的像素多,单个像素点比较小,看起来会比较清晰。

图像分辨率5 00×200 表示这张图片在屏幕上按1:1显示时,水平方向有500个像素点(色块),垂直方向有200个像素点(色块)。

图片的分辨率越低,图片越模糊。图片的分辨率越高,图片越清晰。

1.3.3 设备像素比
物理像素

物理像素又被称为设备像素,是屏幕上显示数据的最基本的点,表示相对大小。不同分辨率下相同长度的 px 元素显示会不一样,是因为像素点的个数相同情况下,不同分辨率下每个像素点对应的像素宽度不同。比如同样是 14px 大小的字,在 1366×768 显示屏下会显示的小,在 1024×768 显示屏下会相对大。也称为物理像素(设备像素),是分辨率的尺寸单位。

CSS 像素

在不同屏幕上,CSS 像素呈现的物理尺寸一致,但 CSS 像素对应的物理像素具数不同。标准的显示密度下,1个 CSS 像素对应一个物理像素,缩放时,1个 CSS 像素对应的物理像素会减增。一般情况之下,CSS像素称为与设备无关的像素(device-independent pixel),简称DIPs。

屏幕密度

屏幕密度是指一个设备表面上存在的像素数量,它通常以每英寸有多少像素来计算(PPI)。

设备像素比

设备像素(device pixel ratio)比简称为dpr,其定义了物理像素和 CSS 像素的对应关系。设备物理像素和设备独立像素比,即是指在理想布局宽度,使用多少个物理像素来渲染一个 CSS 像素。

<img src="https://gitee.com/rawait/rwpicgo/raw/master/teaching/2021-12-22/202112230024268.png" alt="image-20211223002454179" style="zoom:80%;" />

设备像素比 = 物理像素 / CSS像素

  • 在不同的屏幕上,CSS 像素所呈现的物理尺寸是一致的,而不同的是 CSS 像素所对应的物理像素具数是不一致的。
  • 在普通屏幕下 1 个 CSS 像素对应 1 个物理像素,而在 Retina(视网膜屏) 屏幕下,1 个 CSS 像素对应的却是 4 个物理像素。
  • 浏览器在显示网页时,需要将 CSS 像素转换为物理像素然后再呈现
  • 一个css像素最终由几个物理像素显示,由浏览器决定:默认 PC 端,一个 CSS 像素 = 一个物理像素
1.3.4 单位
  • em:相对单位,相对父元素的 font-size 进行计算。
  • rem:简单来说,rem 就是相对于根元素 <html> 的 font-size 来做计算。而我们的方案中使用 rem 单位,是能轻易的根据 <html> 的 font-size 计算出元素的盒模型大小。而这个特色对我们来说是特别的有益处。
  • vm/vh:vw(view-width),vh(view-height) 这两个单位是 CSS 新增的单位,表示视区宽度/高度,视区总宽度为 100vw,总高度为 100vh。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-09-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
DevOps工具介绍连载(31)——Microsoft Team Foundation Server(TFS)
Team Foundation Server(TFS)是一种为 Microsoft 产品提供 源代码管理、数据收集、报告和项目跟踪,而为协作软件开发的项目。它是Microsoft应用程序生命周期管理(ALM)工具的核心协作平台,简单的说它是管理和开发软件项目的整个生命周期的平台工具。
顾翔
2020/04/10
2.1K0
DevOps工具介绍连载(31)——Microsoft Team Foundation Server(TFS)
图文并茂介绍在VS2010里使用TFS2010
上面的两篇文章Team Foundation Server 2010 – Basic Installation和TFS2010 Team Project Collections 已经讲述了安装TFS2
张善友
2018/01/29
1.6K0
Team Foundation Server 2010 – Basic Installation
Microsoft Team Foundation Server 2010在安装上非常简单,除了在安装的容易程度上做了很大的简化,提供了向导式的配置,它还针对微软一个早年广为使用的Visual SourceSafe,提供一个非常简单的安装和设置好的安装示范– Basic Configuration,让Visual SourceSafe的使用者通过简单的安装后,马上就可以使用Microsoft Team Foundation Server 2010。 通过一个标准的安装步骤来说明,希望大家能快速的了解 Bas
张善友
2018/01/19
8940
Team Foundation Server 2010 – Basic Installation
tfs安装教程_怎么安装2010office激活成功教程版
大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说tfs安装教程_怎么安装2010office激活成功教程版,希望能够帮助大家进步!!!
Java架构师必看
2022/10/05
4.6K0
tfs安装教程_怎么安装2010office激活成功教程版
TFS2010 Team Project Collections
Team Foundation Server 2010有一个改进比较大的地方就是Team Project Collections,在TFS 2010 在Team Project之上,多了一个Colle
张善友
2018/01/19
1K0
TFS2010  Team Project Collections
让Team Foundation Server/TFS自动记住用户名密码解决方案
在使用Team Foundation Server(以下简称TFS) 的时候,在每次打开Visual Studio TFS时候,需要输入用户名和秘密,比较麻烦。 现提供一种方法可以解决这个问题: 依次
磊哥
2018/05/08
1.1K0
让Team Foundation Server/TFS自动记住用户名密码解决方案
使用Azure DevOps持续集成GitHub项目
微软的Azure DevOps是一款软件开发管理工具,整合了需求、代码、编译、测试、发布等所有功能于一身。今天我们就来看看如何用Azure DevOps对自己GitHub上的项目做持续集成,并能在GitHub显示最新编译状态。
Edi Wang
2019/07/08
1.3K0
使用Azure DevOps持续集成GitHub项目
通过 Linux 容器进行虚拟化
简单介绍 Linux 容器是一种轻量级“虚拟化”方法,用于在单个控制主机上同一时候执行多个虚拟装置(容器)。还有一个可用来描写叙述 Linux 容器所执行的操作的术语是“容器化”。 Linux 容器提供操作系统级别的虚拟化,当中的内核控制隔离的容器。容器通过内核控制组 (cgroup) 和内核命名空间进行隔离。通过 Xen 和 KVM 等其它完整虚拟化解决方式,虚拟化子系统可模拟完整的硬件环境。
全栈程序员站长
2022/07/12
1.6K0
通过 Linux 容器进行虚拟化
tfs安装教程_tfs4全称
索引: 介绍 安装操作系统 准备安装过程中的需要的用户账户 安装IIS 7.0 安装SQL Server 2008 安装SQL Server 2008 SP1补丁 安装TFS 2010 配置TFS 2010(以高级配置为例) 配置TFS Build服务 安装序列号
全栈程序员站长
2022/11/09
1.9K0
java RMI入门指南「建议收藏」
RMI全称是Remote Method Invocation-远程方法调用,Java RMI在JDK1.1中实现的,其威力就体如今它强大的开发分布式网络应用的能力上,是纯Java的网络分布式应用系统的核心解决方式之中的一个。事实上它能够被看作是RPC的Java版本号。可是传统RPC并不能非常好地应用于分布式对象系统。而Java RMI 则支持存储于不同地址空间的程序级对象之间彼此进行通信。实现远程对象之间的无缝远程调用。
全栈程序员站长
2022/07/08
1.2K0
java RMI入门指南「建议收藏」
g4e基础篇#3 Git安装与配置
现在你已经对Git有了最基本的了解,现在让我们开始动手开始安装和配置Git环境。 Git工具包括Git命令行工具,图形化工具和服务器环境;在我们这个教程中,我们会使用以下软件配置我们的环境: • Windows 操作系统(推荐使用Windows 10) • Git for Windows (2.15或者以上版本) • Visual Studio 2017 社区免费版 • Visual Studio Code • Cmder (Windows上最好用的命令行工具) • Visual Studio Team S
企鹅号小编
2018/02/06
2.3K0
g4e基础篇#3 Git安装与配置
TFS2010安装部署
以下是我的安装步骤,如果有什么遗漏或者疑难问题,欢迎大家留言,我们一起想办法解决。
全栈程序员站长
2022/11/09
2K0
2019年20个最佳版本控制系统
版本控制工具的核心是以简单的方式工作。它跟踪所做的协作更改,并确保每个协作者都知道并可以访问项目的最新版本。由于不同的项目各不相同,VCS工具也有各种产品。此外,该行业的最新趋势也在改变其部署方式。在这篇文章中,我们整理了20个最佳版本控制系统。
Blue姐
2019/06/28
4.4K1
jenkins+maven +svn+tomcat7集群部署(一)
在网上看了好多有关集群部署的文章,感觉都不是太连贯,非常多仅仅是给你说怎么安装而已,可是过程中遇到的问题真不少,可是也攻克了非常多问题,希望我的文章可以帮到那些想学习的人吧,jenkins主要是攻克了一个集群项目和节点管理的工具,可以方便的把项目分发到个个容器里面去,省去了集群的时候须要一个个往tomcat里面放war包,同一时候也可以对集群节点的一个状态进行管理。
全栈程序员站长
2022/07/12
1700
jenkins+maven +svn+tomcat7集群部署(一)
VSTS知识整理
原文:http://www.qddn.net/blogs/xumingxsh/archive/2006/01/19/4513.aspx 学习VSTS有一段时间,打算把学到的东西整理出来.看看VSTS是
张善友
2018/01/22
3.7K0
vs2008连接tfs2013_VS连接SQL网页登录
3.Install Visual Studio 2008 SP1
全栈程序员站长
2022/11/09
9240
GitFlow 流程
Git Flow 是构建在 Git 之上的一个组织、管理软件开发活动的模型。Git Flow 是一套使用 Git 进行源代码管理时的一套行为规范和,通过利用 Git 创建和管理分支的能力,为每个分支设定具有特定的含义名称,并将软件生命周期中的各类活动归并到不同的分支上。实现了软件开发过程不同操作的相互隔离。这种软件开发的活动模型被称为 “Git Flow”。
molier
2022/11/03
5500
GitFlow 流程
TFS源代码管理的8大注意事项
TFS具体使用请参考此链接:http://msdn.microsoft.com/zh-cn/library/ms181382.aspx
雪雁-心莱科技
2018/12/27
1.7K0
Git使用之基于SSH的Gitserver的client配置(下篇)[通俗易懂]
点击 文件-Load Private Key,选择须要转换的密钥文件(原有的Copssh私钥ppk及相应的password由管理员分发给大家。请大家在自己本机保存好私钥。私钥是訪问gitserver的凭证)
全栈程序员站长
2022/07/10
4210
Git使用之基于SSH的Gitserver的client配置(下篇)[通俗易懂]
IT入门知识第三部分《软件开发》(3/10)
在当今数字化时代,软件开发已成为推动创新和企业发展的核心动力。本文将深入探讨软件开发的生命周期、方法论以及版本控制系统,为读者提供全面的软件开发知识。
正在走向自律
2024/12/18
2380
IT入门知识第三部分《软件开发》(3/10)
相关推荐
DevOps工具介绍连载(31)——Microsoft Team Foundation Server(TFS)
更多 >
目录
  • 1 移动端布局基础
    • 1.1 移动端设备
    • 1.2 移动Web开发主流方案
      • 1.2.1 单独制作移动端页面
      • 1.2.2 制作响应式页面
      • 1.2.3 移动Web开发总结
    • 1.3 移动Web开发基础
      • 1.3.1 视口
      • 1.3.2 分辨率
      • 1.3.3 设备像素比
      • 1.3.4 单位
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档