Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >「移动端」Web页面适配

「移动端」Web页面适配

作者头像
呆呆
发布于 2021-11-30 05:38:06
发布于 2021-11-30 05:38:06
1.5K00
代码可运行
举报
文章被收录于专栏:centosDaicentosDai
运行总次数:0
代码可运行

一、什么是移动端适配

移动端 Web 页面,就是常说的手机 h5页面、webview页面、公众号开发的网页等。

由于手机机型较多,各个手机的屏幕尺寸不一样,所以做移动端页面,需要考虑在安卓和ios的各种尺寸设备的兼容问题,我们要做的 web 页面适配,就是为了在不同设备上,页面能够保持统一展示效果,或等比缩放。

二、移动适配方案

常见的移动适配方案有以下几种:

  • viewport
  • 盒模型
  • flex
  • rem

2.1、viewport - 可视区

最初手机端需要照顾 PC 端,如果不设置 viewport,直接访问网页的时候,我们发现网页内容看着很小,这是因为页面按照PC端最小宽度980展示的,也就是我们的网页宽度就是980,而手机屏幕宽度通常375、411、320、414等,没有980那么大,所以页面被缩小了很多。

设置viewport

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

分别对 meta 的各个属性介绍如下:

  • width - 设置viewport的宽度,为一个正整数,或字符串‘device-width’
  • initial-scale - 设置页面的初始缩放值,是一个数字,可以是小数
  • maximum-sacle - 设置页面最大缩放值,是一个数字,可以是小数
  • user-scalable - 是否允许用户进行缩放,值为'yes'或者'no',yes表示可缩放,no表示禁止缩放
  • minimum-scale - 允许用户缩放的最小值,是一个数字,可以是小数
  • height - 设置layout viewport的高度,这个属性很少使用

一般情况下禁止用户缩放网页,设置的时候只需要:

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

就可以了,但是由于某些浏览器不能识别 initial-scale,所以添加了最大和最小缩放限制。

viewport 设置可视区之后,就会把网页的宽度设置为移动设备的屏幕宽度。

如想深入学习,可查阅《viewport深入理解和使用 - 前端人 - 博客园》。

2.2、盒模型

CSS3 中新增 box-sizing 属性,可以设置盒模型类型。属性值分别为:

content-box - 标准模型

border-box - IE模型

两者最大区别就是盒子的宽度不同:

标准模型宽 = 内容宽 + padding + border

IE模型宽 = 内容宽(包含padding、border)

这样做的优点就是可以任意设置它的 padding 和 border,不会挤压盒子的排列,但是如果设置一个 margin,会立马改变盒子的排列。

如想深入了解,可查阅《前端面试题中的“盒模型”是什么?》

2.3、flex - 弹性布局

Flex 是 Flex Box 的简写,意为弹性布局,为盒子提供最大的灵活性。任何一个元素都可以指定为弹性布局。

使用语法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.box{
 display:-webkit-flex;
 display:flex;
}

采用 flex 布局的,也称 flex 容器,对应的属性有:

  • flex-direction 设置排列方向(向下、向上、向左、向右)的
  • flex-wrap 内容放置不下时换行方式
  • flex-flow 是flex-direction和flex-wrap属性简写默认值row nowrap
  • justify-content 定义在主轴上的对齐方式。
  • align-items 定义项目在交叉轴上如何对齐。
  • align-content 定义多根轴线的对齐方式

容器内的子元素增加,布局所占的系数:如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div class="box">
 <div class="child"></div>
 <div class="child"></div>
 <div class="child"></div>
</div>
//其样式为
.box{
 display:-webkit-flex;
 display:flex;
}
.child{
    flex:1;
  background:#eee;
 height:100px;
 border:solid 1px red;
}

此时我们给 child 不论如何设置边框、内边距,还有外边距,三个 child 始终排列在一行。

flex 布局优点:

  • 可以实现 border-box 的效果。
  • 添加弹性布局之后,元素不需要再使用浮动,清除浮动等。
  • 同行元素设置边框、内外边距均不影响同行排列。
  • 还可使用 max-width、min-width 或固定宽度与 flex 配合使用,另一边可自动填充功能。

不设置其他属性的时候,弹性布局默认水平方向从左排列,还可以通过属性控制垂直方向布局,对齐方式等,可以点击《flex布局制作自适应网页 - 前端人 - 博客园》详细学习。弹性布局超强大,应用也非常广泛。

2.4、rem

