Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >移动前端兼容操作总结

移动前端兼容操作总结

作者头像
Jean
发布于 2018-10-11 09:58:06
发布于 2018-10-11 09:58:06
1.1K00
代码可运行
举报
文章被收录于专栏:Web行业观察Web行业观察
运行总次数:0
代码可运行

移动端Web页面,即常说的H5页面、手机页面、webview页面等。

手机设备屏幕尺寸不一,做移动端的Web页面,需要考虑在安卓/IOS的各种尺寸设备上的兼容,这里总结的是针对移动端设备的页面,设计与前端实现怎样做能更好地适配不同屏幕宽度的移动设备。

适配的目标

引用一文章的描述:

在不同尺寸的手机设备上,页面“相对性的达到合理的展示(自适应)”或者“保持统一效果的等比缩放(看起来差不多)”。

概念理解

在做适配之前,需要先理解一些概念。对于不理解的地方,可以搜索更多文章看看,本文总结的移动端兼容性问题解决方案囊括了4个思考方向, 注意不是唯一的具体的解决方案而是从四个角度来思考问题, 分别是html, css, 脚本以及http协议(服务端)的视角来考虑兼容问题, 仅供参考~

HTTP: 匹配UserAgent字段

User Agent中文名为用户代理,简称 UA,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。

最主流的方法就是在服务端/客户端查询这个字段:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//检测是否是移动端        function checkMobile() {            if (!(navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i))) {                alert("请在移动端查看(或者开发者模式)");            }        }

JS: 判断window和screen

屏幕可用工作区高度/宽:window.screen.availHeight/window.screen.availWidth

屏幕分辨率的高/宽:+window.screen.height/window.screen.width

网页可见区域宽/高:+document.body.clientWidth/document.body.clientHeight

我喜欢一种暴力的方式:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    ///嘿嘿嘿    let device = window.innerWidth < window.innerHeight ? "phone" : "laptop";

CSS: @媒体查询

通过查询屏幕宽度判断手机,只局限于css样式; 特点是,媒体查询动态更新,非常方便,而且不仅适应屏幕大小,还动态兼容窗口尺寸的改变:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@CHARSET "UTF-8";@media (max-width: 991px) {    /*do something*/}@media (min-width: 1601px) {    /*do something*/}

HTML: 添加缩放标签

也是非常实用的,通常手机屏幕的ppi/dpi非常高,所以正常的字体会显得很小,于是最好在html头中添加以下viewport标签:

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

