手机触屏网站开发技巧总结

2024-07-02

手机触屏网站开发技巧总结(精选2篇)

篇1:手机触屏网站开发技巧总结

手机网站开发 http://

手机触屏网站开发技巧总结

侦测iPhone/iPod 开发特定设备的移动网站,首先要做的就是设备侦测了。下面是使用Javascript侦测iPhone/iPod的UA,然后转向到专属的URL。Code: if((navigator.userAgent.match(/iPhone/i))||(navigator.userAgent.match(/iPod/i))){ if(document.cookie.indexOf(“iphone_redirect=false”)==-1){

window.location = “http://

Code:

阻止旋转屏幕时自动调整字体大小

-webkit-text-size-adjust是webkit的私有css: Code: html, body, form, fieldset, p, div, h1, h2, h3, h4, h5, h6 {-webkit-text-size-adjust:none;} 侦测设备旋转方向 iPhone可以在横屏状态下浏览网页,有时候你会想知道用户设备的手持状态来增强可用性和功能。下面一段Javascript可以判断出设备向哪个方向旋转,并且替换css: Code: window.onload = function initialLoad(){updateOrientation();}

function updateOrientation(){

var contentType = “show_”;switch(window.orientation){

case 0: contentType += “normal”;break;

case-90: contentType += “right”;break;

case 90: contentType += “left”;

break;

case 180:

手机网站开发 http://

contentType += “flipped”;break;}

document.getElementById(“page_wrapper”).setAttribute(“class”, contentType);}

iPhone才识别的CSS

如果不想设备侦测,可以用CSS媒体查询来专为iPhone/iPod定义样式。Code: @media screen and(max-device-width: 480px){}

CSS3媒体查询 对于CSS3的媒体(media)查询,iPhone和iPad是不同的。通过这个技术,可以对设备不同的握持方向应用不同的样式,增强功能和体验。

iPhone是通过屏幕最大宽度来侦测的。是这样:

Code: 而iPad有点不同,它直接使用了媒体查询中的orientation属性。是这样: Code:

之后只要将不同的样式分别定义出来就可以了。

缩小图片

网站的大图通常宽度都超过480像素,如果用前面的代码限制了缩放,这些图片在iPhone版显示显然会超过屏幕。好在iPhone机能还够,我们可以用CSS让iPhone自动将大图片缩小显示。Code:

@media screen and(max-device-width: 480px){

img{max-width:100%;height:auto;}

}

手机网站开发 http://

注意如果原图片非常大,或一个页面非常多图,最好还是在服务器端缩放到480像素宽,iPhone只需要在正常浏览时缩略到320像素。这样不会消耗太多流量和机能。

默认隐藏工具栏

iPhone的浏览器工具栏会在页面最顶端,卷动网页后才隐藏。这样在加载网页完成后显得很浪费空间,特别是横向屏幕时。我们可以让它自动卷动上去。Code:

模拟:hover伪类 因为iPhone并没有鼠标指针,所以没有hover事件。那么CSS :hover伪类就没用了。但是iPhone有Touch事件,onTouchStart 类似 onMouseOver,onTouchEnd 类似 onMouseOut。所以我们可以用它来模拟hover。使用Javascript:

Code:

var myLinks = document.getElementsByTagName(„a‟);for(var i = 0;i < myLinks.length;i++){

myLinks[i].addEventListener(‟touchstart‟, function(){this.className = “hover”;}, false);myLinks[i].addEventListener(‟touchend‟, function(){this.className = “”;}, false);

}

然后用CSS增加hover效果:

Code:

a:hover, a.hover { /* 你的hover效果 */ }

这样设计一个链接,感觉可以更像按钮。并且,这个模拟可以用在任何元素上。

手机网站开发 http://

iphone fixed positioning

Code: 关于漂浮定位,测试后发现 { position: fixed;} 不能为其用,可以改为 { position:absolute;} 来实现,可以使用iphone看下DEMO:iphone-fixed-positioning Touch Events iPhone 是使用触屏的方式,所以就需要有手触屏和离开的时候的事件机制,幸好,iPhone做好了这方面的工作,提供了四个处理touch的事 件:touchstart,touchend,touchmove,touchcancel(when the system cancels the touch)。

Gestures 即是指两只手指接触屏幕的时候缩放或者旋转的效果,对于侦听gestures,iPhone也有三个事件:gesturestart,gestureend,gesturechange。

同时事件参数event有两个属性:scale,rotate。Scale的中间值是1,大于1表示放大,小于1表示缩小。

手机网站开发 http://

篇2:手机触屏网站开发技巧总结

手机网站开发,有着许多不为人知的困难:

一是可参考的资料太少,大部分手机网站都处于起步阶段,很多的时候都是摸着石头过河,而鉴于手机网站的特殊性,也使得我们在参考成功案例之余,要做更多的思考; 二是兼容性工作异常艰辛,难度一点也不比web网站的兼容性工作来的低。对于手机网站来说,相信现在仅仅只是个开始,随着各种新机型的相继面世,这块领域必将成为兵家必争的新高地。

一、手机用户设备统计分析:

拥有全面的用户数据,无疑能帮助我们做出更符合用户需求的产品。内部数据能帮我们精确了解我们的目标用户群的特征;而外部数据能告诉我们大环境下的手机用户状况,并且能在内部数据不够充分的时候给予我们一些非常有用的信息。

从外部数据来看,09年10月到11月期间

国内浏览器品牌市场占有率前三甲为:

Nokia(78%)

Opera(OEM)(10%)

iPhone(Safari)(3%)

国内的手机操作系统前三甲为:

Nokia SymbianOS(80%)

iPhoneOS(6%)

SonyEricsson(5%)

当然,作为中国的手机网站开发者,不能忽视强大的山寨机市场(或者应该叫作做国货精品手机市场?)。顺便提一下,这类手机通常使用的是MTK操作系统。(以上数据均来自statcounter.com)

二、手机浏览器兼容性测试结果概要:

注意:以下所说的“大多数”是指在测试过的机型中,发生此类状况的手机占比达50%及以上,“部分”为20%到50%;“少数”为20%及以下。而这个概率也仅仅只限于我们所测试过的机型,虽然我们采集的样本尽量覆盖各种特征的手机,但并不代表所有手机的情况。

XHTML部分:

大多数手机不支持的:

表单元素的“disable”属性

部分手机不支持的:

“button”标签

“input[type=file]“标签

“iframe”标签。

虽然只有部分手机不支持这几个标签,但因为这些标签在页面中往往具有非常重要的功能,所以属于高危标签,要谨慎使用。

少数手机不支持的:

“select”标签:该标签如果被赋予比较复杂的CSS属性,可能会导致显示不正常,比如”vertical-align:middle”。

CSS部分

大部分手机不支持的:

“font-family”属性:因为手机基本上只安装了宋体这一种中文字体;

“font-family:bold;”:对中文字符无效,但一般对英文字符是有效的;

“font-style: italic;”:同上;

“font-size”属性:比如12px的中文和14px的中文看起来一样大,当字符大小为18px的时候你也许能看出来一些区别;

“white-space/word-wrap”属性:无法设置强制换行,所以当你网页有很多中文的时候,需要特别关注不要让过多连写的英文字符撑开页面;

“background-position”属性:但背景图片的其他属性设定是支持的;

“position”属性;

“overflow”属性;

“display”属性;

“min-height”和”min-weidth”属性;

部分手机不支持的:

“height”属性:对”height”的支持不太好,奇怪的是在我们的测试当中,仅仅只有很少部分手机不支持”width”属性;

“pading”属性

“margin”属性:更高比例的手机不支持”margin”的负值。

少数手机不支持的:

少数手机对CSS完全不支持;

JavaScript部分

这部分测试相对不那么让人抓狂,要么干脆不支持,如果支持的话,对基本的dom操作、事件等支持度都还不错。但我们没有测试过很复杂的脚本。

在我们测试过的手机当中,支持(包括不完全支持)JavaScript的手机比例大约在一半左右,当然,对于我们来说,最重要的不是这个比例,而是要如何做好JavaScript的优雅降级。

其他

部分手机不支持png8和png24,所以尽量使用jpg和gif的图片

另外对于平滑的渐变等精细的图片细节,部分手机的色彩支持度并不能达到要求,所以慎用有平滑渐变的bar设计

部分手机对于超大图片,既不进行缩放,也不显示横下滚动条

少数手机在打开超过20k的测试页面时,会显示内存不足

三、手机网站开发中需要注意的常见问题:

手机网页编码需要遵循什么规范?

遵循XHTML Mobile Profile规范(WAP-277-XHTMLMP-20011029-a.pdf),简称为XHTML MP,也就是通常说的WAP2.0规范。XHTMLMP是为不支持XHTML的全部特性且资源有限的客户端所设计的。它以XHTML Basic为基础,加入了一些来自XHTML 1.0的元素和属性。这些内容包括一些其他元素和对内部样式表的支持。和XHTML Basic相同,XHTML MP是严格的XHTML 1.0子集。

网页文档推荐使用什么扩展名?

推荐命名为xhtml,按WAP2.0的规范标准写成html/htm等也是可以的。但少数手机对html支持的不好。

为什么现今大多数的网站一行字数上限为14个中文字符?

由于手持设备的特殊性,其页面中实际文字大小未必是我们在CSS中设定的文字大小,尤其是在第三方浏览器中。例如Nokia5310,其内置浏览器 页面内文字大小与CSS设定相符,但是第三方浏览器OperaMini与UCWEB页面内文字大小却大于CSS设定。经测试,其文本大

概在16px左右。假如屏幕分辨率宽度为240px,去除外边距,那么其一行显示14个字以内,是比较保险(避免文本换行)的做法。

使用WCSS还是CSS?

WCSS(WAP Cascading Style Sheet 或称 WAP CSS)是移动版本的CSS样式表。它是CSS2的一个子集,去掉了一些不适于移动互联网特性的属性,并加入一些具有WAP特性的扩展(如-wap-input-format/-wap-input-required/display:-wap-marquee等)。需要留意的是,这些特殊的属性扩展并不是很实用,所以在实际的项目开发当中,不推荐使用WCSS特有的属性。

避免空值属性

如果属性值为空,在web页面中是完全没有问题的,但是在大部分手机网页上会报错。

网页大小限制

建议低版本页面不超过15k,高版本页面不超过60k。

用手机模拟器和第三方手机浏览器的在线模拟器来测试页面是不是靠谱?

有条件的话,我们当然建议在手机实体上进行测试,因为目标客户群的手机设备总是在不断变化的,这些手机模拟器通常不能完全正确的模拟页面在手机上的显示情况,比如图片色彩,页面大小限制等就很难再模拟器上测试出来。当然,一些第三方手机浏览器的在线模拟器还是可以进行测试的,第三方浏览器相对来说受手机设备的影响较小。

四、推荐参考资料:

开发权威网站

(汉化版)

经典开发文章

手机型号查询

机型很全,偏国外机型,参数较多

机型较全,偏门机型可能无内容

试手机网:手机查询+模拟.html 机型稍少,可以模拟手机操作

五、总结

目前来说,手机网站开发是个典型的设备驱动开发的过程,页面被设计成什么样,能做到怎么样,几乎全取决于目标客户的手机设备情况。

所以,对手机设备的了解,对于设计开发过程有着直观重要的作用,对于前端来说,就需要有计划的进行长期的手机浏览器兼容性测试,什么样的设计能被实现,什么样的标签可以使用,这些都需要有数据的支持。

我们必须有这样的认知,开发的手机网页总是会在或多或少的手机设备上出现问题,因为我们永远无法知道所有用户的手机设备情况,所以我们更要尽量的遵循标准进行开发,这样才能将满足用户的比例做到最好。

上一篇:工会转移介绍信下一篇:没有网络的一天作文