移动端htm5一些兼容问题

十多年前web叩响了互联网时代的大门,十年后的今天,移动互联网的战幕率先由原生应用(Native app)拉开,移动web应用则后来居上。二者之间做何取舍,成为了广大产品决策者、开发者和学习者们争执不下的问题。

html语言是整个Web的基石,是一种标记的语言。对于html本身而言,其实并没有任何可以显示的东西,他只是承载了抽象意义上的一段信息,这段信息如何显示,由谁显示对html本身来说并不重要。而解读html的具体客体,通常被称为用户代理(UserAgent),即我们所说的浏览器。

html5为日益丰富的信息提供更简单更强大的描述能力,是html的升级版,使html文档所承载的信息更容易被所有人访问,更像是为移动设备而生的技术。

web开发在过去有非常多的局限,尤其是安全和设备访问相关的部分。相比于传统的桌面web开发,基于html5可以方便地构建类似传统客户端软件的网页App,可以访问磁盘系统和摄像头等敏感设备,轻松将桌面软件擅长的领域带入web的世界。对于当前的主流移动设备而言,定位、触摸和传感器是其重要特点,而html5在这些方面也有鼎力的支持。

一下总结出一些html5在移动端浏览器可能遇到的问题,供参考。

1.

iOS Safari 委托在document的事件失效

Safari 对click事件定义只能冒泡到body下面的子节点,所以委托在document上得click事件不会被触发!

解决方法为body得子节点添加click事件既可以解决。

$("body").children().click(function () {});

2.

iOS Safari 双击后事件失效bug

bug 出现在弹出层双击空白区域后,浏览器scroll下移一部分,页面点击事件失效。

解决方法:弹出层禁止touchstart;

3.

Android手机$(window).width() Bug

部门安卓手机通过Zepto.js提供得 $(window).width(); $(window).height()获取浏览器视图宽度与实际宽度不一致。

解决方法:通过document.documentElement.clientWidth 获取宽度。

var pageWidth = document.documentElement.clientWidth;

var pageHeight = document.documentElement.clientHeight;

4.

关闭iOS键盘首字母自动大写

在iOS中,默认情况下键盘是开启首字母大写的功能的,如果启用这个功能,可以这样:

5.

手机拍照和上传图片



ios 有拍照、录像、选取本地图片功能

部分android只有选取本地图片功能

6.

webview中viewport固定宽度全屏显示方法

由于一些移动端游戏或互动形式 布局(元素)需要固定大小,又需要自适应屏幕,

可以通过设置视口宽度等于固定值让浏览器自动缩放页面的方法来实现

其中的width=640就是网页内容区的宽度,需要在不同手机上刚好全屏显示,target-densitydpi=device-dpi设置后,css中的1px就会等于物理像素中的1px。

补充:由于safari浏览器不支持 target-densitydpi = device-dpi,所以加入JS代码自动调整缩放比例,调整后的代码:

if(screen.width < 640) {

document.getElementById('WebViewport').setAttribute('content', 'width=640,initial-scale=' + screen.width / 640 + ',target-densitydpi=device-dpi,minimum-scale=0.1,maximum-scale=1,user-scalable=no');

}

6.1

Meta基础知识:

H5页面窗口自动调整到设备宽度,并禁止用户缩放页面

//一、HTML页面结构

// width    设置viewport宽度,为一个正整数,或字符串‘device-width’

// height   设置viewport高度,一般设置了宽度,会自动解析出高度,可以不用设置

// initial-scale    默认缩放比例,为一个数字,可以带小数

// minimum-scale    允许用户最小缩放比例,为一个数字,可以带小数

// maximum-scale    允许用户最大缩放比例,为一个数字,可以带小数

// user-scalable    是否允许手动缩放

//二、JS动态判断

var phoneWidth =  parseInt(window.screen.width);

var phoneScale = phoneWidth/640;

var ua = navigator.userAgent;

if (/Android (\d+\.\d+)/.test(ua)){

var version = parseFloat(RegExp.$1);

if(version>2.3){

document.write('');

}else{

document.write('');

}

} else {

document.write('');

}

6.2





6.3

其他meta标签












7.关于Rentina

Rentina显示屏原理及设计方案

说明:retina屏是一种具备超高像素密度的液晶屏,同样大小的屏幕上显示的像素点由1个变为多个,如在同样带下的屏幕上,苹果设备的retina显示屏中,像素点1个变为4个。

在高清显示屏中的位图被放大,图片会变得模糊,因此移动端的视觉稿通常会设计为传统PC的2倍。

那么,前端的应对方案是:设计稿切出来的图片长宽保证为偶数,并使用backgroud-size把图片缩小为原来的1/2

//例如图片宽高为:200px*200px,那么写法如下

.css{width:100px;height:100px;background-size:100px 100px;}

//其它元素的取值为原来的1/2,例如视觉稿40px的字体,使用样式的写法为20px

.css{font-size:20px}

//image-set设计Rentina背景图

image-set,webkit私有属性,也是CSS4的属性,为解决Rentina屏幕下的图像而生。

.css {

background: url(images/bg.jpg) no-repeat center;

background: -webkit-image-set(

url(images/bg.jpg) 1x,     //支持image-set普通屏

url(images/bg-2x.jpg) 2x); //支持image-set的Rentinan

}

移动端字体单位font-size选择px还是rem

// 如需适配多种移动设备,建议使用rem。以下为参考值:

html { font-size: 62.5%; }   //10*16 = 62.5%

//设置12px字体   这里注意在rem前要加上对应的px值,解决不支持rem的浏览器的兼容问题,做到优雅降级

body { font-size:12px; font-size:1.2rem; }

其他问题:

jQuery ajax在微信内置浏览器中,初始配置before、behind不好用.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,332评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,508评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,812评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,607评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,728评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,919评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,071评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,802评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,256评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,576评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,712评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,389评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,032评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,026评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,473评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,606评论 2 350

推荐阅读更多精彩内容