rem是一种相对单位。长度单位可分为两种:相对单位和绝对单位。

绝对单位:长度是固定的值,反应物理真实尺寸。如:px像素,一个像素相当于我们屏幕的一个小点,屏幕实际就是由很多个像素点组成的,不同显示器像素大小不同。还有cm、mm、in等等。

相对单位:根据其参考物决定的,参照物大小改变时,它也会改变。如%、rem、em、vh、ex等等。

网页布局中我们常用到em和rem两种单位:

em - 是相对于自身的

rem - 是root em,相对于根元素的

em和rem 修改他们自身和html的font-size大小,会改变em、rem单位大小。

特点:使用rem布局时,只需要通过宽度改变html的font-size,就可以改变所有元素大小。注意的是,所有设置大小的时候都要使用rem。

本文系转载,前往查看

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

本文系转载,前往查看

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
第133天:移动端开发的一些总结
640 * 1136的图片能不能在iphone5上完全展示? iphone5分辨率640*1136
半指温柔乐
2018/09/11
9610
移动端适配必须掌握的基本概念和适配方案
随着技术的发展,移动设备越来越流行,并且不同设备间屏幕尺寸和屏幕像素的差异,移动端开发面临着多分辨率适配的问题。
用户6167509
2020/07/23
1.1K0
【小程序_02】布局方式
​ ① 安装nodejs,可选择版本(8.0),网址:http://nodejs.cn/download/
用户8250147
2021/02/04
1.4K0
【小程序_02】布局方式
H5移动端适配原理及方案
工作中接触到了移动端的开发,所以最近学习一下移动端相关内容。目前还是一个初学者,出现任何问题请多多谅解。大家如果只用电脑浏览网页的话,可能差别不算太大,但是如果使用移动设备(如手机和平板电脑)打开网页,就可能会遇到在不同设备上显示效果不尽人意。移动端页面需要具备响应式设计,以适应不同大小和分辨率的移动设备屏幕。使用流体网格布局、弹性图片和媒体查询等技术,确保页面在各种设备上都能良好显示。采用适合移动设备的布局方式,以确保用户在小屏幕上浏览时获得良好的用户体验。
bug开发工程师007
2024/06/14
5320
Css-移动端适配总结 前言PC端Mobile总结参考&引用
工作以后,大部分的业务工作都是基于移动端H5的,开发过程中学习了很多东西,遇到过许多问题,诸如rem\em\css px\device px等,本文纯属个人的归纳总结,如有问题,请指出亲喷~
菜的黑人牙膏
2019/04/18
2.5K0
Css-移动端适配总结
		前言PC端Mobile总结参考&引用
