<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>紫枫印象 &#187; WAP</title>
	<atom:link href="http://www.86ue.com/archives/category/front-technology/wap/feed" rel="self" type="application/rss+xml" />
	<link>http://www.86ue.com</link>
	<description>UED web2.0 前端技术 用户体验 SEO 80后</description>
	<lastBuildDate>Sun, 14 Mar 2010 14:02:08 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>探索移动Web网页编码设计</title>
		<link>http://www.86ue.com/archives/768</link>
		<comments>http://www.86ue.com/archives/768#comments</comments>
		<pubDate>Sat, 06 Feb 2010 15:30:26 +0000</pubDate>
		<dc:creator>紫枫印象</dc:creator>
				<category><![CDATA[WAP]]></category>
		<category><![CDATA[前端技术]]></category>
		<category><![CDATA[Mobile Web]]></category>
		<category><![CDATA[手机网站]]></category>
		<category><![CDATA[移动web]]></category>
		<category><![CDATA[设计]]></category>

		<guid isPermaLink="false">http://www.86ue.com/?p=768</guid>
		<description><![CDATA[如果你正准备为你的网站制作一个移动设备版本，那这篇文章将会对你相当有用，在本文中，将探索移动Web网页编码设计的各种技巧和注意事项：

    * 为了移动设备上的用户体验可以被接受，代码得怎么设计。
    * “Mobile Web”与普通网站的不同之处？
    * 可以让网站成功运行在移动设备和桌面浏览器上的基本技巧
    * 一些Mobile Web设计中的建议和禁忌、以及大量资源

Mobile Web和普通网站到底有何不同呢？

这是个很好的问题 – 首先，也许我们应该从“什么是Mobile Web”的问题开始。毕竟，用户用移动设备访问的Mobile Web，跟他们在家里用台式机访问的网站是独立的不同的部分。当我说“Mobile Web”时，我指的是“通过移动设备访问的网站”。

在Opera，我们全身心投入而创造出的浏览器允许你查看整个网络，不管浏览设备是否有这个能力。只要你在建立网站时，付出一点儿细心、尊敬并遵循 Web标准，你就可以为所有人所有设备创建只有一个版本的网站 – 唯一的一个网站。但是，有一些例外情况 – 在某些情况下，只有分版本的网站才行得通，一会你会看到这一点。
移动领域的竞争环境并不平衡

在桌面领域，对于我们前端开发者来说，形式正在好转 – 大多数现代浏览器已经对Web标准支持的非常好了，无论是Opera、firefox（以及其他 Gecko内核浏览器）或者Safari（以及其他 Webkit内核浏览器），甚至IE带给我们的痛苦都比原来少了。虽然IE6的用户群体数量仍然非常杯具，但这应该归结于大多数人封闭的使用习惯等因素。 但是，移动设备领域在这方面却是不同寻常的：

    * 你拥有能为“Full Web”提供支持的浏览器，像iphone上的Opera Mobile和Safari。Opera Mobile使用了与桌面版本相同的渲染引擎，所以对标准的支持相差无几。
    * 你拥有并不很爽的浏览器，例如IE，它们对Web标准仅能提供有限的支持。它们中的一部分只支持WAP（例如WinWap），另一些支持其他像 Chtml或HTML-MP这样的标准（例如日本NTT DoCoMo的iMode浏览器），还有一些只支持Web标准中的有限子集（例如Netfront、Pocket IE、以及Blazer）。
    * 最后，你拥有OperaMini， 以及其他通过代理机制的浏览器。它主要只是作为连接用户和一个大服务器群的客户端界面。当用户提交一个URL时，客户端会让服务端查找这个页面。然后它会 把页面转换成一个轻量级的二进制标记语言，将它格式化成适合移动设备查看的形式，并发送回客户端显示。这种方式的最主要优势，是可以使页面体积减少90% 左右，帮助用户节省很多带宽费用。这种标记语言表明Web标准并不能很好的表现在移动设备上，因为在这种服务的方式下，OperaMini对 ajax/javascript某些方面将支持的不是很好 – 在这儿有更详细的解释。

注意：不要指望你的超级Ajax和DOM脚本动画网站在移动设备上会有良好表现。JavaScript在移动设备上的支持程度千差万别。时刻提供优雅降级吧。这种做法有一个例子叫做Hijax。]]></description>
			<content:encoded><![CDATA[<p>如果你正准备为你的网站制作一个移动设备版本，那这篇文章将会对你相当有用，在本文中，将探索移动Web网页编码设计的各种技巧和注意事项：</p>
<p>    * 为了移动设备上的用户体验可以被接受，代码得怎么设计。<br />
    * “Mobile Web”与普通网站的不同之处？<br />
    * 可以让网站成功运行在移动设备和桌面浏览器上的基本技巧<br />
    * 一些Mobile Web设计中的建议和禁忌、以及大量资源</p>
<p>Mobile Web和普通网站到底有何不同呢？</p>
<p>这是个很好的问题 – 首先，也许我们应该从“什么是Mobile Web”的问题开始。毕竟，用户用移动设备访问的Mobile Web，跟他们在家里用台式机访问的网站是独立的不同的部分。当我说“Mobile Web”时，我指的是“通过移动设备访问的网站”。</p>
<p>在Opera，我们全身心投入而创造出的浏览器允许你查看整个网络，不管浏览设备是否有这个能力。只要你在建立网站时，付出一点儿细心、尊敬并遵循 Web标准，你就可以为所有人所有设备创建只有一个版本的网站 – 唯一的一个网站。但是，有一些例外情况 – 在某些情况下，只有分版本的网站才行得通，一会你会看到这一点。<br />
移动领域的竞争环境并不平衡</p>
<p>在桌面领域，对于我们前端开发者来说，形式正在好转 – 大多数现代浏览器已经对Web标准支持的非常好了，无论是Opera、firefox（以及其他 Gecko内核浏览器）或者Safari（以及其他 Webkit内核浏览器），甚至IE带给我们的痛苦都比原来少了。虽然IE6的用户群体数量仍然非常杯具，但这应该归结于大多数人封闭的使用习惯等因素。 但是，移动设备领域在这方面却是不同寻常的：</p>
<p>    * 你拥有能为“Full Web”提供支持的浏览器，像iphone上的Opera Mobile和Safari。Opera Mobile使用了与桌面版本相同的渲染引擎，所以对标准的支持相差无几。<br />
    * 你拥有并不很爽的浏览器，例如IE，它们对Web标准仅能提供有限的支持。它们中的一部分只支持WAP（例如WinWap），另一些支持其他像 Chtml或HTML-MP这样的标准（例如日本NTT DoCoMo的iMode浏览器），还有一些只支持Web标准中的有限子集（例如Netfront、Pocket IE、以及Blazer）。<br />
    * 最后，你拥有OperaMini， 以及其他通过代理机制的浏览器。它主要只是作为连接用户和一个大服务器群的客户端界面。当用户提交一个URL时，客户端会让服务端查找这个页面。然后它会 把页面转换成一个轻量级的二进制标记语言，将它格式化成适合移动设备查看的形式，并发送回客户端显示。这种方式的最主要优势，是可以使页面体积减少90% 左右，帮助用户节省很多带宽费用。这种标记语言表明Web标准并不能很好的表现在移动设备上，因为在这种服务的方式下，OperaMini对 ajax/javascript某些方面将支持的不是很好 – 在这儿有更详细的解释。</p>
<p>注意：不要指望你的超级Ajax和DOM脚本动画网站在移动设备上会有良好表现。JavaScript在移动设备上的支持程度千差万别。时刻提供优雅降级吧。这种做法有一个例子叫做Hijax。</p>
<p>我们可以看到，在移动设备的跨浏览器兼容方面，你要思考的问题有很多。但是不要怕 – 我随后的建议会给你指引一个正确的方向；并且随着时间的推移，移动浏览器对标准的支持将会得到改善，届时我们前端开发者真的再也不需要为它们操心了。你问 我这一切什么时候会实现？Who knows！<br />
移动浏览器的其它限制还有那些？</p>
<p>当然，在移动设备上开发网站时，除了浏览器对标准的支持外，还会遇到其它更多的限制因素。设备自身的限制因素，你也不得不考虑。例如：</p>
<p>    * 有限的控制 – 不要只假设你的用户会使用鼠标来控制页面中的一切，你也要提供键盘的选择。一些手机用户可能没有类似鼠标这样的东东，所以类似这样的结构 :hover 以及 onClick 对 他们来说是没有用的（这对可用性方面也是非常重要的 – 一些残障用户可能在用手方面会有些缺陷）。为用户提供的表单设计也同样重要 – 你可能已经感受到，用手机来填写那些又臭又长的必填表单有多么不爽。为了解决这个问题，试着去把那一坨内容用下拉菜单的方式展现出来，这比等着用户一个字 一个字手动输入来的更靠谱（译者注：目前国内有某些山寨机浏览器对下拉菜单的支持可能有不同程度的问题。例如基于MTK系统的联想i61，默认情况下会显示所有选项，而在某些情况下会产生变形和“漂移”，使用时需要谨慎些）。另外，给表单设置一个最有可能的初始值，也是一个好主意。<br />
    * 有限的屏幕尺寸 – 想象一下你那美妙的1024×768的设计在240×320屏幕下，或者更小的屏幕下，它的可用性会是什么样子……有一些方法可以应对这个情况 – 你可以故意把页面设计的很简洁流畅，或者你可以通过采取功能检测或媒体类型检测（诸如此类）的手段，为移动设备提供不同的页面。另外对于屏幕尺寸，有些手 机可能不需要这么麻烦，它们可能会提供“缩放模式”这样的机制，但是你却不能保证这一点。<br />
    * 有限的内存和带宽 – 移动设备所提供的可用内存明显比台式机少得多。因此，在你设计站点时，需要特别小心的考虑那些超大容量的相册图片，以及交互式流媒体视频的应用程序。此外，一些移动浏览器提供了关闭图像显示的选项，但是你也同样不能确定这一点。<br />
    * 有限的排版 – 我靠，你对台式机上那些排版非常痴情？你没有看到移动设备上的表现！虽然这条规则有很多例外情况，但大多数移动设备对字体的选择非常有限，只有一两种（like 1 or 2）。这个限制是由系统或浏览器决定的。<br />
    * 有限的颜色 – 一些移动设备在颜色方面的支持也非常有限。考虑你有多少页面的体验需要依赖于颜色，并确认那些对比色在移动设备上仍然支持。</p>
<p>这些限制因素，就是导致Mobile Web的体验与PC Web的体验不同之处的真正原因。千万别欺骗自己，觉得自己的网站在移动设备上的用户体验与台式机上会保持一致 – 这纯属YY。当然，你抛开浏览器，千方百计去确认用户体验这一点仍然值得肯定。</p>
<p>真正的办法，去确保你的网站为移动用户提供一个良好的体验，是测试，测试，再测试！一些Web设计师们已经认识到，除了他们自己的手机、台式机以及游戏机浏览器外，还需要有一大堆移动设备需要准备在手头。<br />
解决问题的不同方法</p>
<p>人们普遍意识到，有三种办法可以解决移动开发的问题（已经被Cameron Moll证实了 – 找他的书看看）。可能的话，我建议你试试这三种方式 – 如前所述，在Opera，我们坚持相信One Web的理念 – 但是刚才我也说过，有些情况下这是很难实现的，或者也是没有必要的。下面是这三种方法：</p>
<p>   1. 务必坚持遵循Web标准<br />
   2. 创建一个完全独立的移动网站<br />
   3. 只创建一个站点(One Web)，但是根据浏览它的设备和浏览器情况，添加优化代码。</p>
<p>现在，让我们开始对这些点逐个讲解。<br />
坚持遵循Web标准和最佳实践</p>
<p>一个好网站的基础，是要有一个好的HTML结构，以及美妙的CSS（表现）和JavaScript（行为）。如果你认真地遵循Web标准，大多数移动浏览器至少会很好地解析并至少会基本可用，这是非常有可能的。例如：</p>
<p>    * 一个网站，有良好的HTML结构顺序并在HTML中没有装饰性图片，在移动浏览器的单列模式或移动模式中，会呈现得很有逻辑性。<br />
    * 如果你的表单元素中含有“label”元素，浏览器将把它渲染得更有表单区域的感觉。<br />
    * 如果你给CSS和JavaScript使用了优雅降级/渐进增强技术，浏览器如果不支持、简化、忽略某些属性，这时站点的可用性几率会大大增加。</p>
<p>如果你花费时间精力去研究的话，在提升移动用户体验方面，还有更多事情可以去做。如果你的目标受众包括大量使用非HTML浏览器（例如支持WAP或 CHTML的某些日本浏览器）用户，那么你可能不得不检测设备并提供适当的内容。<br />
提供一个完全独立的移动网站</p>
<p>如前所述，我认为如果可能的话应该尽量避免使用这种方式。你可以做设备检测并自动重定向来避免给用户使用带来麻烦，但是这意味着你不得不维护两套网站。最主要的方法是通过UA嗅探来识别浏览器，或在服务端进行设备功能检测，然后再给用户提供相应的站点。在dev.opera.com，有很多优秀的文章来讲述如何实现 – 查看最后的资源部分。</p>
<p>但也有例外，对于完全独立的网站来讲 – 你不得不始终考虑用户体验情况。某些类型的浏览设备可能不兼容于特定的网站或者特定的功能。例如，有一个大学校园网，带有部门电话号码的搜索功能，但同时 也包含了一大堆校园历史的网页。如果你想去与某人会面却找不到他们部门时，你大概会想在移动设备上使用搜索功能，但你在外出的时候也不太可能想坐下来阅读 那么多的文字。</p>
<p>在这种情况下，你可以使用下面提到的一些技巧，来为移动设备提供网站中某个功能的一部分，或者干脆为移动设备创建一套完全独立的网站。你只需检测用 户使用的设备类型并自动提供给他相应的站点，并把这个过程完全公开给用户，但是很多很多人并不愿意这个功能把他们完全限制住，所以如果你要这么做的话，就 需要给用户提供一个指向完整站点的链接，用户可以自行选择是否用它来访问完整站点。</p>
<p>一句话警告 – 设备检测很容易被滥用。你可能经常看到一个网站的桌面版本非常牛B，而它的移动站点却非常的垃圾。因为开发者只是将移动站点放在一个非常低标准的位置上。 事实上，目标受众的设备水平并不均衡，现在很多的移动浏览器都具有处理完整Web页面的能力了！你应该尽可能地让设备发挥他们最高的处理能力，并且要发挥 移动设备的特别优势，比如基于位置的服务（LBS），还有 tel: 协议 – 在超链接点击时它可以让设备拨打一个电话号码。<br />
只提供一个网站(One Web)</p>
<p>进行到这里时，就开始变得有趣了。你可以再次依靠服务端功能检测，但这次是在单一网站的基础上进行优化，而不是重定向到另一个独立网站。有一些手机所支持功能的数据库可以参考，例如WURFL。它是以XML文件的形式开放的，你可以在设计优化内容之前，先通过它来查询设备所支持的功能。你还可以查询移动设备的UA字符串，找出这些设备的其他细节参数，例如是否有摄像头，屏幕尺寸是多少，以及它的语言种类等信息。</p>
<p>在客户端，你已经得到了为移动设备而优化内容所需的两个条件 – 媒体类型（media types）和媒体查询（media queries）。<br />
媒体类型(media types)</p>
<p>就像你知道的那样，你可以指定不同的CSS来实现不同的用途，例如：</p>
<pre line="1" lang="css">
<link href="main.css" type="text/css" media="screen" rel="stylesheet">
<link href="print.css" type="text/css" media="print" rel="stylesheet">
<link href="mobile.css" type="text/css" media="handheld" rel="stylesheet">
</pre>
<p>手持类的媒体类型允许你针对移动设备使用优化版的样式（例如精简的布局和排版等）。这是一个被支持得很好的机制，实现起来也很简单，但它确实有它的 缺陷。就像之前所说，它经常被开发者滥用，来给网站提供一个蹩脚的最低标准布局。事实上，OperaMini最近改变了默认类型，把默认使用手持型样式表 （handheld stylesheet）改为屏幕型样式表（screen stylesheet）。OperaMini可以处理大多数完整网站，因此它并不真正需要使用手持型样式表（handheld stylesheet）。如果你乐意，你可以在OperaMini的浏览器选项中手动设置回移动视图。<br />
媒体查询(media queries)</p>
<p>媒体查询是CSS3的一个构想，它的用途跟条件注释非常相似 – 你可以把一大堆CSS规则封装嵌入到一个媒体查询中，然后把它应用到你的标记结构中，这一切取决于一个条件，类似“屏幕尺寸是否小于480px？”然后把代码放进去，代码类似这样：</p>
<pre line="1" lang="css">
img {
  margin: 0 0 10px 10px;
  float: right;
}

@media all and (max-width: 480px) {
  img {
    margin: 10px auto;
    float: none;
    display: block;
  }
}
</pre>
<p>你甚至可以使用多个媒体查询，像下面这样：</p>
<pre line="1" lang="css">
body {
  max-width:800px;
  font-family:georgia, serif;
}

img {
  margin:0 0 10px 10px;
  float:right;
}

.info {
  position:absolute;
  left:8000px;
}

@media all and (max-width: 480px) {
  img {
    margin:10px auto;
    float:none;
    display:block;
  }
}

@media all and (max-width: 240px) {
  img {
    display:none;
  }
  .info {
    position:static;
  }
}
</pre>
<p>OK，在这个例子中（源代码点击这里查看），浏览器中的图片在屏幕大于480px时会向右浮动，文本会环绕图片并通过外边距留出一点儿舒服的距离（另有一个信息隐藏在 p 元素中，并命名了一个 class 叫 info &#8211; 看看HTML代码）。文本流在一些小屏幕中看起来可能会有些蹩脚，因为那里没有足够的空间来让图片和定量的文本放置在同一行中，所以当屏幕小于480px 时，图片就需要改变一下，让文本不再围绕在它旁边，而是用 display:block 让它们显示在不同行中。等等 – 还有更精彩的！如果屏幕非常小以至于不能有效地展示图片，那就让它们消失，然后让隐藏信息显示在图片那儿，替代那些图片显示文本描述 – 这是一种将信息传达给读者的一种另类技巧，利用它也可以为那些使用屏幕阅读器的盲人用户提供原始文本，以便他们顺利浏览网站。图1展示了三个不同的浏览视 图，这是在那些支持媒体查询的浏览器中（例如Opera 9.5）表现出的不同形式。</p>
<p><a href="http://www.86ue.com/wp-content/uploads/2010/02/figure1_small.jpg"><img src="http://www.86ue.com/wp-content/uploads/2010/02/figure1_small.jpg" alt="" title="figure1_small" width="400" height="236" class="aligncenter size-full wp-image-769" /></a><br />
图1：例子中三个不同的浏览模式</p>
<p>听起来挺好，但是有没有不足呢？好吧，目前浏览器对媒体查询的支持程度非常有限。Opera浏览器支持它们，Safari 3也可以（以及其它基于Webkit内核的现代浏览器），但是Firefox 3之前的版本并不支持，IE或其他浏览器也不支持。解决问题的方法之一，是使用媒体类型和媒体查询的组合。这种方法在我的这篇文章中做过解释。这是一种变通方案，但肯定不够理想。这点在将来应该会有所改善。</p>
<p><strong>摘要总结</strong></p>
<p>目前就是如此而已。我希望我的移动开发世界之旅会对各位有所帮助。我在这只是抛砖引玉，要想深入学习的话，可以查看下面这些资源。</p>
<p>资源</p>
<p>    * <a href="http://mobilewebbook.com/">Mobile web design book, by Cameron Moll</a><br />
    * <a href="http://dev.opera.com/articles/view/designing-and-developing-mobile-web-site/">Designing and developing mobile web sites in the real world</a> — 一个实例研究 by Brian Suda<br />
    * <a href="http://dev.opera.com/articles/view/server-side-capability-detection-for-mob/">Server-side capability detection for mobile devices by Brian Suda</a> (包含WURFL, UA字符串等信息)<br />
    * <a href="http://dev.opera.com/articles/view/javascript-support-in-opera-mini-4/">Ajax/JavaScript support in Opera Mini 4, by me</a><br />
    * <a href="http://dev.opera.com/articles/view/opera-mini-request-headers/">Kristian von Streng HÃ¦hre’s Opera Mini request header reference</a><br />
    * <a href="http://dev.opera.com/articles/view/how-to-serve-the-right-content-to-mobile/">How to serve the right content to mobile browsers</a>, 同样by牛B的me — 包含媒体类型和媒体查询<br />
    * <a href="http://dev.opera.com/articles/view/safe-media-queries/">Creating safe media queries that work cross browser</a><br />
    * <a href="http://dev.opera.com/articles/view/web-design-with-opera-mobile-in-mind/">Web design with Opera Mobile in mind</a>, 再一次 by me<br />
    * <a href="http://wurfl.sourceforge.net/">The WURFL homepage</a><br />
    * <a href="http://www.opera.com/products/mobile/">The Opera Mobile homepage</a><br />
    * <a href="http://www.operamini.com/">The Opera Mini homepage</a></p>
<p>英文原文: <a href="http://carsonified.com/blog/features/css/coding-for-the-mobile-web/">Coding for the Mobile Web</a><br />
中文原文: <a href="http://www.smbey0nd.com/2010/01/17/coding_for_the_mobile_web/">Mobile Web下的编码设计</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.86ue.com/archives/768/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>手机网站开发必修课（2）：浏览器兼容性测试</title>
		<link>http://www.86ue.com/archives/582</link>
		<comments>http://www.86ue.com/archives/582#comments</comments>
		<pubDate>Mon, 04 Jan 2010 14:02:17 +0000</pubDate>
		<dc:creator>紫枫印象</dc:creator>
				<category><![CDATA[WAP]]></category>
		<category><![CDATA[手机网站开发]]></category>
		<category><![CDATA[浏览器兼容性]]></category>

		<guid isPermaLink="false">http://www.86ue.com/?p=582</guid>
		<description><![CDATA[<strong>1 为什么要有兼容性测试：比web浏览器还恐怖的手机浏览器</strong>

对于web网站，一般来说，目前我们需要兼容的是

1个操作系统（windows）X 3种浏览器（ie 6、ie7、firefox）= 3种情况

要求高一点的web网站需要兼容的是

1个操作系统（windows）X 7种浏览器（ie6、ie7、firefox、chorme、opera、safari、遨游）+ 1个操作系统（mac） X 1种浏览器（safari）= 8种情况

注：以上浏览器除了ie外，均指其最新版本。另，遨游浏览器虽然是基于ie内核，但某些表现却完全出人意料，故也加入考虑。

好了，以上最多8种需要兼容的情况，已经让人大呼头痛不已，何况事实上这些浏览器对html代码本身的解析都是没问题的，你比较需要费心的只是ie6的css和js。

<strong>那么手机浏览器有多少种需要兼容的情况呢？</strong>

从上一篇文章看来，如果要做到比较好的兼容性，我们要兼容的手机浏览器至少有二十种情况（手机自带的浏览器+用户可安装的浏览器）

web浏览器的兼容性大致可根据浏览器的渲染引擎来确定兼容类型，但手机浏览器，即使是使用的同一个渲染引擎，在不同的手机上表现也可能很不一样。

<strong>还有两个更令人头痛的问题：</strong>

   1. 你没法使用css hack
   2. 你也没法逐一去测试各浏览器的实际效果

所以，当你涉足手机网站开发的时候，你才会感概，web浏览器们真是太仁慈了。]]></description>
			<content:encoded><![CDATA[<p><strong>1 为什么要有兼容性测试：比web浏览器还恐怖的手机浏览器</strong></p>
<p>对于web网站，一般来说，目前我们需要兼容的是</p>
<p>1个操作系统（windows）X 3种浏览器（ie 6、ie7、firefox）= 3种情况</p>
<p>要求高一点的web网站需要兼容的是</p>
<p>1个操作系统（windows）X 7种浏览器（ie6、ie7、firefox、chorme、opera、safari、遨游）+ 1个操作系统（mac） X 1种浏览器（safari）= 8种情况</p>
<p>注：以上浏览器除了ie外，均指其最新版本。另，遨游浏览器虽然是基于ie内核，但某些表现却完全出人意料，故也加入考虑。</p>
<p>好了，以上最多8种需要兼容的情况，已经让人大呼头痛不已，何况事实上这些浏览器对html代码本身的解析都是没问题的，你比较需要费心的只是ie6的css和js。</p>
<p><strong>那么手机浏览器有多少种需要兼容的情况呢？</strong></p>
<p>从上一篇文章看来，如果要做到比较好的兼容性，我们要兼容的手机浏览器至少有二十种情况（手机自带的浏览器+用户可安装的浏览器）</p>
<p>web浏览器的兼容性大致可根据浏览器的渲染引擎来确定兼容类型，但手机浏览器，即使是使用的同一个渲染引擎，在不同的手机上表现也可能很不一样。</p>
<p><strong>还有两个更令人头痛的问题：</strong></p>
<p>   1. 你没法使用css hack<br />
   2. 你也没法逐一去测试各浏览器的实际效果</p>
<p>所以，当你涉足手机网站开发的时候，你才会感概，web浏览器们真是太仁慈了。</p>
<p>不过事情还不算太坏，就目前来看，基于手机浏览器的限制，一般手机网站的布局和功能不会太复杂，而高级一些的手机浏览器（如iphone等）兼容性还是很理想的，不用操心。</p>
<p>不管怎样，对于一个专业的手机网站来说，有一份专业的浏览器兼容性测试报告是非常有必要的。面对成百上千的手机型号，还有日益强大的山寨机，我们的兼容性测试要覆盖哪些机型呢？</p>
<p><strong>2 目标用户数据挖掘</strong></p>
<p>我们基本不可能兼顾到所有类型的手机浏览器，所以你必须要根据你的用户数据来决定要测试兼容性的手机型号。</p>
<p>你的手上需要有以下数据：</p>
<p>   1. 你的网站访问的手机型号统计<br />
   2. 用户访问你的网站的主要行为</p>
<p>如果拿不到这些数据，那么接下来的兼容性测试将会艰难很多，你不得不通过广撒网的方式，测试尽可能多的手机（而不是主要目标客户群的手机）来确认某些属性的兼容性，这可不是一个好主意，相信让你的老板掏银子给你采购几十乃至上百台手机不太现实。</p>
<p>总的来说，你需要得到测试手机的以下数据：</p>
<p>手机型号、操作系统、浏览器类型、屏幕尺寸、颜色深度</p>
<p><strong>3 安排测试，整理测试结果</strong></p>
<p>当我们设计测试点的时候，应该涵盖哪些内容呢？</p>
<p>   1. 对xhtml代码本身的支持度，如是否支持<br />
<input type=”image” />
   2. 对特殊字符的支持度，如★◆<br />
   3. 对css的支持度<br />
          * 对css不同引入方式的支持<br />
          * 对css的属性的支持<br />
          * 对css某属性不同属性值的支持，如margin的取负值、background-repeat的不同取值<br />
          * 对css选择器的支持，如tag，class，id，选择器的嵌套<br />
          * 对css高级选择器的支持<br />
   <strong>4. 对js的支持度</strong><br />
          * 目前还不太可能在手机上创建很复杂的js效果，可以仅测试js的基本功能，比如对事件的支持，当然，使用js最重要的是要考虑好如何优雅降级，确保用户在没有js的情况下也能顺利完成任务<br />
   <strong>5. 对图片的支持度</strong><br />
          * 支持图片类型，包括gif非透明背景、gif透明背景、gif动画图、jpg、png8非透明背景、png8透明背景、png24非透明背景和png24透明背景<br />
          * 支持图片颜色，如色彩复杂的图片，光滑渐变的图片</p>
<p>设计一个专用于测试的excel表格，方便测试人员填写测试结果也是非常重要的工作，如果这一步没有做好，也许你之前所有的努力都将白费。传承有价值的研究结果，其意义不低于研究本身。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.86ue.com/archives/582/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>手机网站开发必修课（1）：手机浏览器</title>
		<link>http://www.86ue.com/archives/576</link>
		<comments>http://www.86ue.com/archives/576#comments</comments>
		<pubDate>Mon, 04 Jan 2010 05:07:54 +0000</pubDate>
		<dc:creator>紫枫印象</dc:creator>
				<category><![CDATA[WAP]]></category>
		<category><![CDATA[手机浏览器]]></category>
		<category><![CDATA[手机网站开发]]></category>

		<guid isPermaLink="false">http://www.86ue.com/?p=576</guid>
		<description><![CDATA[<div><strong>前言： </strong><strong></strong>手机有哪些浏览器？这些浏览器对xhtml、css和js的支持度怎么样？目标用户的手机使用情况？条件限制下的手机界面设计要如何进行？如何快速搭建一个手机网页？如何做好网站的兼容性工作？想必这些问题每个参与过手机网页开发的人都遇到过。

头大的是，除了自己公司已有的一些经验，网上恐怕没有过多的(公开的)文档可以参考。  09年上半年的工作重心全在手机网页开发上面，这使得自己某种程度上也成了拓荒者。现将这段时间的开发心得同大家分享以下，欢迎大家跟我交换自己的想法。

<strong>手机网站开发必修课系列文章计划：</strong>
<ol>
	<li>手机浏览器
<ol>
	<li>来自wiki的解释</li>
	<li>对wiki的总结</li>
</ol>
</li>
	<li>浏览器兼容性测试
<ol>
	<li>为什么要有兼容性测试：比web浏览器还恐怖的手机浏览器</li>
	<li>目标用户数据挖掘</li>
	<li>安排测试，整理测试结果</li>
</ol>
</li>
	<li>测试结果对手机网站开发的指导意义
<ol>
	<li>对设计的指引作用</li>
	<li>确保裸html代码具有较高可用性，谨慎使用html标签</li>
	<li>css使用注意事项</li>
	<li>非常重要：代码的优雅降级</li>
</ol>
</li>
</ol>
<strong>注</strong>：由于有些数据牵涉到公司的商业机密，所以在这个系列的文章当中，有些可能不会公布出详细的数据，但会给出方向性的结论或者意见，请大家见谅。

</div>
要了解手机网站开发的诀窍，我们必须先了解手机浏览器。虽然百度“手机浏览器”没啥有价值的文章，所幸google“mobile broswer”出来了比较多有价值的文章。那么，站在前人的肩膀上，我们可以看的更远。

以下文字翻译自维基百科》手机浏览器:http://en.wikipedia.org/wiki/Mobile_browser

<strong>手机浏览器</strong>，又称<strong>微浏览器</strong>、<strong>迷你浏览器</strong>或者<strong>无线因特网浏览器</strong>，是被设计用于像<a href="http://en.wikipedia.org/wiki/Mobile_phone">手机</a>或者<a href="http://en.wikipedia.org/wiki/Personal_digital_assistant">PDA</a>之类的<a href="http://en.wikipedia.org/wiki/Mobile_device">无线设施</a>的<a href="http://en.wikipedia.org/wiki/Web_browser">网页浏览器</a>。手机浏览器针对在便携设备上的小屏幕网页显示进行了专门的优化，以使网页内容显示最高效。手机浏览器的软件必须小巧并且能适应无线掌上设备的低存储量和低带宽。它们一度是最简朴的网页浏览器，但是2006年以后有些手机浏览器能够支持象<a href="http://en.wikipedia.org/wiki/Cascading_Style_Sheets">css2.1</a>、<a href="http://en.wikipedia.org/wiki/JavaScript">JavaScript</a>和<a href="http://en.wikipedia.org/wiki/Ajax_%28programming%29">Ajax</a>这样的最新技术。那些被设计从手机浏览器访问的网站叫无线门户。]]></description>
			<content:encoded><![CDATA[<div><strong>前言： </strong><strong></strong>手机有哪些浏览器？这些浏览器对xhtml、css和js的支持度怎么样？目标用户的手机使用情况？条件限制下的手机界面设计要如何进行？如何快速搭建一个手机网页？如何做好网站的兼容性工作？想必这些问题每个参与过手机网页开发的人都遇到过。</p>
<p>头大的是，除了自己公司已有的一些经验，网上恐怕没有过多的(公开的)文档可以参考。  09年上半年的工作重心全在手机网页开发上面，这使得自己某种程度上也成了拓荒者。现将这段时间的开发心得同大家分享以下，欢迎大家跟我交换自己的想法。</p>
<p><strong>手机网站开发必修课系列文章计划：</strong></p>
<ol>
<li>手机浏览器
<ol>
<li>来自wiki的解释</li>
<li>对wiki的总结</li>
</ol>
</li>
<li>浏览器兼容性测试
<ol>
<li>为什么要有兼容性测试：比web浏览器还恐怖的手机浏览器</li>
<li>目标用户数据挖掘</li>
<li>安排测试，整理测试结果</li>
</ol>
</li>
<li>测试结果对手机网站开发的指导意义
<ol>
<li>对设计的指引作用</li>
<li>确保裸html代码具有较高可用性，谨慎使用html标签</li>
<li>css使用注意事项</li>
<li>非常重要：代码的优雅降级</li>
</ol>
</li>
</ol>
<p><strong>注</strong>：由于有些数据牵涉到公司的商业机密，所以在这个系列的文章当中，有些可能不会公布出详细的数据，但会给出方向性的结论或者意见，请大家见谅。</p>
</div>
<p>要了解手机网站开发的诀窍，我们必须先了解手机浏览器。虽然百度“手机浏览器”没啥有价值的文章，所幸google“mobile broswer”出来了比较多有价值的文章。那么，站在前人的肩膀上，我们可以看的更远。</p>
<p>以下文字翻译自维基百科》手机浏览器:http://en.wikipedia.org/wiki/Mobile_browser</p>
<p><strong>手机浏览器</strong>，又称<strong>微浏览器</strong>、<strong>迷你浏览器</strong>或者<strong>无线因特网浏览器</strong>，是被设计用于像<a href="http://en.wikipedia.org/wiki/Mobile_phone">手机</a>或者<a href="http://en.wikipedia.org/wiki/Personal_digital_assistant">PDA</a>之类的<a href="http://en.wikipedia.org/wiki/Mobile_device">无线设施</a>的<a href="http://en.wikipedia.org/wiki/Web_browser">网页浏览器</a>。手机浏览器针对在便携设备上的小屏幕网页显示进行了专门的优化，以使网页内容显示最高效。手机浏览器的软件必须小巧并且能适应无线掌上设备的低存储量和低带宽。它们一度是最简朴的网页浏览器，但是2006年以后有些手机浏览器能够支持象<a href="http://en.wikipedia.org/wiki/Cascading_Style_Sheets">css2.1</a>、<a href="http://en.wikipedia.org/wiki/JavaScript">JavaScript</a>和<a href="http://en.wikipedia.org/wiki/Ajax_%28programming%29">Ajax</a>这样的最新技术。那些被设计从手机浏览器访问的网站叫无线门户。</p>
<div><strong>内容概览</strong></p>
<ol>
<li>相关的技术</li>
<li>先驱们</li>
<li>流行的移动浏览器
<ol>
<li>被主流手机和PDA厂商使用的默认浏览器</li>
<li>用户可安装的手机浏览器</li>
<li>手机HTML代码转换机</li>
</ol>
</li>
<li>更多</li>
<li>参考</li>
<li>更多外部链接</li>
</ol>
</div>
<h3><strong>1 相关的技术</strong></h3>
<p>手机浏览器通常通过蜂巢网络连接，通过无线局域网连接的手机浏览器数量也日渐增多，后者使用基于TCP/IP的HTTP并能显示那些使用<a href="http://en.wikipedia.org/wiki/HTML">HTML</a>, <a href="http://en.wikipedia.org/wiki/XHTML_Mobile_Profile">XHTML Mobile Profile</a> (<a href="http://en.wikipedia.org/wiki/WAP_2.0">WAP 2.0</a>), 或者<a href="http://en.wikipedia.org/wiki/Wireless_Markup_Language">WML</a> (从<a href="http://en.wikipedia.org/wiki/Handheld_Device_Markup_Language">HDML</a>发展而来)编写的网页。WML和 HDML是适于通过低带宽传送数据的最简朴的形式，而无线数据的连接被称为<a title="Wireless Application Protocol" href="http://en.wikipedia.org/wiki/Wireless_Application_Protocol">WAP</a>。</p>
<p>在日本，DoCoMo定义了基于i-mode HTML的 <a title="I-mode" href="http://en.wikipedia.org/wiki/I-mode">i-mode</a>服务，是压缩HTML(<a title="C-HTML" href="http://en.wikipedia.org/wiki/C-HTML">C-HTML</a>)的一种扩展，<a title="HTML" href="http://en.wikipedia.org/wiki/HTML">HTML</a>的一个子集。</p>
<p>WAP 2.0指定了XHTML手机协议和WAP CSS，WAP CSS是是W3C标准的 XHTML和 CSS在移动设备上扩展的一个子集。</p>
<h3><strong>2 先驱们</strong></h3>
<p>那些被称为微浏览器的技术，诸如WAP， NTTDocomo的 <a title="I-mode" href="http://en.wikipedia.org/wiki/I-mode">i-mode</a>平台和<a title="Openwave" href="http://en.wikipedia.org/wiki/Openwave">Openwave</a>的 HDML平台点燃了人们对无线数据服务的第一次热情。</p>
<p>第一个微型浏览器的诞生大约是在1997年， 当<a title="Unwired Planet" href="http://en.wikipedia.org/wiki/Unwired_Planet">Unwired Planet</a> 公司(后来发展为 Openwave)将他们的”UP.Browser”放在<a title="American Telephone &amp; Telegraph" href="http://en.wikipedia.org/wiki/American_Telephone_%26_Telegraph">AT&amp;T</a>公司的手持设备上以供用户访问HDML内容。</p>
<p>一家英国公司， <a title="STNC (page does not exist)" href="http://en.wikipedia.org/w/index.php?title=STNC&amp;action=edit&amp;redlink=1">STNC</a>股份有限公司，在1997年的时候研发了一款叫做 <a title="HitchHiker (page does not exist)" href="http://en.wikipedia.org/w/index.php?title=HitchHiker&amp;action=edit&amp;redlink=1">HitchHiker</a>的微型浏览器，并对这款装备设计了全套的UI。这款微型浏览器(Webwalker)的演示平台拥有每秒处理百万条指令的能力。它是一个单核处理平台，在类似于应用堆栈的处理器上跑着GSM堆栈。1999年 <a title="http://web.archive.org/web/19990427162007/http://www.stnc.com/" rel="nofollow" href="http://web.archive.org/web/19990427162007/http://www.stnc.com/">STNC</a>被微软收购，并且HitchHiker变身为<a title="http://www.microsoft.com/presspass/press/1999/Dec99/MobileExplorerPR.mspx" rel="nofollow" href="http://www.microsoft.com/presspass/press/1999/Dec99/MobileExplorerPR.mspx">Microsoft Mobile Explorer</a> 2.0,不同于之前的Microsoft Mobile Explorer 1.0。HitchHiker被认为是第一款拥有统一标准的渲染模型的微型浏览器，它在一个客户端遵从<a title="EcmaScript" href="http://en.wikipedia.org/wiki/EcmaScript">EcmaScript</a>, <a title="WMLScript" href="http://en.wikipedia.org/wiki/WMLScript">WMLScript</a>, <a title="POP3" href="http://en.wikipedia.org/wiki/POP3">POP3</a> 和 <a title="IMAP" href="http://en.wikipedia.org/wiki/IMAP">IMAP</a> 邮件等标准处理 HTML 和 WAP。尽管这个浏览器最终未被使用，但它确实可是使HTML 和 WAP在一个页面上联合使用，虽然这将使得其他的设备无法正确渲染该页面。另外， <a title="Amstrad" href="http://en.wikipedia.org/wiki/Amstrad">Amstrad</a>公司倒霉的将HitchHiker作为他们<a title="http://www.amstrad.com/emailer.html" rel="nofollow" href="http://www.amstrad.com/emailer.html">e-m@iler</a>和 e-m@iler+产品的操作系统，手机浏览器2.0在Benefon Q, Sony CMD-Z5, CMD-J5, CMD-MZ5, CMD-J6, CMD-Z7, CMD-J7 and CMD-J70.等设备上都可使用。</p>
<p>还有一款叫<a title="Palmscape (page does not exist)" href="http://en.wikipedia.org/w/index.php?title=Palmscape&amp;action=edit&amp;redlink=1">Palmscape</a>的用于<a href="http://zh.wikipedia.org/wiki/Palm_OS">PalmOS</a>的免费浏览器（虽然后来才成为共享软件的），由Kazuho Oku 1998年在东京编写，他继而发现了<a title="Ilinx" href="http://en.wikipedia.org/wiki/Ilinx">Ilinx</a>，这款浏览器直到2003年才放开使用限制。</p>
<p>于2001年发布的 <a title="http://www.microsoft.com/presspass/press/2001/feb01/02-19mmepr.mspx" rel="nofollow" href="http://www.microsoft.com/presspass/press/2001/feb01/02-19mmepr.mspx">Mobile Explorer 3.0</a>增 加了iMode的兼容性和众多的专利设计。通过假想的将这些专利设计结合到WAP协议中， MME3.0执行了OTA数据库同步、推送了email，推送了信息客户端和PIM功能。已经退出市场的索尼爱立信CMD-Z700深度集成了 MME3.0。MME的开发脚步在2002年中旬画上了句号。</p>
<p><a title="Opera Software" href="http://en.wikipedia.org/wiki/Opera_Software">Opera Software</a>公司以他的小屏幕渲染技术(<a title="Small Screen Rendering" href="http://en.wikipedia.org/wiki/Small_Screen_Rendering">Small Screen Rendering</a> )和中屏幕渲染技术(Medium Screen Rendering)领先于该领域。<a title="Opera (web browser)" href="http://en.wikipedia.org/wiki/Opera_%28web_browser%29">Opera</a>的的web浏览器可以让普通的web网页在小型屏幕和中型屏幕上重新布局，并达到最优显示。他是第一款广泛支持<a title="Ajax (programming)" href="http://en.wikipedia.org/wiki/Ajax_%28programming%29">Ajax</a>和通过<a title="ACID2" href="http://en.wikipedia.org/wiki/ACID2">ACID2</a>测试的浏览器。</p>
<h3><strong>3 流行的移动浏览器</strong></h3>
<p>手机浏览器和基于web的模拟器不同，基于web的模拟器使用一种“虚拟的手持设备”在电脑上显示wap页面，使用java或者html转码器。这些模拟器有 Wapjag, TT, Waptiger 和 Superwap。</p>
<p>一下表格列出了一些当下非常流行的手机浏览器。一些手机浏览器是web浏览器的精简版本，因此一些手机浏览器厂商也提供用于台式机和笔记本电脑的浏览器。</p>
<p><strong>3.1 被主流手机和PDA厂商使用的内置手机浏览器</strong></p>
<table id="sortable_table_id_0" border="0">
<tbody>
<tr>
<th>浏览器</th>
<th>开发者</th>
<th><a title="Free and open source software" href="http://en.wikipedia.org/wiki/Free_and_open_source_software">开源</a></th>
<th> <a title="Layout engine" href="http://en.wikipedia.org/wiki/Layout_engine">渲染引擎</a></th>
<th><a title="Software license" href="http://en.wikipedia.org/wiki/Software_license">软件许可</a></th>
<th>注意</th>
</tr>
<tr>
<th><a title="Danger browser (page does not exist)" href="http://en.wikipedia.org/w/index.php?title=Danger_browser&amp;action=edit&amp;redlink=1">Danger browser</a></th>
<td><a title="Danger (company)" href="http://en.wikipedia.org/wiki/Danger_%28company%29">Danger</a></td>
<td>否</td>
<td>-</td>
<td><a title="Proprietary" href="http://en.wikipedia.org/wiki/Proprietary">专利的</a></td>
<td>installed on all Danger-designed devices including the <a title="T-Mobile Sidekick" href="http://en.wikipedia.org/wiki/T-Mobile_Sidekick">T-Mobile Sidekick</a></td>
</tr>
<tr>
<th><a title="Embider (page does not exist)" href="http://en.wikipedia.org/w/index.php?title=Embider&amp;action=edit&amp;redlink=1">Embider</a></th>
<td><a title="Infraware (page does not exist)" href="http://en.wikipedia.org/w/index.php?title=Infraware&amp;action=edit&amp;redlink=1">Infraware</a></td>
<td>否</td>
<td>-</td>
<td><a title="Proprietary" href="http://en.wikipedia.org/wiki/Proprietary">专利的</a></td>
<td><a title="http://www.infraware.co.kr/eng/main.asp" rel="nofollow" href="http://www.infraware.co.kr/eng/main.asp">[2]</a></td>
</tr>
<tr>
<th><a title="Internet Explorer Mobile" href="http://en.wikipedia.org/wiki/Internet_Explorer_Mobile">Internet Explorer Mobile</a></th>
<td><a title="Microsoft" href="http://en.wikipedia.org/wiki/Microsoft">Microsoft</a></td>
<td>否</td>
<td>-</td>
<td><a title="Proprietary" href="http://en.wikipedia.org/wiki/Proprietary">专利的</a></td>
<td>-</td>
</tr>
<tr>
<th><a title="Nokia Series 40" href="http://en.wikipedia.org/wiki/Nokia_Series_40">Nokia Series 40</a> Browser</th>
<td><a title="Nokia" href="http://en.wikipedia.org/wiki/Nokia">Nokia</a></td>
<td>否</td>
<td>-</td>
<td><a title="Proprietary" href="http://en.wikipedia.org/wiki/Proprietary">专利的</a></td>
<td>-</td>
</tr>
<tr>
<th><a title="Novarra (page does not exist)" href="http://en.wikipedia.org/w/index.php?title=Novarra&amp;action=edit&amp;redlink=1">Novarra</a> nWeb</th>
<td><a title="Novarra (page does not exist)" href="http://en.wikipedia.org/w/index.php?title=Novarra&amp;action=edit&amp;redlink=1">Novarra</a></td>
<td>否</td>
<td>-</td>
<td><a title="Proprietary" href="http://en.wikipedia.org/wiki/Proprietary">专利的</a></td>
<td>-</td>
</tr>
<tr>
<th><a title="Obigo Browser" href="http://en.wikipedia.org/wiki/Obigo_Browser">Obigo Browser</a></th>
<td><a title="Obigo AB (page does not exist)" href="http://en.wikipedia.org/w/index.php?title=Obigo_AB&amp;action=edit&amp;redlink=1">Obigo AB</a></td>
<td>否</td>
<td>-</td>
<td><a title="Proprietary" href="http://en.wikipedia.org/wiki/Proprietary">专利的</a></td>
<td>100% owned by Teleca AB</td>
</tr>
<tr>
<th><a title="Picsel Browser (page does not exist)" href="http://en.wikipedia.org/w/index.php?title=Picsel_Browser&amp;action=edit&amp;redlink=1">Picsel Browser</a></th>
<td><a title="Picsel" href="http://en.wikipedia.org/wiki/Picsel">Picsel Techologies</a></td>
<td>否</td>
<td>-</td>
<td><a title="Proprietary" href="http://en.wikipedia.org/wiki/Proprietary">专利的</a></td>
<td>-</td>
</tr>
<tr>
<th><a title="JB5 Mobile Browser (page does not exist)" href="http://en.wikipedia.org/w/index.php?title=JB5_Mobile_Browser&amp;action=edit&amp;redlink=1">jB5 Mobile Browser</a></th>
<td><a title="Jataayu Software (page does not exist)" href="http://en.wikipedia.org/w/index.php?title=Jataayu_Software&amp;action=edit&amp;redlink=1">Jataayu Software</a></td>
<td><em><strong>?</strong></em></td>
<td><em><strong>?</strong></em></td>
<td><em><strong>?</strong></em></td>
<td>available on <a title="Symbian Series 60" href="http://en.wikipedia.org/wiki/Symbian_Series_60">Symbian Series 60</a>, <a title="Windows Mobile" href="http://en.wikipedia.org/wiki/Windows_Mobile">Windows Mobile</a> and <a title="Linux" href="http://en.wikipedia.org/wiki/Linux">Linux</a></td>
</tr>
<tr>
<th><a title="Wapaka Browser (page does not exist)" href="http://en.wikipedia.org/w/index.php?title=Wapaka_Browser&amp;action=edit&amp;redlink=1">Wapaka Browser</a></th>
<td><a title="Digital Airways (page does not exist)" href="http://en.wikipedia.org/w/index.php?title=Digital_Airways&amp;action=edit&amp;redlink=1">Digital Airways</a></td>
<td><em><strong>?</strong></em></td>
<td><em><strong>?</strong></em></td>
<td><em><strong>?</strong></em></td>
<td><a title="Java platform" href="http://en.wikipedia.org/wiki/Java_platform">Java</a> micro-browser</td>
</tr>
<tr>
<th><a title="Myriad Group" href="http://en.wikipedia.org/wiki/Myriad_Group">Myriad Browser (Previously Openwave Mobile Browser)</a></th>
<td><a title="Myriad Group" href="http://en.wikipedia.org/wiki/Myriad_Group">Myriad Group</a></td>
<td>否</td>
<td>Fugu (Next version to use <a title="WebKit" href="http://en.wikipedia.org/wiki/WebKit">WebKit</a>)<sup><a href="http://en.wikipedia.org/wiki/Mobile_browser#cite_note-3">[4]</a></sup></td>
<td><a title="Proprietary" href="http://en.wikipedia.org/wiki/Proprietary">专利的</a></td>
<td>Acquired from <a title="Openwave" href="http://en.wikipedia.org/wiki/Openwave">Openwave</a> in 2008</td>
</tr>
<tr>
<th><a title="Fennec (browser)" href="http://en.wikipedia.org/wiki/Fennec_%28browser%29">Fennec</a></th>
<td><a title="Mozilla" href="http://en.wikipedia.org/wiki/Mozilla">Mozilla</a></td>
<td>是</td>
<td><a title="Gecko" href="http://en.wikipedia.org/wiki/Gecko">Gecko</a></td>
<td><em><strong>?</strong></em></td>
<td>Currently in Beta</td>
</tr>
<tr>
<th><a title="BlackBerry" href="http://en.wikipedia.org/wiki/BlackBerry">BlackBerry</a> Browser</th>
<td><a title="Research in Motion" href="http://en.wikipedia.org/wiki/Research_in_Motion">Research in Motion</a></td>
<td>否</td>
<td>Mango</td>
<td><a title="Proprietary" href="http://en.wikipedia.org/wiki/Proprietary">专利的</a></td>
<td>-</td>
</tr>
<tr>
<th><a title="Amazon Kindle" href="http://en.wikipedia.org/wiki/Amazon_Kindle">Kindle</a> Basic Web</th>
<td><a title="Amazon.com" href="http://en.wikipedia.org/wiki/Amazon.com">Amazon.com</a></td>
<td>否</td>
<td><a title="NetFront" href="http://en.wikipedia.org/wiki/NetFront">NetFront</a></td>
<td><a title="Proprietary" href="http://en.wikipedia.org/wiki/Proprietary">专利的</a></td>
<td>-</td>
</tr>
<tr>
<th><a title="Blazer (web browser)" href="http://en.wikipedia.org/wiki/Blazer_%28web_browser%29">Blazer</a></th>
<td><a title="Palm, Inc." href="http://en.wikipedia.org/wiki/Palm,_Inc.">Palm</a></td>
<td>否</td>
<td><a title="NetFront" href="http://en.wikipedia.org/wiki/NetFront">NetFront</a></td>
<td><a title="Proprietary" href="http://en.wikipedia.org/wiki/Proprietary">专利的</a></td>
<td>installed on all newer Palm <a title="Palm Trēo" href="http://en.wikipedia.org/wiki/Palm_Tr%C4%93o">Treos</a> and PDAs</td>
</tr>
<tr>
<th><a title="NetFront" href="http://en.wikipedia.org/wiki/NetFront">NetFront</a></th>
<td><a title="Access Co. Ltd." href="http://en.wikipedia.org/wiki/Access_Co._Ltd.">ACCESS Co., Ltd.</a></td>
<td>否</td>
<td><a title="NetFront" href="http://en.wikipedia.org/wiki/NetFront">NetFront</a></td>
<td><a title="Proprietary" href="http://en.wikipedia.org/wiki/Proprietary">专利的</a></td>
<td>-</td>
</tr>
<tr>
<th><a title="PlayStation Portable" href="http://en.wikipedia.org/wiki/PlayStation_Portable#Web_browser">PlayStation Portable web browser</a></th>
<td><a title="Sony" href="http://en.wikipedia.org/wiki/Sony">Sony</a></td>
<td>否</td>
<td><a title="NetFront" href="http://en.wikipedia.org/wiki/NetFront">NetFront</a></td>
<td><a title="Proprietary" href="http://en.wikipedia.org/wiki/Proprietary">专利的</a></td>
<td>-</td>
</tr>
<tr>
<th><a title="Opera Mobile" href="http://en.wikipedia.org/wiki/Opera_Mobile">Opera Mobile</a></th>
<td><a title="Opera Software" href="http://en.wikipedia.org/wiki/Opera_Software">Opera Software</a></td>
<td>否</td>
<td><a title="Presto (layout engine)" href="http://en.wikipedia.org/wiki/Presto_%28layout_engine%29">Presto</a></td>
<td><a title="Proprietary" href="http://en.wikipedia.org/wiki/Proprietary">专利的</a></td>
<td>Capable of reading HTML and reformat for small screens, installed on many Phones</td>
</tr>
<tr>
<th><a title="Android (operating system)" href="http://en.wikipedia.org/wiki/Android_%28operating_system%29">Android</a> browser</th>
<td><a title="Google" href="http://en.wikipedia.org/wiki/Google">Google</a></td>
<td>是</td>
<td><a title="WebKit" href="http://en.wikipedia.org/wiki/WebKit">WebKit</a></td>
<td>Apache 2.0 and <a title="GPL" href="http://en.wikipedia.org/wiki/GPL">GPLv</a>2</td>
<td>-</td>
</tr>
<tr>
<th><a title="Iris Browser" href="http://en.wikipedia.org/wiki/Iris_Browser">Iris Browser</a></th>
<td><a title="Torch Mobile Inc. (page does not exist)" href="http://en.wikipedia.org/w/index.php?title=Torch_Mobile_Inc.&amp;action=edit&amp;redlink=1">Torch Mobile Inc.</a></td>
<td><em><strong>?</strong></em></td>
<td><a title="WebKit" href="http://en.wikipedia.org/wiki/WebKit">WebKit</a></td>
<td><em><strong>?</strong></em></td>
<td><a title="Linux" href="http://en.wikipedia.org/wiki/Linux">Linux</a>/ <a title="Qt (toolkit)" href="http://en.wikipedia.org/wiki/Qt_%28toolkit%29">Qt</a> and <a title="Windows Mobile" href="http://en.wikipedia.org/wiki/Windows_Mobile">Windows Mobile</a></td>
</tr>
<tr>
<th><a title="Safari (web browser)" href="http://en.wikipedia.org/wiki/Safari_%28web_browser%29">Safari</a></th>
<td><a title="Apple Inc" href="http://en.wikipedia.org/wiki/Apple_Inc">Apple Inc</a></td>
<td>No</td>
<td><a title="WebKit" href="http://en.wikipedia.org/wiki/WebKit">WebKit</a></td>
<td><a title="Proprietary" href="http://en.wikipedia.org/wiki/Proprietary">专利的</a></td>
<td>on <a title="IPhone" href="http://en.wikipedia.org/wiki/IPhone">iPhone</a> and <a title="IPod Touch" href="http://en.wikipedia.org/wiki/IPod_Touch">iPod Touch</a></td>
</tr>
<tr>
<th><a title="Symphony (web browser) (page does not exist)" href="http://en.wikipedia.org/w/index.php?title=Symphony_%28web_browser%29&amp;action=edit&amp;redlink=1">Symphony</a></th>
<td><a title="Motorola" href="http://en.wikipedia.org/wiki/Motorola">Motorola</a></td>
<td><em><strong>?</strong></em></td>
<td><a title="WebKit" href="http://en.wikipedia.org/wiki/WebKit">WebKit</a></td>
<td><em><strong>?</strong></em></td>
<td>on MOTOMAGX</td>
</tr>
<tr>
<th><a title="Web Browser for S60" href="http://en.wikipedia.org/wiki/Web_Browser_for_S60">Web Browser for S60</a></th>
<td><a title="Nokia" href="http://en.wikipedia.org/wiki/Nokia">Nokia</a></td>
<td><em><strong>?</strong></em></td>
<td><a title="WebKit" href="http://en.wikipedia.org/wiki/WebKit">WebKit</a></td>
<td><em><strong>?</strong></em></td>
<td>-</td>
</tr>
<tr>
<th>Browser</th>
<th>Creator</th>
<th><a title="Free and open source software" href="http://en.wikipedia.org/wiki/Free_and_open_source_software">FOSS</a></th>
<th>Current <a title="Layout engine" href="http://en.wikipedia.org/wiki/Layout_engine">layout engine</a></th>
<th><a title="Software license" href="http://en.wikipedia.org/wiki/Software_license">Software license</a></th>
<th>Notes</th>
</tr>
</tbody>
</table>
<p><strong>3.2 流行的用户可安装的手机浏览器</strong></p>
<ul>
<li><a title="Bolt (web browser) (page does not exist)" href="http://en.wikipedia.org/w/index.php?title=Bolt_%28web_browser%29&amp;action=edit&amp;redlink=1">Bolt</a><sup><a href="http://en.wikipedia.org/wiki/Mobile_browser#cite_note-4">[5]</a></sup></li>
<li><a title="Bluelark (page does not exist)" href="http://en.wikipedia.org/w/index.php?title=Bluelark&amp;action=edit&amp;redlink=1">Bluelark</a> Bluelark bought by Handspring Inc.</li>
<li><a title="Deepfish" href="http://en.wikipedia.org/wiki/Deepfish">Deepfish</a> Beta from <a title="Microsoft" href="http://en.wikipedia.org/wiki/Microsoft">Microsoft</a>, proxy-rendering browser.</li>
<li><a title="Doris (web browser) (page does not exist)" href="http://en.wikipedia.org/w/index.php?title=Doris_%28web_browser%29&amp;action=edit&amp;redlink=1">Doris</a> by Anygraaf Oy (Vantaa, Finland)</li>
<li><a title="Fennec Browser" href="http://en.wikipedia.org/wiki/Fennec_Browser">Fennec</a> by <a title="Mozilla Foundation" href="http://en.wikipedia.org/wiki/Mozilla_Foundation">Mozilla Foundation</a>.</li>
<li><a title="IbisBrowser" href="http://en.wikipedia.org/wiki/IbisBrowser">IbisBrowser</a></li>
<li><a title="IPanel (page does not exist)" href="http://en.wikipedia.org/w/index.php?title=IPanel&amp;action=edit&amp;redlink=1">iPanel</a> for <a title="Palm OS" href="http://en.wikipedia.org/wiki/Palm_OS">Palm OS</a>,</li>
<li><a title="JB5 Mobile Browser (page does not exist)" href="http://en.wikipedia.org/w/index.php?title=JB5_Mobile_Browser&amp;action=edit&amp;redlink=1">jB5 Mobile Browser</a> Beta from Jataayu Software.</li>
<li><a title="JOCA" href="http://en.wikipedia.org/wiki/JOCA">JOCA</a> by InteracT!V, another proxy-rendering free software.</li>
<li><a title="Links (web browser)" href="http://en.wikipedia.org/wiki/Links_%28web_browser%29">Links2</a> on the <a title="Playstation Portable" href="http://en.wikipedia.org/wiki/Playstation_Portable">Playstation Portable</a> (requires custom firmware)</li>
<li><a title="Minimo" href="http://en.wikipedia.org/wiki/Minimo">Minimo</a> by <a title="Mozilla Foundation" href="http://en.wikipedia.org/wiki/Mozilla_Foundation">Mozilla Foundation</a> (based on <a title="Gecko (layout engine)" href="http://en.wikipedia.org/wiki/Gecko_%28layout_engine%29">Gecko</a>).</li>
<li><a title="NetFront" href="http://en.wikipedia.org/wiki/NetFront">NetFront</a></li>
<li><a title="Opera Mini" href="http://en.wikipedia.org/wiki/Opera_Mini">Opera Mini</a> by <a title="Opera Software" href="http://en.wikipedia.org/wiki/Opera_Software">Opera Software</a> &#8211; supports most features of stand-alone Opera, but can run on less capable phones by offloading memory-intensive rendering to proxy server (based on Opera Mobile running on a server).</li>
<li><a title="Opera Mobile" href="http://en.wikipedia.org/wiki/Opera_Mobile">Opera Mobile</a> by Opera Software &#8211; supports all modern web standards supported by desktop browsers, including XHTML, CSS2 and Ajax. Has advanced Small Screen Rendering that adapts regular pages to small screen (proprietary).</li>
<li><a title="Pixo" href="http://en.wikipedia.org/wiki/Pixo">Pixo</a> by Sun Microsystems (Pixo acquired by Sun July 2003)</li>
<li><a title="PocketWeb (page does not exist)" href="http://en.wikipedia.org/w/index.php?title=PocketWeb&amp;action=edit&amp;redlink=1">PocketWeb</a> by tlogic.de (Heidelberg, Germany) <a title="http://tlogic.de/pocketweb" rel="nofollow" href="http://tlogic.de/pocketweb">Official product page</a></li>
<li><a title="RocketBrowser (page does not exist)" href="http://en.wikipedia.org/w/index.php?title=RocketBrowser&amp;action=edit&amp;redlink=1">RocketBrowser</a> Rocket Mobile, Inc. (Silicon Valley, CA).</li>
<li><a title="SAS (browser) (page does not exist)" href="http://en.wikipedia.org/w/index.php?title=SAS_%28browser%29&amp;action=edit&amp;redlink=1">SAS</a></li>
<li><a title="Skweezer" href="http://en.wikipedia.org/wiki/Skweezer">Skweezer</a></li>
<li><a title="Skyfire (browser)" href="http://en.wikipedia.org/wiki/Skyfire_%28browser%29">Skyfire</a> Open Beta by Skyfire Labs. Supports Flash and Ajax and allows a fully functional PC web-like experience.</li>
<li><a title="Stanford University" href="http://en.wikipedia.org/wiki/Stanford_University">Stanford</a> <a title="Power Browser (page does not exist)" href="http://en.wikipedia.org/w/index.php?title=Power_Browser&amp;action=edit&amp;redlink=1">Power Browser</a> created in Stanford’s InfoLab <a title="http://dbpubs.stanford.edu:8091/~testbed/doc2/PowerBrowsing/index.html" rel="nofollow" href="http://dbpubs.stanford.edu:8091/%7Etestbed/doc2/PowerBrowsing/index.html">[3]</a></li>
<li><a title="Steel (web browser)" href="http://en.wikipedia.org/wiki/Steel_%28web_browser%29">Steel</a></li>
<li><a title="Teashark" href="http://en.wikipedia.org/wiki/Teashark">Teashark</a> &#8211; a free Java-based browser with a desktop-like layout <a title="http://www.teashark.com/" rel="nofollow" href="http://www.teashark.com/">[4]</a></li>
<li><a title="ThunderHawk (web browser)" href="http://en.wikipedia.org/wiki/ThunderHawk_%28web_browser%29">ThunderHawk</a> by Bitstream Inc. (Cambridge, MA)</li>
<li><a title="UCWEB" href="http://en.wikipedia.org/wiki/UCWEB">UCWEB</a> by UCWEB Technology</li>
<li><a title="Universe browser (page does not exist)" href="http://en.wikipedia.org/w/index.php?title=Universe_browser&amp;action=edit&amp;redlink=1">Universe</a> by OpenMobl Systems</li>
<li><a title="Webby Mobile (page does not exist)" href="http://en.wikipedia.org/w/index.php?title=Webby_Mobile&amp;action=edit&amp;redlink=1">Webby Mobile</a> by AnOriginalIdea</li>
<li><a title="WebViewer (page does not exist)" href="http://en.wikipedia.org/w/index.php?title=WebViewer&amp;action=edit&amp;redlink=1">WebViewer</a> &#8211; a free Java based browser by Reqwireless</li>
<li><a title="WinWAP" href="http://en.wikipedia.org/wiki/WinWAP">WinWAP</a> by <a title="Winwap Technologies (page does not exist)" href="http://en.wikipedia.org/w/index.php?title=Winwap_Technologies&amp;action=edit&amp;redlink=1">Winwap Technologies</a> <a title="http://www.winwap.com" rel="nofollow" href="http://www.winwap.com/">Official product page</a></li>
</ul>
<p><strong>3.3 手机HTML代码转换机</strong></p>
<p>手机HTML代码转换机将web内容重新格式化并压缩成移动设备可用的内容，并且必须和内置的或者用户安装的手机浏览器配合使用。以下是几个领先的手机HTML代码转换机服务。</p>
<ul>
<li><a title="Skweezer" href="http://en.wikipedia.org/wiki/Skweezer">Skweezer</a> &#8211; used by Orange, Etisalat, JumpTap, Medio, Miva, and others</li>
<li><a title="Teashark" href="http://en.wikipedia.org/wiki/Teashark">Teashark</a></li>
<li><a title="Opera Mini" href="http://en.wikipedia.org/wiki/Opera_Mini">Opera Mini</a></li>
</ul>
<h3>4 更多</h3>
<ul>
<li><a title="Web browser" href="http://en.wikipedia.org/wiki/Web_browser">web浏览器</a></li>
<li><a title="I-mode" href="http://en.wikipedia.org/wiki/I-mode">i-mode</a></li>
<li><a title="Information appliance" href="http://en.wikipedia.org/wiki/Information_appliance">信息装置(Information appliance)</a></li>
<li><a title="User agent" href="http://en.wikipedia.org/wiki/User_agent">用户代理</a></li>
<li><a title="List of emulators" href="http://en.wikipedia.org/wiki/List_of_emulators">模拟器列表</a></li>
</ul>
<h3>5 参考</h3>
<div>
<ol>
<li><a href="http://www.pcmag.com/encyclopedia_term/0,2542,t=wireless+portal&amp;i=54781,00.asp">无线门户的定义</a></li>
<li><a href="http://www.openwave.com/us/about_openwave/">关于Openwave</a> Openwave.2009.2009年2月26日寻回</li>
<li><a href="http://www.wunderground.com/about/pr/news.asp?date=19970513">Weather Underground网站为手机用户提供天气服务</a></li>
<li><a href="http://www.myriadgroup.com/assets/Datasheets/Myr_browser_mobBrows.pdf">Myriad浏览器v9数据表（pdf）</a> Myriad小组. 2009.2009年2月26日寻回</li>
<li><a href="http://boltbrowser.com/index.html">bolt浏览器官网</a></li>
</ol>
</div>
<h3>6 更多外部链接</h3>
<ul>
<li><a title="http://www.w3.org/Mobile/" rel="nofollow" href="http://www.w3.org/Mobile/">W3C手机网页第一步</a> — “W3C手机网页第一步的目标是要让用户从移动设备访问网页成为现实——Tim Berners-Lee, W3C 网站的创始人之一如是说.</li>
<li><a title="http://www.w3.org/TR/1998/NOTE-compactHTML-19980209/" rel="nofollow" href="http://www.w3.org/TR/1998/NOTE-compactHTML-19980209/">用于小型信息设备的紧凑HTML</a> —1998年2月</li>
<li><a title="http://www.openmobilealliance.org/" rel="nofollow" href="http://www.openmobilealliance.org/">开放移动通信联盟</a></li>
<li><a title="http://na.blackberry.com/eng/developers/browserdev/" rel="nofollow" href="http://na.blackberry.com/eng/developers/browserdev/">黑莓浏览器开发者网页<br />
</a></li>
<li><a title="http://www.itsnat.org" rel="nofollow" href="http://www.itsnat.org/">ItsNat</a> 一个很多手机浏览器支持的基于Java的AJAX网页框架</li>
</ul>
<div id="para12">
<h3>对wiki的总结</h3>
<p>对于wiki中提到的浏览器类型，还有两个页面可供参考</p>
<ol>
<li><a href="http://handsetdetection.com/devices/properties">手机浏览器型号查询</a></li>
<li><a href="http://www.quirksmode.org/m/phones.html">ppk：手机类型和浏览器表格</a></li>
</ol>
<p>看完整篇文章后，有一些问题要问问聪明的你</p>
<ol>
<li>什么是渲染引擎？什么是浏览器？这是两个最先要搞清楚的概念。</li>
<li>内置的手机浏览器，用户安装的手机浏览器和基于web的模拟器</li>
<li>每个浏览器都有相应的渲染引擎，因此有必要知道使用同一个渲染引擎的手机浏览器的页面表现是否一致</li>
<li>国内主流的浏览器机型有哪些？国内用户是否喜欢使用用户自己安装的浏览器。不管怎么样，作为一个开发人员，应该尽量去体验一下这里提到的各种用户可安装的浏览器。</li>
<li>基于web的模拟器是前期测试很有效的工具，推荐使用safari,opera和firefox(需安装插件)</li>
<li>如何保证手机网页的开发效率（包括质量和速度哦）？</li>
</ol>
<p>以上这些问题，前两点在本文中有提到，后面几点希望大家能开动脑筋先想想，答案将在后续的文章中揭晓</p>
<p>建议用你自己的手机访问一些国内较大的无线网站。比如 http://wap.taobao.com，http://wap.163.com等等</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.86ue.com/archives/576/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>手机网站开发必修课（3）：2009总结版</title>
		<link>http://www.86ue.com/archives/571</link>
		<comments>http://www.86ue.com/archives/571#comments</comments>
		<pubDate>Mon, 04 Jan 2010 04:48:37 +0000</pubDate>
		<dc:creator>紫枫印象</dc:creator>
				<category><![CDATA[WAP]]></category>
		<category><![CDATA[前端技术]]></category>
		<category><![CDATA[手机浏览器兼容性测试]]></category>
		<category><![CDATA[手机网站开发]]></category>

		<guid isPermaLink="false">http://www.86ue.com/?p=571</guid>
		<description><![CDATA[手机网站开发，有着许多不为人知的困难：

一是可参考的资料太少，大部分手机网站都处于起步阶段，很多的时候都是摸着石头过河，而鉴于淘宝自身的特殊性，也使得我们在参考成功案例之余，要做更多的思考；

二是兼容性工作异常艰辛，难度一点也不比web网站的兼容性工作来的低（关于这点，请参见我之前的<a title="fool2fish：手机浏览器兼容性测试" href="http://www.fool2fish.cn/?p=320" target="_blank">文章</a>）；

再者作为一个手机网站的前端开发，也往往容易被人忽视（包括我们自己），大家也许会觉得做好一个手机网站能有多难，了解一点XHTML、一点 CSS，甚至不需要对JavaScript有什么研究，事实却不是如此，正因为手机网站的开发受到设备的太多限制，前端们常常为了节约几个字节而纠结万 分，写出语义化良好的代码也显得更加重要，而多版本的开发需求也对于JavaScript的优雅降级要求甚高，这样才能使得网站有分版本需求的时候可以公 用同一套XHTML代码，最大程度的降低开发成本。

对于手机网站来说，相信现在仅仅只是个开始，随着各种新机型的相继面世，这块领域必将成为兵家必争的新高地。

注意：由于手机网站发展迅速，请参阅者注意本篇文章的发布时间。
<h3>目录</h3>
<ol>
	<li>手机用户设备统计分析</li>
	<li>手机浏览器兼容性测试结果概要</li>
	<li>手机网站开发中你需要注意的问题</li>
	<li>推荐参考资料</li>
	<li>总结</li>
</ol>
<h3>手机用户设备统计分析</h3>
拥有全面的用户数据，无疑能帮助我们做出更符合用户需求的产品。内部数据能帮我们精确了解我们的目标用户群的特征；而外部数据能告诉我们大环境下的手机用户状况，并且能在内部数据不够充分的时候给予我们一些非常有用的信息。

从外部数据来看，09年10月到11月期间

<strong>国内浏览器品牌市场占有率前三甲为：</strong>
<ul>
	<li>Nokia(78%)</li>
	<li>Opera(OEM) (10%)</li>
	<li>iPhone(Safari) (3%)</li>
</ul>
<strong>国内的手机操作系统前三甲为：</strong>
<ul>
	<li>Nokia SymbianOS(80%)</li>
	<li>iPhoneOS(6%)</li>
	<li>SonyEricsson(5%)</li>
</ul>
当然，作为中国的手机网站开发者，不能忽视强大的山寨机市场（或者应该叫作做国货精品手机市场？）。顺便提一下，这类手机通常使用的是MTK操作系统。

（以上数据均来自<a title="StatCounter.com" href="http://www.statcounter.com/" target="_blank">statcounter.com</a>）]]></description>
			<content:encoded><![CDATA[<p>手机网站开发，有着许多不为人知的困难：</p>
<p>一是可参考的资料太少，大部分手机网站都处于起步阶段，很多的时候都是摸着石头过河，而鉴于淘宝自身的特殊性，也使得我们在参考成功案例之余，要做更多的思考；</p>
<p>二是兼容性工作异常艰辛，难度一点也不比web网站的兼容性工作来的低（关于这点，请参见我之前的<a title="fool2fish：手机浏览器兼容性测试" href="http://www.fool2fish.cn/?p=320" target="_blank">文章</a>）；</p>
<p>再者作为一个手机网站的前端开发，也往往容易被人忽视（包括我们自己），大家也许会觉得做好一个手机网站能有多难，了解一点XHTML、一点 CSS，甚至不需要对JavaScript有什么研究，事实却不是如此，正因为手机网站的开发受到设备的太多限制，前端们常常为了节约几个字节而纠结万 分，写出语义化良好的代码也显得更加重要，而多版本的开发需求也对于JavaScript的优雅降级要求甚高，这样才能使得网站有分版本需求的时候可以公 用同一套XHTML代码，最大程度的降低开发成本。</p>
<p>对于手机网站来说，相信现在仅仅只是个开始，随着各种新机型的相继面世，这块领域必将成为兵家必争的新高地。</p>
<p>注意：由于手机网站发展迅速，请参阅者注意本篇文章的发布时间。</p>
<h3>目录</h3>
<ol>
<li>手机用户设备统计分析</li>
<li>手机浏览器兼容性测试结果概要</li>
<li>手机网站开发中你需要注意的问题</li>
<li>推荐参考资料</li>
<li>总结</li>
</ol>
<h3>手机用户设备统计分析</h3>
<p>拥有全面的用户数据，无疑能帮助我们做出更符合用户需求的产品。内部数据能帮我们精确了解我们的目标用户群的特征；而外部数据能告诉我们大环境下的手机用户状况，并且能在内部数据不够充分的时候给予我们一些非常有用的信息。</p>
<p>从外部数据来看，09年10月到11月期间</p>
<p><strong>国内浏览器品牌市场占有率前三甲为：</strong></p>
<ul>
<li>Nokia(78%)</li>
<li>Opera(OEM) (10%)</li>
<li>iPhone(Safari) (3%)</li>
</ul>
<p><strong>国内的手机操作系统前三甲为：</strong></p>
<ul>
<li>Nokia SymbianOS(80%)</li>
<li>iPhoneOS(6%)</li>
<li>SonyEricsson(5%)</li>
</ul>
<p>当然，作为中国的手机网站开发者，不能忽视强大的山寨机市场（或者应该叫作做国货精品手机市场？）。顺便提一下，这类手机通常使用的是MTK操作系统。</p>
<p>（以上数据均来自<a title="StatCounter.com" href="http://www.statcounter.com/" target="_blank">statcounter.com</a>）</p>
<h3>手机浏览器兼容性测试结果概要</h3>
<p>注意：以下所说的“大多数”是指在我们测试过的机型中，发生此类状况的手机占比达50%及以上，“部分”为20%到50%；“少数”为20%及以下。而这个概率也仅仅只限于我们所测试过的机型，虽然我们采集的样本尽量覆盖各种特征的手机，但并不代表所有手机的情况。</p>
<h4>XHTML部分</h4>
<p>大多数手机不支持的：</p>
<ul>
<li>表单元素的“disable”属性</li>
</ul>
<p>部分手机不支持的：</p>
<ul>
<li>“button”标签</li>
<li>“input[type=file]“标签</li>
<li>“iframe”标签。</li>
</ul>
<p>虽然只有部分手机不支持这几个标签，但因为这些标签在页面中往往具有非常重要的功能，所以属于高危标签，要谨慎使用。</p>
<p>少数手机不支持的：</p>
<ul>
<li>“select”标签：该标签如果被赋予比较复杂的CSS属性，可能会导致显示不正常，比如”vertical-align:middle”。</li>
</ul>
<h4>CSS部分</h4>
<p>大部分手机不支持的：</p>
<ul>
<li>“font-family”属性：因为手机基本上只安装了宋体这一种中文字体；</li>
<li>“font-family:bold;”：对中文字符无效，但一般对英文字符是有效的；</li>
<li>“font-style: italic;”：同上；</li>
<li>“font-size”属性：比如12px的中文和14px的中文看起来一样大，当字符大小为18px的时候你也许能看出来一些区别；</li>
<li>“white-space/word-wrap”属性：无法设置强制换行，所以当你网页有很多中文的时候，需要特别关注不要让过多连写的英文字符撑开页面；</li>
<li>“background-position”属性：但背景图片的其他属性设定是支持的；</li>
<li>“position”属性；</li>
<li>“overflow”属性；</li>
<li>“display”属性；</li>
<li>“min-height”和”min-weidth”属性；</li>
</ul>
<p>部分手机不支持的：</p>
<ul>
<li>“height”属性：对”height”的支持不太好，奇怪的是在我们的测试当中，仅仅只有很少部分手机不支持”width”属性；</li>
<li>“pading”属性</li>
<li>“margin”属性：更高比例的手机不支持”margin”的负值。</li>
</ul>
<p>少数手机不支持的：</p>
<ul>
<li>少数手机对CSS完全不支持；</li>
</ul>
<h4>JavaScript部分</h4>
<p>这部分测试相对不那么让人抓狂，要么干脆不支持，如果支持的话，对基本的dom操作、事件等支持度都还不错。但我们没有测试过很复杂的脚本。</p>
<p>在我们测试过的手机当中，支持（包括不完全支持）JavaScript的手机比例大约在一半左右，当然，对于我们来说，最重要的不是这个比例，而是要如何做好JavaScript的优雅降级。</p>
<h4>其他</h4>
<ul>
<li>部分手机不支持png8和png24，所以尽量使用jpg和gif的图片</li>
<li>另外对于平滑的渐变等精细的图片细节，部分手机的色彩支持度并不能达到要求，所以慎用有平滑渐变的bar设计</li>
<li>部分手机对于超大图片，既不进行缩放，也不显示横下滚动条</li>
<li>少数手机在打开超过20k的测试页面时，会显示内存不足</li>
</ul>
<h3>开发中你需要注意的问题</h3>
<ul>
<li><strong>手机网页编码需要遵循什么规范？</strong><br />
遵循XHTML Mobile Profile规范（<a title="http://www.openmobilealliance.org/tech/affiliates/LicenseAgreement.asp?DocName=/wap/wap-277-xhtmlmp-20011029-a.pdf" rel="nofollow" href="http://www.openmobilealliance.org/tech/affiliates/LicenseAgreement.asp?DocName=/wap/wap-277-xhtmlmp-20011029-a.pdf" target="_blank">WAP-277-XHTMLMP-20011029-a.pdf</a>），简称为XHTML MP，也就是通常说的WAP2.0规范。 <acronym title="Extensible HyperText Markup Language">XHTML</acronym>MP 是为不支持XHTML的全部特性且资源有限的客户端所设计的。它以XHTML Basic为基础，加入了一些来自XHTML 1.0的元素和属性。这些内容包括一些其他元素和对内部样式表的支持。和XHTML Basic相同，XHTML MP是严格的XHTML 1.0子集。</li>
<li><strong>网页文档推荐使用扩展名？</strong><br />
推荐命名为xhtml，按WAP2.0的规范标准写成html/htm等也是可以的。但少数手机对html支持的不好。</li>
<li><strong>为什么现今大多数的网站一行字数上限为14个中文字符？</strong><br />
由于手持设备的特殊性，其页面中实际文字大小未必是我们在CSS中设定的文字大小，尤其是在第三方浏览器中。例如Nokia5310，其内置浏览器 页面内文字大小与CSS设定相符，但是第三方浏览器OperaMini与UCWEB页面内文字大小却大于CSS设定。经测试，其文本大概在16px左右。 假如屏幕分辨率宽度为240px，去除外边距，那么其一行显示14个字以内，是比较保险（避免文本换行）的做法。</li>
<li><strong>使用WCSS还是CSS？</strong><br />
WCSS (WAP Cascading Style Sheet 或称 WAP CSS)是移动版本的CSS样式表。它是CSS2的一个子集，去掉了一些不适于移动互联网特性的属性，并加入一些具有WAP特性的扩展（如-wap- input-format/-wap-input-required/display:-wap-marquee等）。 需要留意的是，这些特殊的属性扩展并不是很实用，所以在实际的项目开发当中，不推荐使用WCSS特有的属性。</li>
<li><strong>避免空值属性</strong><br />
如果属性值为空，在web页面中是完全没有问题的，但是在大部分手机网页上会报错。</li>
<li><strong>网页大小限制</strong><br />
建议低版本页面不超过15k，高版本页面不超过60k。</li>
<li><strong>用手机模拟器和第三方手机浏览器的在线模拟器来测试页面是不是靠谱？</strong><br />
有条件的话，我们当然建议在手机实体上进行测试，因为目标客户群的手机设备总是在不断变化的，这些手机模拟器通常不能完全正确的模拟页面在手机上的显示情 况，比如图片色彩，页面大小限制等就很难再模拟器上测试出来。当然，一些第三方手机浏览器的在线模拟器还是可以进行测试的，第三方浏览器相对来说受手机设 备的影响较小。</li>
</ul>
<h3>推荐参考资料</h3>
<h4>开发权威网站</h4>
<ul>
<li><a title="http://www.openmobilealliance.org/tech/affiliates/LicenseAgreement.asp?DocName=/wap/wap-277-xhtmlmp-20011029-a.pdf" rel="nofollow" href="http://www.openmobilealliance.org/tech/affiliates/LicenseAgreement.asp?DocName=/wap/wap-277-xhtmlmp-20011029-a.pdf" target="_blank">WAPForum：XHTML Mobile Profile规范.pdf</a></li>
<li><a title="http://www.openmobilealliance.org/tech/affiliates/LicenseAgreement.asp?DocName=/wap/wap-239-wcss-20011026-a.pdf" rel="nofollow" href="http://www.openmobilealliance.org/tech/affiliates/LicenseAgreement.asp?DocName=/wap/wap-239-wcss-20011026-a.pdf" target="_blank">WAPForum：WCSS规范.pdf</a></li>
<li><a title="http://www.w3.org/TR/xhtml-basic/" rel="nofollow" href="http://www.w3.org/TR/xhtml-basic/" target="_blank">W3C：XHTML Basic 1.1规范.html</a></li>
<li><a title="http://www.w3.org/2005/MWI/Tests/" rel="nofollow" href="http://www.w3.org/2005/MWI/Tests/" target="_blank">W3C：Mobile Web Test Suites Working Group.html</a></li>
<li><a title="http://www.quirksmode.org/m/" rel="nofollow" href="http://www.quirksmode.org/m/" target="_blank">PPK：关于手机浏览器兼容性的测试和研究.html</a></li>
<li><a title="http://www.developershome.com/wap/xhtmlmp/" rel="nofollow" href="http://www.developershome.com/wap/xhtmlmp/" target="_blank">Developershome：XHTML MP 教程.html</a> （<a title="http://phparch.cn/index.php/web/66-mobile/188" rel="nofollow" href="http://phparch.cn/index.php/web/66-mobile/188" target="_blank">汉化版</a>）</li>
</ul>
<h4>经典开发文章</h4>
<ul>
<li><a title="http://www.webjx.com/files/allimg/090402/1503181.jpg" rel="nofollow" href="http://design.alibaba-inc.com/projects/w_wapGuide_v2/ref/other/wap_evolution.jpg" target="_blank">Unknown：移动WAP相关标记语言的演进.jpg</a></li>
<li><a title="http://crave.cnet.co.uk/mobiles/0,39029453,49304091-1,00.htm" rel="nofollow" href="http://crave.cnet.co.uk/mobiles/0,39029453,49304091-1,00.htm" target="_blank">Flora Graham：Alternative mobile browsers tested.html</a></li>
<li><a title="http://yuiblog.com/blog/2007/10/02/challenges-of-interface-design-for-mobile-devices/" rel="nofollow" href="http://yuiblog.com/blog/2007/10/02/challenges-of-interface-design-for-mobile-devices/" target="_blank">Lucas Pettinati(Yahoo)：Challenges of Interface Design for Mobile Devices.html</a></li>
<li><a title="http://mobienthusiast.mobi/how-to-make-a-click-to-call-link" rel="nofollow" href="http://mobienthusiast.mobi/how-to-make-a-click-to-call-link" target="_blank">Holly Kolman：How to Make a Click to Call Link.html</a></li>
<li><a title="http://dev.opera.com/articles/view/introduction-to-the-mobile-web/" rel="nofollow" href="http://dev.opera.com/articles/view/introduction-to-the-mobile-web/" target="_blank">Brian Suda：Introduction to the Mobile Web.html</a></li>
</ul>
<h4>手机型号查询</h4>
<ul>
<li><a title="http://www.handsetdetection.com//devices/properties" rel="nofollow" href="http://www.handsetdetection.com//devices/properties" target="_blank">handsetdetection：手机查询.html</a> 机型很全，偏国外机型，参数较多</li>
<li><a title="http://phone.mobile9.com/" rel="nofollow" href="http://phone.mobile9.com/" target="_blank">mobile9：手机查询.html</a> 机型较全，偏门机型可能无内容</li>
<li><a title="http://www.shishouji.com/allmobile/1.html" rel="nofollow" href="http://www.shishouji.com/allmobile/1.html" target="_blank">试手机网：手机查询+模拟.html</a> 机型稍少，可以模拟手机操作</li>
</ul>
<h3>总结</h3>
<p>目前来说，手机网站开发是个典型的设备驱动开发的过程，页面被设计成什么样，能做到怎么样，几乎全取决于目标客户的手机设备情况。</p>
<p>所以，对手机设备的了解，对于设计开发过程有着直观重要的作用，对于前端来说，就需要有计划的进行长期的手机浏览器兼容性测试，什么样的设计能被实现，什么样的标签可以使用，这些都需要有数据的支持。</p>
<p>我们必须有这样的认知，开发的手机网页总是会在或多或少的手机设备上出现问题，因为我们永远无法知道所有用户的手机设备情况，所以我们更要尽量的遵循标准进行开发，这样才能将满足用户的比例做到最好。</p>
<p>任何一个领域都有值得你进行深入了解的地方，即使现在看起来，手机网站的开发还有点不入主流，但我相信，随着手机设备的更新换代，总有一天它也会成为我们占领客户的一个重要战场，iphone这类有符合web标准的浏览器的手机发布，也给了我们更多的信心。</p>
<p>感谢：http://www.fool2fish.cn/ 博主分享！<strong>[转载]</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.86ue.com/archives/571/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