width 设置layout viewport 的宽度,为一个正整数,或字符串”width-device” initial-scale 设置页面的初始缩放值,为一个数字,可以带小数 minimum-scale 允许用户的最小缩放值,为一个数字,可以带小数 maximum-scale 允许用户的最大缩放值,为一个数字,可以带小数 height 设置layout viewport 的高度,这个属性对我们并不重要,很少使用 user-scalable 是否允许用户进行缩放,值为”no”或”yes”, no 代表不允许,yes代表允许

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-06-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 WebHub 微信公众号,前往查看

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
–我对移动端适配的了解
[总结]我对移动端适配的了解 不知不觉做前端已经两年了,从PC端,移动端,微信小程序一路走来到今天刚刚开放注册的快应用(手机厂商对抗小程序的新技能,所以在注册时用的是qq邮箱的话要去垃圾箱里才能找到注册邮件),对于前端圈日新月异的磅礴发展对于大前端发展是喜闻乐见的,这次的快应用的手机厂商们为其开放了应用入口和系统推广引流入口。这些新能力为前端开发者们带来更强的作战能力。 我们在开发PC站时经常在浏览器兼容问题上耗费巨大的时间,到了移动端,面对webkit内核的Safari与Chrome会舒心很多。b
大象无痕
2018/06/27
2.1K2
08-移动端开发教程-移动端适配方案
由于移动端的特殊性,屏幕的尺寸碎片化严重,要想很好的适配不同的尺寸的设备,需要我们前端开发相比PC端要做一些基层的适配方案。
老马
2018/02/18
3.6K0
08-移动端开发教程-移动端适配方案
移动端布局攻略
作者:Tolonger 原文链接:https://www.jianshu.com/p/9e7e755ca281 除了百分比流式布局之外,rem布局占据了目前移动端布局的热潮。那么究竟这几种布局差别在哪里,对应的有什么效果,希望本文能给你一些有益的启示。除此之外还有响应式布局,固定宽度布局等。 百分比流式布局 这里面最知名的当属bootstrap框架的思路,他所有的组件以及模板ui均是百分比流式布局,单位为px.并且我们看到的大部分对移动端适配的页面也均是采用这种核心思想去做的,方法简单,多端共用,可以针对
前端教程
2018/03/05
1.5K0
移动端布局攻略
总是听别人说响应式布局,原来这么简单
作者:麻酱 原文:http://www.majiang.life/blog/head-first-responsive-web-design/ 前言 总听别人说响应式布局,觉得是一个很高大上的东西,
程序猿DD
2018/02/01
8190
总是听别人说响应式布局,原来这么简单
H5移动端适配原理及方案
工作中接触到了移动端的开发,所以最近学习一下移动端相关内容。目前还是一个初学者,出现任何问题请多多谅解。大家如果只用电脑浏览网页的话,可能差别不算太大,但是如果使用移动设备(如手机和平板电脑)打开网页,就可能会遇到在不同设备上显示效果不尽人意。移动端页面需要具备响应式设计,以适应不同大小和分辨率的移动设备屏幕。使用流体网格布局、弹性图片和媒体查询等技术,确保页面在各种设备上都能良好显示。采用适合移动设备的布局方式,以确保用户在小屏幕上浏览时获得良好的用户体验。
bug开发工程师007
2024/06/14
6130
图文并茂让你必须弄懂 viewport
简单的说就是你的显示器的分辨率用物理像素描述的,而横向和纵向的分辨率值可以用screen.width/height打印出来。它们是显示器的功能,而不是浏览器的功能。不管窗口放大缩小,screen.width/height是不会变的。(IE7、8是例外,均以CSS像素为单位进行测量)。除非设置分辨率,让LED液晶板重新划分物理像素点,否则就认为分辨率不变。
砖业洋__
2023/05/06
6510
图文并茂让你必须弄懂 viewport
细说移动端 经典的REM布局 与 新秀VW布局
说到前端页面的布局方案,可以从远古时代的Table布局说起,然后来到 DIV+CSS布局,之后有了Float布局,Flex布局,Column布局,Grid布局等等。
书童小二
2018/10/09
12.1K0
细说移动端 经典的REM布局 与 新秀VW布局
前端学习笔记—移动端web开发
响应式网站:即pc和移动端共用一套网站,只不过在不同宽度的屏幕下,样式会自动适配。配合媒体查询监听,通过判断屏幕宽度来改变样式,以适应不同终端。例如:三星电子官网: www.samsung.com/cn/ 缺点:制作麻烦,需要花很大精力去调兼容性问题
木溪bo
2024/03/23
2800
前端学习笔记—移动端web开发
前端响应式布局为什么是个坑?
响应式设计:Responseive design,就是一个网站,一套代码能在所有终端能够正常展示,并不是为每个终端做一个特定版本,响应式是为解决移动互联网浏览器而诞生的。
呆呆
2021/11/30
1K0
IT课程 CSS基础 033_响应式布局
响应式布局是一种能够适应不同屏幕尺寸和设备的网页设计方法。通过使用响应式布局,可以使网页在不同的设备上保持良好的显示效果,无论是在桌面电脑、平板电脑还是手机上。
zhaoJian.Net
2024/04/03
1810
IT课程 CSS基础 033_响应式布局
HTML5中判断横屏竖屏
在移动端中我们经常碰到横屏竖屏的问题,那么我们应该如何去判断或者针对横屏、竖屏来写不同的代码呢。 首先在head中加入如下代码:
山河木马
2019/03/05
4.7K0
浅谈Web自适应
前言 随着移动设备的普及,移动web在前端工程师们的工作中占有越来越重要的位置。移动设备更新速度频繁,手机厂商繁多,导致的问题是每一台机器的屏幕宽度和分辨率不一样。这给我们在编写前端界面时增加了困难,适配问题在当下显得越来越突出。记得刚刚开始开发移动端产品的时候向设计MM要了不同屏幕的设计图,结果可想而知。本篇博文分享一些卤煮处理多屏幕自适应的经验,希望有益于诸君。 特别说明:在开始这一切之前,请开发移动界面的工程师们在头部加上下面这条meta: 简单事情简单做-宽度自适应 所谓宽度自适应严格来说是一种
企鹅号小编
2018/02/08
1.6K0
浅谈Web自适应
浅谈web自适应
随着移动设备的普及,移动web在前端工程师们的工作中占有越来越重要的位置。移动设备更新速度频繁,手机厂商繁多,导致的问题是每一台机器的屏幕宽度和分辨率不一样。这给我们在编写前端界面时增加了困难,适配问题在当下显得越来越突出。记得刚刚开始开发移动端产品的时候向设计MM要了不同屏幕的设计图,结果可想而知。本篇博文分享一些卤煮处理多屏幕自适应的经验,希望有益于诸君。
疯狂的技术宅
2019/03/28
1.4K0
浅谈web自适应
【适配】425- 彻底搞懂移动Web开发中的viewport与跨屏适配
viewport是移动端跨屏适配的基石,吃透这一概念,任何复杂多变的适配需求,都可以手到擒来。
pingan8787
2019/11/29
3.3K0
移动前端开发之viewport的深入理解
在移动设备上进行网页的重构或开发,首先得搞明白的就是移动设备上的viewport了,只有明白了viewport的概念以及弄清楚了跟viewport有关的meta标签的使用,才能更好地让我们的网页适配或响应各种不同分辨率的移动设备。 一、viewport的概念 通俗的讲,移动设备上的viewport就是设备的屏幕上能用来显示我们的网页的那一块区域,在具体一点,就是浏览器上(也可能是一个app中的webview)用来显示网页的那部分区域,但viewport又不局限于浏览器可视区域的大小,它可能比浏览器的可视区域
前朝楚水
2018/04/02
1.1K0
移动前端开发之viewport的深入理解
PC端、移动端的页面适配及兼容处理
劣势:需加载适配各个终端的各个资源,在不同终端通过响应式布局实现不同展现,部分交互效果需要在页面中做终端判断,代价较大,若图片资源为一套,部分图片在超高分辨率设备(例如iphone系列)下会失真,且在非wifi情况下即使加了延时加载也易出现加载慢的情况。
编程内马尔
2022/11/15
2.9K0
移动端基础
  视口(viewport)就是浏览器显示页面内容的屏幕区域。视口可分为布局视口、视觉视口和理想视口
清出于兰
2020/10/26
1.5K0
可爱的rem
嗯,这种的样式的工作量超级大,因为要对图片和文字等资源针对不同的尺寸进行设置。一种凉凉的感觉从心底飘过~~~
Jimmy_is_jimmy
2019/07/31
9530
响应式布局,你需要知道这些
https://juejin.cn/post/6951575591099301895
前端达人
2021/05/11
1.9K0
面试官:你了解过移动端适配吗?
很多人聊起移动端适配都是懵逼状态,都想口吐芬芳。难道移动端还要适配,直接px写死,其他自适应不就完了吗?其实不然,要求严格的公司会要求缩放比例完全相同,简单说就是,在每个手机上的每一行的字数都要一样。接下来,我们就要细说移动端适配的前世今生
用户7413032
2020/06/11
1.4K0
面试官:你了解过移动端适配吗?
相关推荐
–我对移动端适配的了解
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验