移动端页面开发遇到的一些问题
5、当网站添加到主屏幕快速启动方式,可隐藏地址栏,仅针对 ios 的 safari
用户1462769
2019/09/24
7810
探讨移动端适配
用截图工具(截图工具测得的像素等于物理像素)测得CSS中的1px 的等于物理像素1px的 那么他们的比值就是1:1
切图仔
2022/09/08
1.4K0
探讨移动端适配
–我对移动端适配的了解
[总结]我对移动端适配的了解 不知不觉做前端已经两年了,从PC端,移动端,微信小程序一路走来到今天刚刚开放注册的快应用(手机厂商对抗小程序的新技能,所以在注册时用的是qq邮箱的话要去垃圾箱里才能找到注册邮件),对于前端圈日新月异的磅礴发展对于大前端发展是喜闻乐见的,这次的快应用的手机厂商们为其开放了应用入口和系统推广引流入口。这些新能力为前端开发者们带来更强的作战能力。 我们在开发PC站时经常在浏览器兼容问题上耗费巨大的时间,到了移动端,面对webkit内核的Safari与Chrome会舒心很多。b
大象无痕
2018/06/27
2.1K2
移动端开发之Web App开发
写在前面:本人刚刚接触移动端开发,希望自己的见解能够帮助到他人,不足之处还望提醒。
全栈程序员站长
2022/07/05
2.2K0
移动端开发之Web App开发
【前端】移动端Web开发学习笔记【2】 & flex布局
使用媒体查询来适应不同的固定宽度,只会从一组css切换到另一组css, 没有平滑渐变。当没有命中媒体查询时,变现就变得不可控(滚动,换行)。 所以需要百分比布局。
zhaokang555
2023/10/17
2320
【前端】移动端Web开发学习笔记【2】 & flex布局
前端面试实录CSS篇(最近一周)
imgfixed:元素的定位是相对于 window (或者 iframe)边界的,和其他元素没有关系。但是它具有破坏性,会导致其他元素位置的变化。
沉浸式趣谈
2024/03/13
1460
前端面试实录CSS篇(最近一周)
浅谈web自适应
随着移动设备的普及,移动web在前端工程师们的工作中占有越来越重要的位置。移动设备更新速度频繁,手机厂商繁多,导致的问题是每一台机器的屏幕宽度和分辨率不一样。这给我们在编写前端界面时增加了困难,适配问题在当下显得越来越突出。记得刚刚开始开发移动端产品的时候向设计MM要了不同屏幕的设计图,结果可想而知。本篇博文分享一些卤煮处理多屏幕自适应的经验,希望有益于诸君。
疯狂的技术宅
2019/03/28
1.4K0
浅谈web自适应
响应式布局,你需要知道这些
https://juejin.cn/post/6951575591099301895
前端达人
2021/05/11
1.8K0
各大公司移动端页面 - 导航的实现
HTML5学堂:伴随着科技的发展,出现了各种型号的手机,导致了HTML5移动端开发人员对页面的实现要求更高了。目前来说,移动端的实现方法没有一个统一的标准,大家各自采用自己的实现方法,所以今天就给大家分享一下各大公司移动端页面的实现方法——导航栏 给大家分享之前,先说几句话。本文章主要给大家分享不同公司对移动端的实现采用了不同的方法。每一种方法各有各的好处,我们不能说哪一种方法好,哪一种方法不好。另外,这边主要分享基本原理,没有跟各大公司移动端页面的样式一摸一样,所以仅供大家参考学习,有什么不对的欢迎大家学
HTML5学堂
2018/03/12
1.6K0
各大公司移动端页面 - 导航的实现
【适配】425- 彻底搞懂移动Web开发中的viewport与跨屏适配
viewport是移动端跨屏适配的基石,吃透这一概念,任何复杂多变的适配需求,都可以手到擒来。
pingan8787
2019/11/29
3.2K0
08-移动端开发教程-移动端适配方案
由于移动端的特殊性,屏幕的尺寸碎片化严重,要想很好的适配不同的尺寸的设备,需要我们前端开发相比PC端要做一些基层的适配方案。
老马
2018/02/18
3.6K0
08-移动端开发教程-移动端适配方案
移动端H5开发之页面适配篇
最近开发并上线了一款H5项目,在这里想和大家分享一下关于项目中使用到的移动端适配技巧,如果对你们有所帮助的话,就多多点赞收藏😃各位看官老爷别着急,在讲页面适配之前,我们先来捋一捋viewport(视口)的概念~在Web浏览器术语中,通常与浏览器窗口相同,但不包括浏览器的UI, 菜单栏等——即指你正在浏览的文档的那一部分。一般我们所说的视口共包括三种:布局视口、视觉视口和理想视口1.1 布局视口图片在移动端,布局视口被赋予一个默认值,大部分为980px,这保证PC的网页可以在手机浏览器上呈现,用户可以手动对网
三点水的洋
2022/06/10
7.7K1
移动端H5开发之页面适配篇
Css详细介绍
(就近原则): !important > id > class > tag (!important 比内联优先级高)
FGGIT
2024/10/15
1480
浅谈Web自适应
前言 随着移动设备的普及,移动web在前端工程师们的工作中占有越来越重要的位置。移动设备更新速度频繁,手机厂商繁多,导致的问题是每一台机器的屏幕宽度和分辨率不一样。这给我们在编写前端界面时增加了困难,适配问题在当下显得越来越突出。记得刚刚开始开发移动端产品的时候向设计MM要了不同屏幕的设计图,结果可想而知。本篇博文分享一些卤煮处理多屏幕自适应的经验,希望有益于诸君。 特别说明:在开始这一切之前,请开发移动界面的工程师们在头部加上下面这条meta: 简单事情简单做-宽度自适应 所谓宽度自适应严格来说是一种
企鹅号小编
2018/02/08
1.6K0
浅谈Web自适应
移动webapp前端开发小结
公司内部有一款企业社交产品share,近期打算开发手机版,初期规划是通过webapp的方式嵌入到另一款即时通信native app。之前团队还未接触过手机应用的页面重构工作,这次由我打头炮,搭建这款webapp的基本页面样式框架。
李维亮
2021/07/09
1.4K0
相关推荐
第133天:移动端开发的一些总结
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验