<?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>小强ORG</title>
	<atom:link href="http://www.xiaoqiang.org/feed" rel="self" type="application/rss+xml" />
	<link>http://www.xiaoqiang.org</link>
	<description>关注web前端开发&#124;MobileWeb前端&#124;android技术&#124;用户体验&#124;交互设计</description>
	<lastBuildDate>Wed, 01 Sep 2010 09:00:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>CSS3 Media Query:移动Web的完美开端</title>
		<link>http://www.xiaoqiang.org/css/css3-media-query.html</link>
		<comments>http://www.xiaoqiang.org/css/css3-media-query.html#comments</comments>
		<pubDate>Thu, 26 Aug 2010 01:06:40 +0000</pubDate>
		<dc:creator>小强</dc:creator>
				<category><![CDATA[Css]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[media query]]></category>
		<category><![CDATA[Mobile Web]]></category>

		<guid isPermaLink="false">http://www.xiaoqiang.org/?p=155</guid>
		<description><![CDATA[移动时代，是任何 Web 设计与开发者都不能忽视的一个时代，总有一天，你设计的东西将被显示在两种屏幕上，桌面大屏幕和移动小屏幕，如何让同一个网站同时适应完全不同的两种尺寸的屏幕，这是一个很久以来都没有完美解决方案的问题，直到有了 CSS3。 CSS3 的 Media Queries 在 CSS2 时代，如果你曾经为你的网站设计过打印版 CSS，就会明白 CSS3 Media Queries 的作用，不过，CSS3 的 Media Queries 比 CSS2 的 Media Type 更实用，事实上，CSS2 的 Media Type 并不曾被多少设备所支持过。CSS3 的 Media Queries 可以帮你获取以下数据： 浏览器窗口的宽和高 设备的宽和高 设备的手持方向，横向还是竖向 分辨率 如果用户有一个支持 Media Queries 的设备，我们就可以为该设备编写专门的 CSS，让网站适应这个设备的小屏幕，英国的 Web 技术大会 dConstruct 便基于该技术推出他们的 2010 年大会网站，手机也可以轻松访问，以下是该网站的桌面版和手机版截图： 这个网站在不同尺寸的设备上按不同的布局显示，并且，手机版在 iPhone，Opera Mini， Android 等设备上有完全一致的表现。 使用 Media [...]]]></description>
			<content:encoded><![CDATA[<p>移动时代，是任何 Web 设计与开发者都不能忽视的一个时代，总有一天，你设计的东西将被显示在两种屏幕上，桌面大屏幕和移动小屏幕，如何让同一个网站同时适应完全不同的两种尺寸的屏幕，这是一个很久以来都没有完美解决方案的问题，直到有了 CSS3。</p>
<p><strong>CSS3 的 Media Queries</strong></p>
<p>在 CSS2 时代，如果你曾经为你的网站设计过打印版 CSS，就会明白 CSS3 <a href="http://www.w3.org/TR/css3-mediaqueries/" target="_blank">Media Queries</a> 的作用，不过，CSS3 的 Media Queries 比 CSS2 的 Media Type 更实用，事实上，CSS2 的 Media Type 并不曾被多少设备所支持过。CSS3 的 Media Queries 可以帮你获取以下数据：</p>
<ol>
<li>浏览器窗口的宽和高</li>
<li>设备的宽和高</li>
<li>设备的手持方向，横向还是竖向</li>
<li>分辨率</li>
</ol>
<p><span id="more-155"></span><br />
如果用户有一个支持 Media Queries 的设备，我们就可以为该设备编写专门的 CSS，让网站适应这个设备的小屏幕，英国的 Web 技术大会 <a href="http://2010.dconstruct.org/" target="_blank">dConstruct</a> 便基于该技术推出他们的 2010 年大会网站，手机也可以轻松访问，以下是该网站的桌面版和手机版截图：</p>
<div id="attachment_159" class="wp-caption aligncenter" style="width: 490px"><a class="lightbox" href="http://www.xiaoqiang.org/wp-content/uploads/2010/08/1052080.jpg"><img class="size-full wp-image-159 " title="full_site" src="http://www.xiaoqiang.org/wp-content/uploads/2010/08/1052080.jpg" alt="Full Stie版本" width="480" height="350" /></a><p class="wp-caption-text">Full Stie版本</p></div>
<div id="attachment_160" class="wp-caption aligncenter" style="width: 330px"><a class="lightbox" href="http://www.xiaoqiang.org/wp-content/uploads/2010/08/1052081.jpg"><img class="size-full wp-image-160 " title="mobile_site" src="http://www.xiaoqiang.org/wp-content/uploads/2010/08/1052081.jpg" alt="手机版本" width="320" height="480" /></a><p class="wp-caption-text">手机版本</p></div>
<p>这个网站在不同尺寸的设备上按不同的布局显示，并且，手机版在 iPhone，Opera Mini， Android 等设备上有完全一致的表现。</p>
<p><strong>使用 Media Queries 为手机创建单独的 CSS</strong></p>
<p>我们举一个简单的两栏式结构的例子。</p>
<div id="attachment_161" class="wp-caption aligncenter" style="width: 490px"><a class="lightbox" href="http://www.xiaoqiang.org/wp-content/uploads/2010/08/10520801.jpg"><img class="size-full wp-image-161 " title="2_col" src="http://www.xiaoqiang.org/wp-content/uploads/2010/08/10520801.jpg" alt="两栏布局" width="480" height="305" /></a><p class="wp-caption-text">两栏布局</p></div>
<p>为了让这个布局更好地在手机上显示，我们为手机版设计一个一栏式布局，且缩小 header 部分的图片大小。</p>
<p>使用 Media Queries 最直接的方法是，在你的 CSS 代码中，加一段独立代码分支，如下：</p>
<p>接着，在这个分支中，为小屏幕编写独立的 CSS 定义，这些定义可以覆盖桌面版 CSS 中的相应定义（只要将这段分支代码放在后面），以下针对小屏幕的 CSS 将布局变成一栏式，且使用了小尺寸的 Header 图片：</p>
<p>最终，我们在小屏幕设备上得到了如下显示效果：</p>
<div id="attachment_162" class="wp-caption aligncenter" style="width: 330px"><a class="lightbox" href="http://www.xiaoqiang.org/wp-content/uploads/2010/08/10520802.jpg"><img class="size-full wp-image-162 " title="mobile_2_col" src="http://www.xiaoqiang.org/wp-content/uploads/2010/08/10520802.jpg" alt="手机显示效果" width="320" height="480" /></a><p class="wp-caption-text">手机显示效果</p></div>
<p><strong>使用 Media Queries 链接单独的 CSS 文件</strong></p>
<p>对于小型的改动，直接在 CSS 代码中插入移动设备代码分支是很方便的，但对于大型站点，可以使用 Media Queries 链接独立的式样表文件，以便在独立的式样表文件中完全自由地为小设备编写 CSS 代码，方法如下：</p>
<p><strong>测试 Media Queries</strong></p>
<p>要在不同设备上测试 Media Queries 并非易事，你要有各种设备，还要将代码上传到某个主机进行访问测试。这里有一个在线服务，<a href="http://protofluid.com/" target="_blank">ProtoFluid</a>，该服务允许你提供你要测试的网站的 URL，或者你本机上的 URL，然后，模拟 iPhone 等移动设备显示你的设计，下图是上文中提到的 dConstruct 网站在 ProtoFluid 的 iPhone 模拟中显示的样子。你也可以填写你自己的窗口尺寸，来模拟特定的设备。</p>
<div id="attachment_163" class="wp-caption aligncenter" style="width: 490px"><a class="lightbox" href="http://www.xiaoqiang.org/wp-content/uploads/2010/08/10520803.jpg"><img class="size-full wp-image-163 " title="ProtoFluid" src="http://www.xiaoqiang.org/wp-content/uploads/2010/08/10520803.jpg" alt="ProtoFluid模拟测试" width="480" height="350" /></a><p class="wp-caption-text">ProtoFluid模拟测试</p></div>
<p>在 ProtoFluid 使用 Media Queries，你需要同时加上 max-width 和 max-device-width 属性，这意味着，Media Queires 不仅可以针对不同的移动设备，还可以针对桌面系统中某些人为的小窗口情形。</p>
<p>使用上面的代码，在桌面浏览器上，当你改变窗口尺寸到达 480 像素的时候，就会看到布局的改变。需要注意的是，上面的 max-width 部分仅仅为了测试，如果你不希望用户在桌面浏览器中因为改变了窗口大小而导致你的布局改变，可以去掉 max-width 部分，而只针对那些移动设备。</p>
<p><strong>对现有网站的整改</strong></p>
<p>上面的例子为了说明问题起见都很简单，现实中的站点不可能这样，下面的例子，作者将使用他自己的公司网站，说明如何使用 Media Queries 对现有网站进行移动化整改。</p>
<p><strong>桌面布局</strong></p>
<p>作者自己的网站是几年前设计的，那是还没有考虑 Media Queries 问题，这是一个三栏式布局。</p>
<div id="attachment_164" class="wp-caption aligncenter" style="width: 490px"><a class="lightbox" href="http://www.xiaoqiang.org/wp-content/uploads/2010/08/1052085.jpg"><img class="size-full wp-image-164 " title="3_col" src="http://www.xiaoqiang.org/wp-content/uploads/2010/08/1052085.jpg" alt="三栏布局" width="480" height="350" /></a><p class="wp-caption-text">三栏布局</p></div>
<p>加新的式样表</p>
<p>为了适应移动设备，将使用 Media Queries 加载独立的式样表：</p>
<p>作者的做法是，将他站点中原来的 CSS 文件另存为 small-device.css ，在这个基础上针对移动设备进行整改。</p>
<p><strong>压缩 Header 部分<br />
</strong></p>
<p>第一步是让 Logo 部分能在小屏幕上显示，因为这个 Logo 是基于背景图片的，因此很好办，同时，提供一个小尺寸的背景图，以便和 Logo 搭配。</p>
<p><strong>单列式布局</strong></p>
<p>下一步主要的工作是将多栏式布局换成单栏式，桌面版使用 Float 实现多栏布局，要改成单栏，只需将 float 设置为 float:none，并将 width 设置为 width:auto，这样，就实现了单列式布局。</p>
<p><strong>再紧凑一些</strong></p>
<p>然后，将margin 和 padding 进行调整，使之更紧凑一些：</p>
<div id="attachment_165" class="wp-caption aligncenter" style="width: 490px"><a class="lightbox" href="http://www.xiaoqiang.org/wp-content/uploads/2010/08/10520851.jpg"><img class="size-full wp-image-165 " title="test_3_col" src="http://www.xiaoqiang.org/wp-content/uploads/2010/08/10520851.jpg" alt="测试效果" width="480" height="350" /></a><p class="wp-caption-text">测试效果</p></div>
<p><strong>在 iPhone 中测试</strong></p>
<p>在 iPhone 中实际测试的时候，发现网站在单列式布局中仍然向外延伸了，从 <a href="http://developer.apple.com/safari/library/documentation/AppleApplications/Reference/SafariWebContent/Introduction/Introduction.html#//apple_ref/doc/uid/TP40002051" target="_blank">Safari developer website</a> 找到解决办法，在网站头，添加一个 meta tag，将网站的视窗宽度设置成何设备一致。</p>
<div id="attachment_166" class="wp-caption aligncenter" style="width: 330px"><a class="lightbox" href="http://www.xiaoqiang.org/wp-content/uploads/2010/08/1052087.png"><img class="size-full wp-image-166 " title="iphone_test" src="http://www.xiaoqiang.org/wp-content/uploads/2010/08/1052087.png" alt="在iphone上测试" width="320" height="480" /></a><p class="wp-caption-text">在iphone上测试</p></div>
<p>更多资源：</p>
<p><a href="http://www.comsharp.com/GetKnowledge/zh-CN/TeamBlogTimothyPage_K999.aspx" target="_blank">后移动时代的 Web 设计</a></p>
<p><a href="http://www.alistapart.com/articles/responsive-web-design/" target="_blank">A List Apart – Responsive Web Design</a> （ALA &#8211; 反应灵敏的 Web 设计）</p>
<p><a href="http://developer.apple.com/safari/library/documentation/AppleApplications/Reference/SafariWebContent/Introduction/Introduction.html#//apple_ref/doc/uid/TP40002051">Apple – Safari Web Content Guide</a> （Apple &#8211; Safari Web 内容指引）</p>
<p><a href="http://reference.sitepoint.com/css/mediaqueries" target="_blank">Sitepoint CSS Reference – Media Queries</a> （SitePoint 的 CSS 参考手册 &#8211; Media Queries）</p>
<p><a href="http://blog.iwalt.com/2010/06/targeting-the-iphone-4-retina-display-with-css3-media-queries.html" target="_blank">Targeting the iPhone 4 Retina Display with CSS3 Media Queries</a> （使用 CSS3 Media Queries 实现面向 iPhone 4 高精细显示屏的设计）</p>
<p><a href="http://aralbalkan.com/3331" target="_blank">Aral Balkan: How to make your web content look stunning on the iPhone 4’s new Retina Display</a>（Aral Balkan：如何让你的 Web 内容在 iPhone 4 的高精细屏上更好地显示）</p>
<p><a href="http://stuffandnonsense.co.uk/blog/about/proportional_leading_with_css3_media_queries" target="_blank">Stuff and Nonsense: Proportional leading with CSS3 Media Queries</a> （使用 CSS3 Media Queries 实现按比例行间距）</p>
<p><a href="http://matthewjamestaylor.com/blog/ipad-layout-with-landscape-portrait-modes" target="_blank">Matthew James Taylor: iPad layout with landscape and portrait modes</a> （iPad 的水平和垂直布局模式）</p>
<p><strong>在旧浏览器上支持 Media Queries</strong></p>
<p>如果你面向的访问者是 iPhone， Opera Mini 等移动设备，这没有问题，对于那些不支持 Media Queries 的浏览器（像 IE6/7/8），以下文章或许对你有帮助。</p>
<p><a href="http://caniuse.com/#feat=css-media" target="_blank">Media Queries section on When Can I Use, showing which browsers have support</a> （Media Queries 的浏览器支持情况）</p>
<p><a href="http://plugins.jquery.com/project/MediaQueries" target="_blank">Media Queries jQuery plugin (only deals with max/min width)</a> （Media Queries jQuery 插件）</p>
<p><a href="http://code.google.com/p/css3-mediaqueries-js/" target="_blank">css3-mediaqueries-js – a library that aims to add media query support to non-supporting browsers</a>（在不支持 Media Queries 的浏览器中实现对 Media Queries 的支持）</p>
<p>更多示例</p>
<p>Jon Hicks 在 <a href="http://hicksdesign.co.uk/journal/finally-a-fluid-hicksdesign" target="_blank">Hicksdesign</a> 基于 Media Queries 实现了非常好的浏览体验，不仅针对移动设备，还面向那些拥有小屏幕的桌面系统。另外，还可以看看 <a href="http://colly.com/" target="_blank">Simon Collison’s website</a> 以及 <a href="http://www.edmerritt.com/" target="_blank">Ed Merritt’s portfolio</a> 这些网站中对这种技术的运用。</p>
<p>本文作者</p>
<div id="attachment_167" class="wp-caption aligncenter" style="width: 88px"><a class="lightbox" href="http://www.xiaoqiang.org/wp-content/uploads/2010/08/c96ed27286a51ae9d0951066c1d75579.jpg"><img class="size-full wp-image-167 " title="auther" src="http://www.xiaoqiang.org/wp-content/uploads/2010/08/c96ed27286a51ae9d0951066c1d75579.jpg" alt="Rachel Andrew" width="78" height="78" /></a><p class="wp-caption-text">Rachel Andrew</p></div>
<p><a title="Posts by Rachel Andrew" href="http://www.smashingmagazine.com/author/rachel-andrew/" target="_blank">Rachel Andrew</a></p>
<p>Rachel Andrew 是一名 Web 前端设计师与后端开发者，是一家英国 Web 开发顾问公司 edgeofmyseat.com 的主管，她还是一款小型 CMS 系统 <a href="http://grabaperch.com/" target="_blank">Perch</a> 的设计者。她写过多本 Web 开发与设计相关的书，包括由 SitePoint 出版的 CSS Anthology: 101 Essential Tips, Tricks and Hacks，她的个人博客是 <a href="http://www.rachelandrew.co.uk/">rachelandrew.co.uk</a>。</p>
<p>本文国际来源：<a href="http://www.smashingmagazine.com/" target="_blank">Smashing Magazine</a> <a href="http://www.smashingmagazine.com/2010/07/19/how-to-use-css3-media-queries-to-create-a-mobile-version-of-your-website/" target="_blank">How To Use CSS3 Media Queries To Create a Mobile Version of Your Website</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.xiaoqiang.org/css/css3-media-query.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>移动Web前端开发——开发语言和手机浏览器</title>
		<link>http://www.xiaoqiang.org/mobile-web/mobile_web_lang_broswer.html</link>
		<comments>http://www.xiaoqiang.org/mobile-web/mobile_web_lang_broswer.html#comments</comments>
		<pubDate>Wed, 11 Aug 2010 06:19:04 +0000</pubDate>
		<dc:creator>小强</dc:creator>
				<category><![CDATA[Mobile Web]]></category>
		<category><![CDATA[Xhtml]]></category>
		<category><![CDATA[浏览器]]></category>

		<guid isPermaLink="false">http://www.xiaoqiang.org/?p=139</guid>
		<description><![CDATA[WAP：无线应用协议，是在无线网络环境中应用层通讯的一个开放国际标准，主要用于手机等移动设备访问国际互联网。而WAP网站则是使用WML编写的网站的俗称。 移动web：是指可以用移动设备访问的WWW内容、应用和服务。 很明显，移动web应该包含了WAP。所以，我把能用移动设备访问的网站或应用称为移动web。 移动web是客户端技术，如果要开发移动网站，自然我们需要选择一款合适的标准语言。主要技术标准有： WML——古典的移动web标准，使用WML i-mode——小日本的标准，使用iHTML，我们可以忽略 OMA领导的xHTML mobile profile，使用xHTML W3C领导的xHTML Basic，使用xHTML 以及所谓的Full Web，也就是普通的HTML——从iPhone开始流行起来 他们的演进如下： 目前仍在演进的，就是有HTML, 和XML了（Flash Lite另外讨论）。 技术特点还是贴图直观一点，我用网易来举例： WML：代码紧凑，适合无线传输，被良好的支持，有许多移动特性。但是需要独立开发，实现样式困难。 xHTML：适合无线传输，被广泛地支持，易于开发，易于界面设计，mobile profile有部分移动特性。 Full Web：适合桌面习惯，丰富的表现，不过需要设备有大量内存和渲染能力，传输比较慢。 支持情况： wml：可以接入互联网的手机都支持（除了iPhone），而MID和上网本默认情况下不支持。 xHTML mp：近代手机都支持，只要拥有256色以上的屏幕的手机是绝对支持的，MID和桌面电脑也支持。 xHTML Basic：近代手机都支持，如果支持到它的设备，mobile profile页面也能良好的渲染，MID和桌面电脑也支持。 Full Web：近几年的设备支持，一般是智能机和较主流的设备，例如操作系统是Symbian, Mac OS, windows, Android等的设备以及部分第三方浏览器如Opera, Fennec, Skyfire等等。 如果你有如下条件，使用wml： 面向所有年代的手机都要有良好的兼容 界面效果要求不高 极小的数据传输 额外的wml编写经验 如果你有如下条件，使用xHTML： 面向近几年的移动设备和桌面设备 需要良好的移动界面 较小的移动数据传输带宽 要求丰富的多媒体内容 如果你有如下条件，使用Full Web： 面向高机能的智能设备 没有时间开发移动版本的内容 大量的带宽 不要求移动特性 当然上面的条件只是概括，不代表必须这样做。还是要根据实际情况，决定使用合适的技术标准。 [...]]]></description>
			<content:encoded><![CDATA[<p><dfn>WAP</dfn>：无线应用协议，是在无线网络环境中应用层通讯的一个开放国际标准，主要用于手机等移动设备访问国际互联网。而WAP网站则是使用<abbr title="Wireless Markup Language">WML</abbr>编写的网站的俗称。</p>
<p><dfn>移动web：</dfn>是指可以用移动设备访问的<abbr title="World Wide Web">WWW</abbr>内容、应用和服务。</p>
<p>很明显，移动web应该包含了WAP。所以，我把能用移动设备访问的网站或应用称为移动web。</p>
<p>移动web是客户端技术，如果要开发移动网站，自然我们需要选择一款合适的标准语言。主要技术标准有：</p>
<ol>
<li>WML——古典的移动web标准，使用WML</li>
<li>i-mode——小日本的标准，使用iHTML，我们可以忽略</li>
<li>OMA领导的xHTML mobile profile，使用xHTML</li>
<li>W3C领导的xHTML Basic，使用xHTML</li>
<li>以及所谓的Full Web，也就是普通的HTML——从iPhone开始流行起来</li>
</ol>
<p><span id="more-139"></span>他们的演进如下：</p>
<div id="attachment_140" class="wp-caption aligncenter" style="width: 160px"><a class="lightbox" href="http://www.xiaoqiang.org/wp-content/uploads/2010/08/1503181.jpg"><img class="size-thumbnail wp-image-140 " title="mo_web_lang" src="http://www.xiaoqiang.org/wp-content/uploads/2010/08/1503181-150x150.jpg" alt="移动web相关标记语言的演进" width="150" height="150" /></a><p class="wp-caption-text">移动web相关标记语言的演进</p></div>
<p>目前仍在演进的，就是有HTML, 和XML了（Flash Lite另外讨论）。</p>
<p>技术特点还是贴图直观一点，我用网易来举例：</p>
<div id="attachment_141" class="wp-caption aligncenter" style="width: 160px"><a class="lightbox" href="http://www.xiaoqiang.org/wp-content/uploads/2010/08/1503182.gif"><img class="size-thumbnail wp-image-141 " title="163_wml" src="http://www.xiaoqiang.org/wp-content/uploads/2010/08/1503182-150x150.gif" alt="网易wml版本" width="150" height="150" /></a><p class="wp-caption-text">网易wml版本</p></div>
<p>WML：代码紧凑，适合无线传输，被良好的支持，有许多移动特性。但是需要独立开发，实现样式困难。</p>
<div id="attachment_148" class="wp-caption aligncenter" style="width: 160px"><a class="lightbox" href="http://www.xiaoqiang.org/wp-content/uploads/2010/08/1503183.gif"><img class="size-thumbnail wp-image-148 " title="163_xhtml" src="http://www.xiaoqiang.org/wp-content/uploads/2010/08/1503183-150x150.gif" alt="网易xhtml版本" width="150" height="150" /></a><p class="wp-caption-text">网易xhtml版本</p></div>
<p>xHTML：适合无线传输，被广泛地支持，易于开发，易于界面设计，mobile profile有部分移动特性。</p>
<div id="attachment_149" class="wp-caption aligncenter" style="width: 160px"><a class="lightbox" href="http://www.xiaoqiang.org/wp-content/uploads/2010/08/1503185.gif"><img class="size-thumbnail wp-image-149 " title="163_full_web" src="http://www.xiaoqiang.org/wp-content/uploads/2010/08/1503185-150x150.gif" alt="网易Full Web版本" width="150" height="150" /></a><p class="wp-caption-text">网易Full Web版本</p></div>
<p>Full Web：适合桌面习惯，丰富的表现，不过需要设备有大量内存和渲染能力，传输比较慢。</p>
<p>支持情况：</p>
<ol>
<li>wml：可以接入互联网的手机都支持（除了iPhone），而MID和上网本默认情况下不支持。</li>
<li>xHTML mp：近代手机都支持，只要拥有256色以上的屏幕的手机是绝对支持的，MID和桌面电脑也支持。</li>
<li>xHTML Basic：近代手机都支持，如果支持到它的设备，mobile profile页面也能良好的渲染，MID和桌面电脑也支持。</li>
<li>Full Web：近几年的设备支持，一般是智能机和较主流的设备，例如操作系统是Symbian, Mac OS, windows, Android等的设备以及部分第三方浏览器如Opera, Fennec, Skyfire等等。</li>
</ol>
<p>如果你有如下条件，使用wml：</p>
<ol>
<li>面向所有年代的手机都要有良好的兼容</li>
<li>界面效果要求不高</li>
<li>极小的数据传输</li>
<li>额外的wml编写经验</li>
</ol>
<p>如果你有如下条件，使用xHTML：</p>
<ol>
<li>面向近几年的移动设备和桌面设备</li>
<li>需要良好的移动界面</li>
<li>较小的移动数据传输带宽</li>
<li>要求丰富的多媒体内容</li>
</ol>
<p>如果你有如下条件，使用Full Web：</p>
<ol>
<li>面向高机能的智能设备</li>
<li>没有时间开发移动版本的内容</li>
<li>大量的带宽</li>
<li>不要求移动特性</li>
</ol>
<p>当然上面的条件只是概括，不代表必须这样做。还是要根据实际情况，决定使用合适的技术标准。</p>
<p>手机浏览器和基于web的模拟器不同，基于web的模拟器使用一种“虚拟的手持设备”在电脑上显示wap页面，使用java或者html转码器。这些模拟器有 Wapjag, TT, Waptiger 和 Superwap。</p>
<p>一下表格列出了一些当下非常流行的手机浏览器。一些手机浏览器是web浏览器的精简版本，因此一些手机浏览器厂商也提供用于台式机和笔记本电脑的浏览器。</p>
<div id="attachment_152" class="wp-caption aligncenter" style="width: 160px"><a class="lightbox" href="http://www.xiaoqiang.org/wp-content/uploads/2010/08/mobile_browser.jpg"><img class="size-thumbnail wp-image-152 " title="mobile_browser" src="http://www.xiaoqiang.org/wp-content/uploads/2010/08/mobile_browser-150x150.jpg" alt="被主流手机和PDA厂商使用的内置手机浏览器" width="150" height="150" /></a><p class="wp-caption-text">被主流手机和PDA厂商使用的内置手机浏览器</p></div>
<p>关于浏览器类型，还有两个页面可供参考</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>
]]></content:encoded>
			<wfw:commentRss>http://www.xiaoqiang.org/mobile-web/mobile_web_lang_broswer.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>团客拉用户体验浅析</title>
		<link>http://www.xiaoqiang.org/ue/tuankela_ue.html</link>
		<comments>http://www.xiaoqiang.org/ue/tuankela_ue.html#comments</comments>
		<pubDate>Wed, 11 Aug 2010 01:12:14 +0000</pubDate>
		<dc:creator>小强</dc:creator>
				<category><![CDATA[UE]]></category>
		<category><![CDATA[团客拉]]></category>
		<category><![CDATA[用户体验]]></category>

		<guid isPermaLink="false">http://www.xiaoqiang.org/?p=131</guid>
		<description><![CDATA[对团客拉（www.tuankela.com）网站的用户体验浅析，下面是目录，提供doc下载。希望大家共同交流学习！ 一、用户界面测试 网站配色方案 Logo文化 Icon图标规范 二、可访问性 浏览器兼容性 设备兼容性 无图模式或者无样式模式 客户端禁用js 三、代码测试 HTML Validator Firebug Yslow 四、人机交互测试 眼动议 黑盒测试 谷歌AB测试 五、SEO测试 代码级别 搜索引擎 外链内链 软文推广 六、总结 文档下载：团客拉体验测试报告]]></description>
			<content:encoded><![CDATA[<p>对团客拉（www.tuankela.com）网站的用户体验浅析，下面是目录，提供doc下载。希望大家共同交流学习！</p>
<p>一、用户界面测试</p>
<ol>
<li>网站配色方案</li>
<li>Logo文化</li>
<li>Icon图标规范</li>
</ol>
<p>二、可访问性</p>
<ol>
<li>浏览器兼容性</li>
<li>设备兼容性</li>
<li>无图模式或者无样式模式</li>
<li>客户端禁用js</li>
</ol>
<p>三、代码测试</p>
<ol>
<li>HTML Validator</li>
<li>Firebug</li>
<li>Yslow</li>
</ol>
<p>四、人机交互测试</p>
<ol>
<li>眼动议</li>
<li>黑盒测试</li>
<li>谷歌AB测试</li>
</ol>
<p>五、SEO测试</p>
<ol>
<li>代码级别</li>
<li>搜索引擎</li>
<li>外链内链</li>
<li>软文推广</li>
</ol>
<p>六、总结</p>
<p>文档下载：<a href="../wp-content/uploads/2010/08/%E5%9B%A2%E5%AE%A2%E6%8B%89%E4%BD%93%E9%AA%8C%E6%B5%8B%E8%AF%95%E6%8A%A5%E5%91%8A.doc">团客拉体验测试报告</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.xiaoqiang.org/ue/tuankela_ue.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IE下中英文混排bug</title>
		<link>http://www.xiaoqiang.org/css/ie_cn_en_bug.html</link>
		<comments>http://www.xiaoqiang.org/css/ie_cn_en_bug.html#comments</comments>
		<pubDate>Fri, 06 Aug 2010 09:06:26 +0000</pubDate>
		<dc:creator>小强</dc:creator>
				<category><![CDATA[Css]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[ie]]></category>
		<category><![CDATA[中文]]></category>
		<category><![CDATA[混排]]></category>

		<guid isPermaLink="false">http://www.xiaoqiang.org/?p=117</guid>
		<description><![CDATA[这个bug很常见，首先看示例代码： &#60;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&#62; &#60;html xmlns="http://www.w3.org/1999/xhtml"&#62; &#60;head&#62; &#60;meta http-equiv="Content-Type" content="text/html; charset=gb2312" /&#62; &#60;title&#62;000&#60;/title&#62; &#60;style type="text/css"&#62; *{margin:0; padding:0;} body{font-size:12px; color:#333;} #list{font-family:Arial; list-style:none;} #list li{float:left;margin-right:10px;} &#60;/style&#62; &#60;/head&#62; &#60;body&#62; &#60;ul id="list"&#62;&#60;li&#62;12条留言&#60;/li&#62;&#60;li&#62;回复&#60;/li&#62;&#60;/ul&#62; &#60;/body&#62; &#60;/html&#62; 这个bug导致基线不一致，解决方法有如下几种： 修改字体为宋体，但是宋体的英文字体为衬线字体（Times New Roman即是英文中的衬线字，关于衬线字) &#60;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&#62; &#60;html xmlns="http://www.w3.org/1999/xhtml"&#62; &#60;head&#62; &#60;meta http-equiv="Content-Type" content="text/html; charset=gb2312" /&#62; [...]]]></description>
			<content:encoded><![CDATA[<p>这个bug很常见，首先看示例代码：</p>
<pre class="brush:css">&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html; charset=gb2312" /&gt;
&lt;title&gt;000&lt;/title&gt;
&lt;style type="text/css"&gt;
*{margin:0; padding:0;}
body{font-size:12px; color:#333;}
#list{font-family:Arial; list-style:none;}
#list li{float:left;margin-right:10px;}
&lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;ul id="list"&gt;&lt;li&gt;12条留言&lt;/li&gt;&lt;li&gt;回复&lt;/li&gt;&lt;/ul&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<div id="attachment_121" class="wp-caption aligncenter" style="width: 160px"><a class="lightbox" href="http://www.xiaoqiang.org/wp-content/uploads/2010/08/ie_cn_en_bug.jpg"><img class="size-thumbnail wp-image-121 " title="ie_cn_en_bug" src="http://www.xiaoqiang.org/wp-content/uploads/2010/08/ie_cn_en_bug-150x150.jpg" alt="IE下中英文混排bug" width="150" height="150" /></a><p class="wp-caption-text">IE下中英文混排bug</p></div>
<p><span id="more-117"></span></p>
<p>这个bug导致基线不一致，解决方法有如下几种：</p>
<p>修改字体为<strong>宋体</strong>，但是宋体的英文字体为衬线字体（Times New Roman即是英文中的衬线字，关于<a title="有衬线字体与无衬线字体(serif vs sans serif)" href="http://blog.csdn.net/yethyeth/archive/2007/02/26/1515270.aspx" target="_blank">衬线字</a>)</p>
<pre class="brush:css">&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html; charset=gb2312" /&gt;
&lt;title&gt;000&lt;/title&gt;
&lt;style type="text/css"&gt;
*{margin:0; padding:0;}
body{font-size:12px; color:#333;}
#list{font-family:"宋体"; list-style:none;}
#list li{float:left;margin-right:10px;}
&lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;ul id="list"&gt;&lt;li&gt;12条留言&lt;/li&gt;&lt;li&gt;回复&lt;/li&gt;&lt;/ul&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<p>为了更加美观，所以英文采用arial字体，中文使用宋体。可在&lt;a&gt;标签内注明 line-height:1.231,可解决行高不等以及字体与下划线粘连问题。代码如下：</p>
<pre class="brush:as3">&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html; charset=gb2312" /&gt;
&lt;title&gt;000&lt;/title&gt;
&lt;style type="text/css"&gt;
*{margin:0; padding:0;}
body{font-size:12px; color:#333;}
#list{font-family:Arial,"宋体";  list-style:none;}
#list li{float:left;margin-right:10px;line-height:1.231;}
&lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;ul id="list"&gt;&lt;li&gt;12条留言&lt;/li&gt;&lt;li&gt;回复&lt;/li&gt;&lt;/ul&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<p>杯具的事情还是发生了OP有和IE一样的bug而且用line-height解决不了，只能将字体设置为宋体解决问题。</p>
<p>参考文献：<a title="网页中英文混排行高不等问题的解决方案探讨" href="http://ued.koubei.com/?p=233" target="_blank">网页中英文混排行高不等问题的解决方案探讨</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.xiaoqiang.org/css/ie_cn_en_bug.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>javascript定义方法的四种途径</title>
		<link>http://www.xiaoqiang.org/javascript/javascript_method.html</link>
		<comments>http://www.xiaoqiang.org/javascript/javascript_method.html#comments</comments>
		<pubDate>Wed, 04 Aug 2010 07:39:21 +0000</pubDate>
		<dc:creator>小强</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[方法]]></category>

		<guid isPermaLink="false">http://www.xiaoqiang.org/?p=107</guid>
		<description><![CDATA[最近在看一本名叫《javascript设计模式》的书，感觉还不错，记录一些学习内容当作读书笔记。 第一章讲的是javascript的灵活性，用四种不同的方法实现同一件事情。 1，最常用的方式，但是无法保存状态 /*开始和结束动画*/ function startAnimation(){ ... } function stopAnimation(){ ... } 2，定一个类 /*定义类*/ var Anim = function(){ ... }; Anim.prototype.start = function (){ ... }; Anim.prototype.stop = function (){ ... }; /*实例化类*/ var myAnim = new Anim(); myAnim.start(); ... myAnim.stop(); 3，把方法的定义封装到声明中 /*定义一个类，并把方法封装到声明中*/ var Anim = function(){ ... }; Anim.prototype = { start: function(){ ... [...]]]></description>
			<content:encoded><![CDATA[<p>最近在看一本名叫《javascript设计模式》的书，感觉还不错，记录一些学习内容当作读书笔记。</p>
<p>第一章讲的是javascript的灵活性，用四种不同的方法实现同一件事情。</p>
<p>1，最常用的方式，但是无法保存状态</p>
<pre class="brush:js">/*开始和结束动画*/
function startAnimation(){
    ...
}
function stopAnimation(){
    ...
}</pre>
<p><span id="more-107"></span><br />
2，定一个类</p>
<pre class="brush:js">/*定义类*/
var Anim = function(){
    ...
};
Anim.prototype.start = function (){
    ...
};
Anim.prototype.stop = function (){
    ...
};
/*实例化类*/
var myAnim = new Anim();
myAnim.start();
...
myAnim.stop();</pre>
<p>3，把方法的定义封装到声明中</p>
<pre class="brush:js">/*定义一个类，并把方法封装到声明中*/
var Anim = function(){
    ...
};
Anim.prototype = {
    start: function(){
        ...
    },
    stop: function(){
        ...
    }
};</pre>
<p>4,定义一个专门添加方法的方法Function.prototype.method。它有两个参数，第一个参数是字符串，表示新方法的方法名；第二个是用作新方法的函数。</p>
<pre class="brush:js">/*给Function添加一个用来加方法的method方法*/
Function.prototype.method = function(name, fn) {
    this.prototype[name] = fn;
};
/*定义一个类，用method方法为它添加新方法*/
var Anim = function(){
    ...
}
Anim.method('start', function(){
    ...
});
Anim.method('stop', function(){
    ...
});</pre>
<p>当然，这种方法还能实现链式调用</p>
<pre class="brush:js">/*给Function添加一个用来加方法的method方法*/
Function.prototype.method = function(name, fn) {
    this.prototype[name] = fn;
    return this;
};
/*定义一个类，用method方法为它添加新方法*/
var Anim = function(){
    ...
}
Anim.method('start', function(){
    ...
}).method('stop', function(){
    ...
});</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.xiaoqiang.org/javascript/javascript_method.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
