<?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; markup language</title>
	<atom:link href="http://www.masterboke.com/category/bxsx/markup-language/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.masterboke.com</link>
	<description>I want to change the world!</description>
	<lastBuildDate>Fri, 16 Sep 2011 09:41:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>CSS优化</title>
		<link>http://www.masterboke.com/2009/07/10/css-improve/</link>
		<comments>http://www.masterboke.com/2009/07/10/css-improve/#comments</comments>
		<pubDate>Fri, 10 Jul 2009 07:02:39 +0000</pubDate>
		<dc:creator>boke</dc:creator>
				<category><![CDATA[markup language]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[性能优化]]></category>

		<guid isPermaLink="false">http://www.masterboke.cn/?p=553</guid>
		<description><![CDATA[<a href="http://www.masterboke.com/2009/07/10/css-improve/" title="CSS优化"></a>本文总结了一些CSS优化的规则，包括一些简写技巧，选择器的使用，及其它注意事项。 css简写技巧 1、属性值为0，而非0px。如果属性值为0，那么可以不为其添加单位（如px、em等），例如： padding: 10px 5px 0px 0px;  可以写成： padding: 10px 5px 0 0; 2、背景属性合写。背景属性可能会包含设置背景色、背景图、背景图的位置和背景图重复方式的参数，可以将这些合并写到一句里，例如： background-image: url(bg.png); background-position: 0 0; background-repeat: no-repeat; 可以写成： background: url(bg.png) no-repeat 0 0; 4、文字属性合写。和背景一样，文字属性也有很多可能会用到的属性值，来个复杂的文字样式： font-style:italic; font-variant:small-caps; font-weight:bold; font-size:12px; line-height:1.5; font-family:Arial, sans-serif;  可以写成： font:italic small-caps bold &#8230;<p class="read-more"><a href="http://www.masterboke.com/2009/07/10/css-improve/">继续阅读 &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://www.masterboke.com/2009/07/10/css-improve/" title="CSS优化"></a><p><span class="pleft">本文总结了一些CSS优化的规则，包括一些简写技巧，选择器的使用，及其它注意事项。</span></p>
<p><span class="pleft"><strong>css简写技巧</strong></span></p>
<p><span class="pleft">1、属性值为0，而非0px。如果属性值为0，那么可以不为其添加单位（如px、em等），例如：</span></p>
<pre class="brush:css">padding: 10px 5px 0px 0px;</pre>
<p><span class="pleft"> 可以写成：</span></p>
<pre class="brush:css">padding: 10px 5px 0 0;</pre>
<p><span class="pleft">2、背景属性合写。背景属性可能会包含设置背景色、背景图、背景图的位置和背景图重复方式的参数，可以将这些合并写到一句里，例如：</span></p>
<pre class="brush:css">background-image: url(bg.png);
background-position: 0 0;
background-repeat: no-repeat;</pre>
<p><span class="pleft">可以写成：</span></p>
<pre class="brush:css">background: url(bg.png) no-repeat 0 0;</pre>
<p><span class="pleft">4、文字属性合写。和背景一样，文字属性也有很多可能会用到的属性值，来个复杂的文字样式：</span></p>
<pre class="brush:css">font-style:italic;
font-variant:small-caps;
font-weight:bold;
font-size:12px;
line-height:1.5;
font-family:Arial, sans-serif;</pre>
<p><span class="pleft"> 可以写成：</span></p>
<pre class="brush:css">font:italic small-caps bold 12px/1.5 Arial, sans-serif;</pre>
<p><span class="pleft">4、颜色简写。css里的颜色数值使用“#”加6个16进制数表示的。这6个数两个一组，分别表示red，green，blue的值，有人说如果每对的颜色值都是各自相等的，可以简写成一个数值。例如，#ff6600，可以简写成#f60。关于这写法没找到确实的数据证明对浏览器的渲染效率是否有影响，但十六进制的颜色值默认标准是大写字母及数字组成的六位数标注。在未知情况下不希望冒险而降低了渲染的效率，所以还是建议写成#FF6600。</span></p>
<p><span class="pleft">5、margin、padding等的简写。有些人会这样声明边框：</span></p>
<pre class="brush:css">margin-top:5px;
margin-right:10px;
margin-bottom:5px;
margin-left:10px;</pre>
<p><span class="pleft">可以这样简写：</span></p>
<pre class="brush:css">margin:5px 10px 5px 10px;</pre>
<p><span class="pleft">css里，像margin、padding、border-width等在写属性值时都是按照上-右-下-左的顺时针方向来写的，不要弄混顺序。像上面的例子，上下边距，左右边距分别是相等的，还可以进一步简化：</span></p>
<pre class="brush:css">margin:5px 10px;</pre>
<p><span class="pleft">同理，padding、border-width等也是如此。</span></p>
<p><span class="pleft">6、border的简写。举个例子，声明一个1像素的黑色实线边框：</span></p>
<pre class="brush:css">border-width:1px;
border-style:solid;
border-color:#000;</pre>
<p><span class="pleft">可以简写成：</span></p>
<pre class="brush:css">border:1px solid #000;</pre>
<p><span class="pleft">有人可能会记不清顺序，我通常这样记，“数字靠两端，字母摆中间”。</span></p>
<p><span class="pleft">7、列表样式。用的不多，一个例子：</span></p>
<pre class="brush:css">list-style-type:square;
list-style-position:inside;
list-style-image:url(filename.gif);</pre>
<p><span class="pleft">这样简写：</span></p>
<pre class="brush:css">list-style:square inside url(filename.gir);</pre>
<p><span class="pleft"><strong>选择器使用</strong></span></p>
<p><span class="pleft">据说Mozilla样式系统的选择器是从右向左匹配的，这里有篇文章<a href="https://developer.mozilla.org/en/Writing_Efficient_CSS">https://developer.mozilla.org/en/Writing_Efficient_CSS</a>，看看就行，毕竟因为ie6的存在，像&gt;，+这样的选择器我们是用不到的，关于浏览器对选择器的支持情况，可以看下<a href="http://www.masterboke.cn/2009/02/26/css-browser-support/">http://www.masterboke.cn/2009/02/26/css-browser-support/</a>。不管选择器是从左还是从右匹配，有三点注意一下：</span></p>
<p><span class="pleft">1、避免使用通用选择符。想*{}，#test *{}这样的选择器还是不要用。</span></p>
<p><span class="pleft">2、不要用标签修饰id选择器。不要出现div #test{}这样的选择器，id选择器直接单独使用就行，不用再画蛇添足。</span></p>
<p><span class="pleft">3、不要使用标签修饰class选择器。不要出现div .test{}这样的选择器。</span></p>
<p><span class="pleft"><strong>其它注意事项</strong></span></p>
<p><span class="pleft">1、对css代码进行压缩。不管开发时是啥样的，呈现到用户面前时必定是压缩过的。</span></p>
<p><span class="pleft">2、应该将CSS 放置于结构的上方（一般放置于head 元素内）。CSS 是解释型语言，ff和ie在等待CSS 传输完成之前不会渲染任何东西。放在顶部，浏览器能够有针对性的对 <acronym title="HyperText Markup Language ">HTML</acronym> 页面从顶到下进行解析和渲染。</span></p>
<p><span class="pleft">3、尽量使用 &lt;link rel=”stylesheet” href=”http://www.masterboke.cn/test.css” type=”text/css”&gt; 的样式导入方式，而减少@import 的使用，更不要使用多层嵌套的@import 。因为在 IE 里，@import 相当于将&lt;link&gt; 放在页面尾部。</span></p>
<p><span class="pleft">4、不要使用css表达式。CSS Expressions这个东西好像也只有ie里能用。</span></p>
<p><span class="pleft">5、将css从页面里剥离，放在单独的文件里，这样能够使用缓存、压缩等策略，当然要注意不要引入过多的css文件，会增加http请求的。</span></p>
<p><span class="pleft">6、避免使用滤镜。IE独有属性AlphaImageLoader用于修正7.0以下版本中显示PNG图片的半透明效果。这个滤镜的问题在于浏览器加载图片时它会终止内容的呈现并且冻结浏览器。在每一个元素（不仅仅是图片）它都会运算一次，增加了内存开支，因此它的问题是多方面的。完全避免使用AlphaImageLoader的最好方法就是使用PNG8格式来代替，这种格式能在IE中很好地工作。如果确实需要使用AlphaImageLoader，请使用下划线_filter又使之对IE7以上版本的用户无效。</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.masterboke.com/2009/07/10/css-improve/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>document.documentElement和document.body</title>
		<link>http://www.masterboke.com/2009/02/13/documentdocumentelementdocumentbody/</link>
		<comments>http://www.masterboke.com/2009/02/13/documentdocumentelementdocumentbody/#comments</comments>
		<pubDate>Fri, 13 Feb 2009 15:35:55 +0000</pubDate>
		<dc:creator>boke</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[markup language]]></category>

		<guid isPermaLink="false">http://www.masterboke.cn/?p=298</guid>
		<description><![CDATA[<a href="http://www.masterboke.com/2009/02/13/documentdocumentelementdocumentbody/" title="document.documentElement和document.body"></a>昨天在试.xhtml时，看网上说要得到&#60;html&#62;节点，在xhtml里要用document.documentElement，而在html 4里要用document.body，以前虽然知道它俩之间的区别，但还真没仔细注意过。结果我一试，不管是用xhtml还是html，不管是加DOCTYPE还是不加，document.documentElement总是&#60;html&#62;节点，document.body总是&#60;body&#62;节点。 这是咋回事呢？后来找了半天，在一个博客里看到，好像只有在IE 4以前的浏览器才认为document.body是&#60;html&#62;节点，具体怎样说的我也忘了，现在再找那个博客也找不到了。我也没有IE 6以前版本的浏览器，没法试，算了，就这样吧，谁还会用IE 6以前的浏览器呢？ 所有的现代浏览器都认为document.documentElement可以得到&#60;html&#62;，document.body可以得到&#60;body&#62;。 不过我可没说在IE下，带DOCTYPE的文件和不带的，对documet.documentElement的解释是完全一样的。例如，我们要得到浏览器的显示区域大小，在带DOCTYPE的文件里，我们要用document.documentElement.clientWidth/document.documentElement.clientHeight来得到；而在不带DOCTYPE的文件里，这时documentElement.clientWidth/clientHeight都等于0，我们要用document.body.clientWidth/document.body.clientHeight来得到。 明白了吗？不明白的话，那咱就来点更糊涂的。 接着上面那个例子，我们现在通常使用的得到浏览器显示区域大小的函数通常可以简单的这样写： &#60;script type="text/javascript"&#62; function documentHeight() { var de = document.documentElement; return window.innerHeight &#124;&#124; ( de &#38;&#38; de.clientHeight ) &#124;&#124; document.body.clientHeight; } function documentWidth() { var de = document.documentElement; return window.innerWidth &#124;&#124; &#8230;<p class="read-more"><a href="http://www.masterboke.com/2009/02/13/documentdocumentelementdocumentbody/">继续阅读 &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://www.masterboke.com/2009/02/13/documentdocumentelementdocumentbody/" title="document.documentElement和document.body"></a><p><span class="pleft">昨天在试.xhtml时，看网上说要得到&lt;html&gt;节点，在xhtml里要用document.documentElement，而在html 4里要用document.body，以前虽然知道它俩之间的区别，但还真没仔细注意过。结果我一试，不管是用xhtml还是html，不管是加DOCTYPE还是不加，document.documentElement总是&lt;html&gt;节点，document.body总是&lt;body&gt;节点。</span></p>
<p><span class="pleft">这是咋回事呢？后来找了半天，在一个博客里看到，好像只有在IE 4以前的浏览器才认为document.body是&lt;html&gt;节点，具体怎样说的我也忘了，现在再找那个博客也找不到了。我也没有IE 6以前版本的浏览器，没法试，算了，就这样吧，谁还会用IE 6以前的浏览器呢？</span></p>
<p><span class="pleft">所有的现代浏览器都认为document.documentElement可以得到&lt;html&gt;，document.body可以得到&lt;body&gt;。</span></p>
<p><span class="pleft">不过我可没说在IE下，带DOCTYPE的文件和不带的，对documet.documentElement的解释是完全一样的。</span><span class="pleft">例如，我们要得到浏览器的显示区域大小，在带DOCTYPE的文件里，我们要用document.documentElement.clientWidth/document.documentElement.clientHeight来得到；而在不带DOCTYPE的文件里，这时documentElement.clientWidth/clientHeight都等于0，我们要用document.body.clientWidth/document.body.clientHeight来得到。</span></p>
<p><span class="pleft">明白了吗？不明白的话，那咱就来点更糊涂的。</span></p>
<p><span class="pleft">接着上面那个例子，我们现在通常使用的得到浏览器显示区域大小的函数通常可以简单的这样写：</span></p>
<pre class="brush:js">&lt;script type="text/javascript"&gt;
function documentHeight() {
  var de = document.documentElement;
  return window.innerHeight || ( de &amp;&amp; de.clientHeight ) || document.body.clientHeight;
}

function documentWidth() {
  var de = document.documentElement;
  return window.innerWidth || ( de &amp;&amp; de.clientWidth ) || document.body.clientWidth;
}
&lt;/script&gt;</pre>
<p><span class="pleft">这里的window.innerWidth，document.documentElement.clientWidth，document.body.clientWidth都是啥意思呢？都是为了得到浏览器显示区域的宽，第一个是适用于非IE系的，第二个是适用于带有DOCTYPE的IE 浏览器的，第三个是适用于不带有DOCTYPE的IE 浏览器的。</span></p>
<p><span class="pleft">怎么样？乱不？</span></p>
<p><span class="pleft">感觉还行的话，还有更刺激的，加不加DOCTYPE，不同的浏览器，有没有设置margin，这么多种情况，排列组合一下，测试一下以上那三个值，绝对够你喝一壶的。</span></p>
<p><span class="pleft">如果感觉乱，那就到此为止吧，我们按w3c那帮闲人的标准来，加上DOCTYPE。</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.masterboke.com/2009/02/13/documentdocumentelementdocumentbody/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>.xhtml扩展名</title>
		<link>http://www.masterboke.com/2009/02/12/xhtml%e6%89%a9%e5%b1%95%e5%90%8d/</link>
		<comments>http://www.masterboke.com/2009/02/12/xhtml%e6%89%a9%e5%b1%95%e5%90%8d/#comments</comments>
		<pubDate>Thu, 12 Feb 2009 15:56:17 +0000</pubDate>
		<dc:creator>boke</dc:creator>
				<category><![CDATA[markup language]]></category>
		<category><![CDATA[mobile web]]></category>
		<category><![CDATA[xhtml]]></category>

		<guid isPermaLink="false">http://www.masterboke.cn/?p=291</guid>
		<description><![CDATA[<a href="http://www.masterboke.com/2009/02/12/xhtml%e6%89%a9%e5%b1%95%e5%90%8d/" title=".xhtml扩展名"></a>今天在研究手机开发时的javascript应用时，不经意间发现了个小问题，现来看一下这两个文件： a.xhtml &#60;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&#62; &#60;html xmlns="http://www.w3.org/1999/xhtml"&#62; &#60;head&#62; &#60;meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /&#62; &#60;title&#62;1&#60;/title&#62; &#60;script type="text/javascript"&#62; window.onload = function() { var pp = document.documentElement.childNodes; for (p in pp) { alert(pp[p]); } } &#60;/script&#62; &#60;/head&#62; &#60;body&#62; &#8230;<p class="read-more"><a href="http://www.masterboke.com/2009/02/12/xhtml%e6%89%a9%e5%b1%95%e5%90%8d/">继续阅读 &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://www.masterboke.com/2009/02/12/xhtml%e6%89%a9%e5%b1%95%e5%90%8d/" title=".xhtml扩展名"></a><p><span class="pleft">今天在研究手机开发时的javascript应用时，不经意间发现了个小问题，现来看一下这两个文件：</span></p>
<p><span class="pleft">a.xhtml</span></p>
<pre class="brush:xhtml">&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /&gt;
&lt;title&gt;1&lt;/title&gt;
&lt;script type="text/javascript"&gt;
window.onload = function()
{
var pp = document.documentElement.childNodes;
for (p in pp)
{
alert(pp[p]);
}
}
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<p><span class="pleft">b.html</span></p>
<pre class="brush:xhtml">&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /&gt;
&lt;title&gt;1&lt;/title&gt;
&lt;script type="text/javascript"&gt;
window.onload = function()
{
var pp = document.documentElement.childNodes;
for (p in pp)
{
alert(pp[p]);
}
}
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<p><span class="pleft">发现两个文件的不同之处了吗？其实上面两个文件是完全一样的，除了扩展名。</span></p>
<p><span class="pleft">由于要做手机开发，有人建议说用.xhtml这个扩展名更好一些，于是就用了。本想用js得到body这个节点，结果试了几次pp[0]都不对。</span></p>
<p><span class="pleft">我用的是XHTML-MP 1.2的DOCTYPE，难道DOCTYPE不对？好，换成标准的xhtml的DOCTYPE，就是a.xhtml这样的，还是不对啊！</span></p>
<p><span class="pleft">难道js代码写的有问题？（这里有段小插曲，在下篇文章详述）百度一下，再翻出以前写的看看，没问题啊！还有哪儿不对呢？</span></p>
<p><span class="pleft">按网上和我以前的经验来说，pp[0]是&lt;head&gt;，pp[1]是&lt;body&gt;才正对呀！不管了，先把pp都alert出来看看是啥东西再说。这一alert发现问题了，多出三个[object Text]，分别位于&lt;head&gt;前面，&lt;head&gt;和&lt;body&gt;之间，&lt;body&gt;之后。这种情况，甭问肯定是换行符所致，删掉，果然没问题了。</span></p>
<p><span class="pleft">记得以前没出现这种情况，那可能就是扩展名的问题了，另存为b.html，再试，没问题了，这才恍然大悟，怪不得年前看过一个手机页面，一个换行符也没有。</span></p>
<p><span class="pleft">来个刨根问底，查查这个.xhtml到底咋回事，百度了半天，没找到，google了半天，好像（为什么加个好像呢?答案看我2月12号的饭否）也没找到。</span></p>
<p><span class="pleft">哪位有缘人路过提点提点，期待ing！！！</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.masterboke.com/2009/02/12/xhtml%e6%89%a9%e5%b1%95%e5%90%8d/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>CSS选择器</title>
		<link>http://www.masterboke.com/2009/02/07/cssselector/</link>
		<comments>http://www.masterboke.com/2009/02/07/cssselector/#comments</comments>
		<pubDate>Sat, 07 Feb 2009 09:31:37 +0000</pubDate>
		<dc:creator>boke</dc:creator>
				<category><![CDATA[markup language]]></category>
		<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://www.masterboke.cn/?p=260</guid>
		<description><![CDATA[<a href="http://www.masterboke.com/2009/02/07/cssselector/" title="CSS选择器"></a>重学prototype，半道研究了一下css2.1和css3的选择器，整理整理： CSS 2.1 1. 通用选择器(Universal selector) 即星号”*”，匹配任何元素类型 2. 类型选择器(Type selectors) h1 {font-size:19px;} /*匹配文档中所有的h1元素*/ 3. 后代选择器(Descendant selectors) &#60;h1&#62;I &#60;span&#62;am &#60;em&#62;boke.&#60;/em&#62;&#60;/span&#62;&#60;/h1&#62; h1 em {color:blue} /*匹配h1中的em元素*/ 4. 子选择器(Child selectors)  &#60;h1&#62;I &#60;span&#62;am &#60;em&#62;boke.&#60;/em&#62;&#60;/span&#62;&#60;/h1&#62; span &#62; em {color:blue} /*匹配span中的em元素。子选择器只对儿子辈的可用，对孙子、重孙子辈等都不可用，如h1 em{color:blue}将不起作用*/ 5. 相邻兄弟选择器(Adjacent sibling selectors) &#60;span &#8230;<p class="read-more"><a href="http://www.masterboke.com/2009/02/07/cssselector/">继续阅读 &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://www.masterboke.com/2009/02/07/cssselector/" title="CSS选择器"></a><p>重学prototype，半道研究了一下css2.1和css3的选择器，整理整理：</p>
<h3>CSS 2.1</h3>
<p><span style="padding-left:28px;">1. 通用选择器(Universal selector)</span></p>
<p><span style="padding-left:28px;">即星号”*”，匹配任何元素类型</span></p>
<p><span style="padding-left:28px;">2. 类型选择器(Type selectors)</span></p>
<p><span style="padding-left:28px;">h1 {font-size:19px;} /*匹配文档中所有的h1元素*/</span></p>
<p><span style="padding-left:28px;">3. 后代选择器(Descendant selectors)</span></p>
<p><span style="padding-left:28px;">&lt;h1&gt;I &lt;span&gt;am &lt;em&gt;boke.&lt;/em&gt;&lt;/span&gt;&lt;/h1&gt;</span></p>
<p><span style="padding-left:28px;">h1 em {color:blue} /*匹配h1中的em元素*/</span></p>
<p><span style="padding-left:28px;">4. 子选择器(Child selectors)</span></p>
<p><span style="padding-left:28px;"> &lt;h1&gt;I &lt;span&gt;am &lt;em&gt;boke.&lt;/em&gt;&lt;/span&gt;&lt;/h1&gt;</span></p>
<p><span style="padding-left:28px;">span &gt; em {color:blue} /*匹配span中的em元素。子选择器只对儿子辈的可用，对孙子、重孙子辈等都不可用，如h1 em{color:blue}将不起作用*/</span></p>
<p><span style="padding-left:28px;">5. 相邻兄弟选择器(Adjacent sibling selectors)</span></p>
<p><span style="padding-left:28px;">&lt;span class=”abc”&gt;I am Peter Petrelli.&lt;/span&gt;</span></p>
<p><span style="padding-left:28px;">&lt;h1&gt;I am boke.&lt;/h1&gt;</span></p>
<p><span style="padding-left:28px;">&lt;span class=”abc”&gt;I am Sylar.&lt;/span&gt;</span></p>
<p><span style="padding-left:28px;">h1 + .abc {color:blue} /*匹配与h1紧邻的后一个，类名为abc的元素。注意是后一个，“I am Peter Petrelli”是不会变蓝的。*/</span> </p>
<p><span style="padding-left:28px;">6. 属性选择器(Attribute selectors)</span></p>
<p><span style="padding-left:28px;">&lt;span lang=”zh-cn” title=”heroes the 4400&#8243;&gt;Super men?&lt;/span&gt;</span></p>
<ul style="padding-left:28px;">
<li>span[title] {color:red;} /*匹配含有title属性的span*/</li>
<li>span[title="heroes the 4400"] {color:red;} /*匹配title属性的值为“heroes the 4400”的span*/</li>
<li>span[title~="heroes"] {color:red;} /*匹配title属性中含有以空格分隔的，单词为“heroes”的span*/</li>
<li>span[lang|="zh"] {color:blue;} /*匹配lang属性中含有连字符且以“zh”开头的span*/</li>
</ul>
<p><span style="padding-left:28px;">7. 类选择器和ID选择器(Class selectors and ID selectors)</span></p>
<p><span style="padding-left:28px;">不必多言。</span></p>
<p><span style="padding-left:28px;">8. 伪类</span></p>
<p><span style="padding-left:28px;">&lt;div&gt;&lt;p&gt;I am boke.&lt;/p&gt;&lt;p&gt;I am Hiro Makamura.&lt;/p&gt;&lt;a href=”"&gt;I am Matt Parkman.&lt;/a&gt;&lt;/div&gt;</span></p>
<ul style="padding-left:28px;">
<li>:first-child  例如：div &gt; p:first-child {color:red;} /*匹配div下的第一个p元素*/</li>
<li>:link and :visited  例如a:link {color:blue;} /*匹配没有被访问的超链接*/ a:visited {color:yellow} /*匹配已经被用户点击的超链接*/ </li>
<li>:hover,:active and :focus  例如：.b:hover {color:blue;} /*匹配class=”b”的元素鼠标放上时*/ .b:active {color:red;} /*匹配class=”b”的元素鼠标按下时*/ .b:focus {color:yellow;} /*匹配class=”b”的元素得到焦点时*/</li>
<li>:lang  例如：html:lang(zh-cn) {qutoes:&#8217;?&#8217; &#8216;?&#8217;}</li>
</ul>
<p><span style="padding-left:28px;">9. 伪元素</span></p>
<ul style="padding-left:28px;">
<li>:first-line  例如：p:first-line {font-size:3em;} /*匹配p元素内的第一行，注意，只作用于块元素，内联元素要设定height或width属性，或设定position为absolute，或设定display为block*/</li>
<li>:first-letter  例如：p:first-letter{font-size;2em;} /*匹配p元素内的第一个字符，注意，同first-letter*/</li>
<li>:before and :after  例如：p:before {content:”nani?”} /*设置在p之前发生的内容，注意要和content配合使用*/</li>
</ul>
<h3>CSS 3</h3>
<p>2.1中有的不再重复，将标注 “²  ”这个符号表示</p>
<p><span style="padding-left:28px;">1. 通用选择器(Universal selector)²</span></p>
<p><span style="padding-left:28px;">2. 类型选择器(Type selector)² </span></p>
<p><span style="padding-left:28px;">3. 属性选择器(Attribute selector)²</span></p>
<p><span style="padding-left:28px;">&lt;a href=”" title=”copyright boke”&gt;sa ku sha.&lt;/a&gt;</span></p>
<ul style="padding-left:28px;">
<li>a[title]²</li>
<li>a[title="copyright boke"]²</li>
<li>a[title~="copyright"]²</li>
<li>a[lang|="zh"]²</li>
<li>a[title^="copy"] /*匹配有title属性且属性值以“copy”开头的a元素*/</li>
<li>a[title$="ke"] /*匹配有title属性且属性值以“ke”结尾的a元素*/</li>
<li>a[title*="right"] /*匹配有title属性且属性值中包含“right”字符串的a元素*/</li>
</ul>
<p><span style="padding-left:28px;">4. 类选择器和ID选择器(Class selectors and ID selectors)²</span></p>
<p><span style="padding-left:28px;">5. 伪类(Pseudo-classes)</span></p>
<ol class="pleft">
<li>动态伪类(Dynamic pseduo-classes)
<ul>
<li>:link and :visited²</li>
<li>:hover, :active and :focus² </li>
</ul>
</li>
<li>目标伪类(Target pseduo-class) :target /*简单理解成匹配被从URI中定位的锚点*/</li>
<li>语言伪类(Language pseudo-class)²</li>
<li>UI元素状态伪类(UI element states pseudo-classes)
<ul>
<li>:enabled and :disabled  例如：.urt:disabled {color:#333;} /*匹配类为.urt且被设置成不可用(disabled)的元素*/</li>
<li>:checked  /*匹配被设置成checked的元素*/</li>
<li>:indeterminate  /*匹配checked状态不确定的元素，CSS 3还没加入，将来可能加入*/</li>
</ul>
</li>
<li>结构伪类(Structural pseudo-classes)
<ul>
<li>:root  /*匹配文档的根元素，在html 4 中这个总是匹配*/</li>
<li>:nth-child() and nth-last-child()  /*按索引值匹配子元素。例如：li:nth-child(3) 匹配在ul中排第3个位置的li，li:nth-child(2n+1)和li:nth-child(odd)匹配所有奇数位置的li，li:nth-child(2n)和li:nth-child(even)匹配所有偶数位置的li。当然4n+1，4n+2，4n+3，4n+4可以四行匹配，类推。注意，第一个元素的索引是1而不是0。倒数的:nth-child()*/</li>
<li>:nth-of-type() and :nth-last-of-type() /*匹配某种类型的同级兄弟元素，括号里的参数同:nth-child()。倒数的:nth-of-type()*/</li>
<li>:first-child and :last-child /*匹配第一个和最后一个元素，例如：ul li:first-child {color:red}*/</li>
<li>:first-of-type and :last-of-type /*匹配第一个和最后一个某种类型的元素*/</li>
<li>only-of-type /*匹配一个元素其在这个元素的父元素中再也没有和它同名的元素*/</li>
<li>:empty /*例如，p:empty，匹配一个&lt;p&gt;&lt;/p&gt;*/</li>
</ul>
</li>
<li>否定伪类(Negation pseudo-class) :not() /*匹配除了括号里规定的之外的元素，例如：button:not([disabled])，匹配除了属性设置为disabled之外的所有button，*:not(p)，匹配除了p元素之外的所有元素*/</li>
</ol>
<p><span class="pleft">6. 伪元素</span></p>
<ul class="pleft">
<li>::first-line² /*不过这里是两个“:”*/</li>
<li>::first-letter² /*不过这里是两个“:”*/</li>
<li>::selection /*匹配元素中被用户选中的部分，例如span::selection {color:red}*/</li>
<li>::before and ::after² /*两个“:”*/</li>
</ul>
<p><span class="pleft">7. 组合选择器</span></p>
<p><span class="pleft">&lt;div&gt;&lt;p class=”god”&gt;I am boke.&lt;/p&gt;&lt;p&gt;I am Isaac Mendez.&lt;/p&gt;&lt;p&gt;I am Nathan Petrelli.&lt;/p&gt;&lt;/div&gt;</span></p>
<ul class="pleft">
<li>后代(Descendant combinator)² /*同2.1里的后代选择器，例如：div p {color:red;}*/</li>
<li>子代(Child combinators)² /*同2.1里的子选择器，例如div&gt;p{color:blue;}*/</li>
<li>相邻兄弟(Adjacent sibling combinator)² /*同2.1里的相邻兄弟选择器，例如：.god+p{font-size:2em;}*/</li>
<li>通用兄弟(Genetal sibling combinator) /*可以选择普通的兄弟了，例如：.god~p{color:yellow;}*/</li>
</ul>
<p>终于写完了，等发现那里有问题再改正。有种感觉，w3c那帮闲人弄这么多东西干嘛，实际应用中真的都会用到吗，想让css取代js吗？南哈蒙理工学院（=S H I T）！</p>
<p>过两天再整理个Mobile Profile的。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.masterboke.com/2009/02/07/cssselector/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>手机使用AJAX</title>
		<link>http://www.masterboke.com/2009/01/21/%e6%89%8b%e6%9c%ba%e4%bd%bf%e7%94%a8ajax/</link>
		<comments>http://www.masterboke.com/2009/01/21/%e6%89%8b%e6%9c%ba%e4%bd%bf%e7%94%a8ajax/#comments</comments>
		<pubDate>Wed, 21 Jan 2009 07:06:44 +0000</pubDate>
		<dc:creator>boke</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[markup language]]></category>
		<category><![CDATA[mobile web]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[xhtml mp]]></category>

		<guid isPermaLink="false">http://www.masterboke.cn/?p=177</guid>
		<description><![CDATA[<a href="http://www.masterboke.com/2009/01/21/%e6%89%8b%e6%9c%ba%e4%bd%bf%e7%94%a8ajax/" title="手机使用AJAX"></a>测试一下手机浏览器对AJAX的支持： &#60;?xml version="1.0" encoding="UTF-8"?&#62; &#60;!DOCTYPE html PUBLIC "-//OMA//DTD XHTML Mobile 1.2//EN" "http://www.openmobilealliance.org/tech/DTD/xhtml-mobile12.dtd"&#62; &#60;html xmlns="http://www.w3.org/1999/xhtml"&#62; &#60;head&#62; &#60;meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" /&#62; &#60;title&#62;title&#60;/title&#62; &#60;/head&#62; &#60;body&#62; &#60;div id="a"&#62;&#60;/div&#62; &#60;div id='b'&#62;&#60;/div&#62; &#60;input type="button" onclick="startXMLHttp();" value="发送GET" /&#62; &#60;div id="a1"&#62;&#60;/div&#62; &#60;div id='b1'&#62;&#60;/div&#62; &#60;input type="button" onclick="startXMLHttp1();" value="发送POST" &#8230;<p class="read-more"><a href="http://www.masterboke.com/2009/01/21/%e6%89%8b%e6%9c%ba%e4%bd%bf%e7%94%a8ajax/">继续阅读 &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://www.masterboke.com/2009/01/21/%e6%89%8b%e6%9c%ba%e4%bd%bf%e7%94%a8ajax/" title="手机使用AJAX"></a><p>测试一下手机浏览器对AJAX的支持：</p>
<p>
<pre name="code" class="html">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;!DOCTYPE html PUBLIC "-//OMA//DTD XHTML Mobile 1.2//EN" "http://www.openmobilealliance.org/tech/DTD/xhtml-mobile12.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" /&gt;
&lt;title&gt;title&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;div id="a"&gt;&lt;/div&gt;
&lt;div id='b'&gt;&lt;/div&gt;
&lt;input type="button" onclick="startXMLHttp();" value="发送GET" /&gt;
&lt;div id="a1"&gt;&lt;/div&gt;
&lt;div id='b1'&gt;&lt;/div&gt;
&lt;input type="button" onclick="startXMLHttp1();" value="发送POST" /&gt;

&lt;script type="text/javascript"&gt;
 //&lt;![CDATA[
  var xmlHttp;
  function createXMLHttp()
  {
    if (window.XMLHttpRequest)
    {
      xmlHttp = new XMLHttpRequest();
    }
    else if (window.ActiveXObject)
    {
      try
      {
        xmlHttp = new ActiveXObject('Msxml2.XMLHTTP');
      }
      catch(e)
      {
        try
        {
          xmlHttp = new ActiveXObject('Microsoft.XMLHTTP');
        }
        catch(e) {};
      }
    }
  }
  
  function startXMLHttp()
  {
    createXMLHttp();
    var sendStr = "name=博科&amp;age=23";
    sendStr = encodeURI(sendStr);
  var t1 = document.createTextNode(sendStr);
    document.getElementById('a').appendChild(t1);
    xmlHttp.onreadystatechange = doSomething;
    xmlHttp.open('GET','ajaxtest.php?'+sendStr,true);
    xmlHttp.send(null);
  }
  
  function doSomething()
  {
    
    if (xmlHttp.readyState == 4)
    {
      if (xmlHttp.status == 200)
      {
    var t2 = document.createTextNode(xmlHttp.responseText);
        document.getElementById('b').appendChild(t2);
    //document.getElementById('b').innerHTML = xmlHttp.responseText;
      }
    }
  }
  
  function startXMLHttp1()
  {
    createXMLHttp();
    var sendStr = "name=博科&amp;age=23";
    sendStr = encodeURI(sendStr);
  var t3 = document.createTextNode(sendStr);
    document.getElementById('a1').appendChild(t3);
    xmlHttp.onreadystatechange = doSomething1;
    xmlHttp.open('POST','ajaxtest1.php',true);
    xmlHttp.setRequestHeader('Content-type','application/x-www-form-urlencoded');
    xmlHttp.send(sendStr);
  }
  
  function doSomething1()
  {
    if (xmlHttp.readyState == 4)
    {
      if (xmlHttp.status == 200)
      {
        var ret = eval('('+xmlHttp.responseText+')');
        var t4 = document.createTextNode('你的名字是'+ret.name+'，年龄是'+ret.age); 
        document.getElementById('b1').appendChild(t4);
        //document.getElementById('b1').innerHTML = xmlHttp.responseText;
      }
    }
  }
 //]]&gt;
&lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
</p>
<p>由于是xhtml，如果服务器返回的数据里面有“&amp;”，“&lt;”等特殊字符，以及html标签等，就会提示解析错误，所以我们不能使用document.getElementById(&#8216;b1&#8242;).innerHTML = xmlHttp.responseText了，这里需要注意。<br class="spacer_" />推荐在服务器端将数据组装成JSON格式，然后在客户端使用createElement()，appendChild()等DOM方法生成所需的样式。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.masterboke.com/2009/01/21/%e6%89%8b%e6%9c%ba%e4%bd%bf%e7%94%a8ajax/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>xhtml mp的事件支持测试</title>
		<link>http://www.masterboke.com/2009/01/20/xhtml-mp%e7%9a%84%e4%ba%8b%e4%bb%b6%e6%94%af%e6%8c%81%e6%b5%8b%e8%af%95/</link>
		<comments>http://www.masterboke.com/2009/01/20/xhtml-mp%e7%9a%84%e4%ba%8b%e4%bb%b6%e6%94%af%e6%8c%81%e6%b5%8b%e8%af%95/#comments</comments>
		<pubDate>Tue, 20 Jan 2009 08:49:18 +0000</pubDate>
		<dc:creator>boke</dc:creator>
				<category><![CDATA[markup language]]></category>
		<category><![CDATA[mobile web]]></category>
		<category><![CDATA[xhtml mp]]></category>

		<guid isPermaLink="false">http://www.masterboke.cn/?p=158</guid>
		<description><![CDATA[<a href="http://www.masterboke.com/2009/01/20/xhtml-mp%e7%9a%84%e4%ba%8b%e4%bb%b6%e6%94%af%e6%8c%81%e6%b5%8b%e8%af%95/" title="xhtml mp的事件支持测试"></a>以下是xhtml mp支持的事件，其中onload和onclick事件是规范规定浏览器必需支持的，其它为可选。具体哪种元素支持哪些事件，因浏览器不同而不同，可以修改以下代码进行测试。还附加了个XMLHttpRequest对象检测。 &#60;?xml version="1.0" encoding="UTF-8"?&#62; &#60;!DOCTYPE html PUBLIC "-//OMA//DTD XHTML Mobile 1.2//EN" "http://www.openmobilealliance.org/tech/DTD/xhtml-mobile12.dtd"&#62; &#60;html xmlns="http://www.w3.org/1999/xhtml"&#62; &#60;head&#62; &#60;meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" /&#62; &#60;title&#62;DOM Events Test For XHTML Mobile Profile&#60;/title&#62; &#60;/head&#62; &#60;body&#62; ajax:&#60;label id="ajax"&#62;&#60;/label&#62;&#60;br /&#62; onload:&#60;label id="load"&#62;&#60;/label&#62;&#60;br /&#62; onunload:&#60;label id="unload"&#62;&#60;/label&#62;&#60;br /&#62; onclick:&#60;label &#8230;<p class="read-more"><a href="http://www.masterboke.com/2009/01/20/xhtml-mp%e7%9a%84%e4%ba%8b%e4%bb%b6%e6%94%af%e6%8c%81%e6%b5%8b%e8%af%95/">继续阅读 &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://www.masterboke.com/2009/01/20/xhtml-mp%e7%9a%84%e4%ba%8b%e4%bb%b6%e6%94%af%e6%8c%81%e6%b5%8b%e8%af%95/" title="xhtml mp的事件支持测试"></a><p>以下是xhtml mp支持的事件，其中onload和onclick事件是规范规定浏览器必需支持的，其它为可选。具体哪种元素支持哪些事件，因浏览器不同而不同，可以修改以下代码进行测试。还附加了个XMLHttpRequest对象检测。</p>
<pre class="brush:xhtml">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;!DOCTYPE html PUBLIC "-//OMA//DTD XHTML Mobile 1.2//EN" "http://www.openmobilealliance.org/tech/DTD/xhtml-mobile12.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" /&gt;
&lt;title&gt;DOM Events Test For XHTML Mobile Profile&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
ajax:&lt;label id="ajax"&gt;&lt;/label&gt;&lt;br /&gt;
onload:&lt;label id="load"&gt;&lt;/label&gt;&lt;br /&gt;
onunload:&lt;label id="unload"&gt;&lt;/label&gt;&lt;br /&gt;
onclick:&lt;label id="click"&gt;&lt;/label&gt;&lt;br /&gt;
ondblclick:&lt;label id="doubleclick"&gt;&lt;/label&gt;
onmousedown:&lt;label id="mousedown"&gt;&lt;/label&gt;&lt;br /&gt;
onmouseup:&lt;label id="mouseup"&gt;&lt;/label&gt;
onmouseover:&lt;label id="mouseover"&gt;&lt;/label&gt;&lt;br /&gt;
onmousemove:&lt;label id="mousemove"&gt;&lt;/label&gt;
onmouseout:&lt;label id="mouseout"&gt;&lt;/label&gt;&lt;br /&gt;
onfocus:&lt;label id="focus"&gt;&lt;/label&gt;
onblur:&lt;label id="blur"&gt;&lt;/label&gt;&lt;br /&gt;
onkeypress:&lt;label id="keypress"&gt;&lt;/label&gt;
onkeydown:&lt;label id="keydown"&gt;&lt;/label&gt;&lt;br /&gt;
onkeyup:&lt;label id="keyup"&gt;&lt;/label&gt;
onsubmit:&lt;label id="submit"&gt;&lt;/label&gt;&lt;br /&gt;
onreset:&lt;label id="reset"&gt;&lt;/label&gt;
onselect:&lt;label id="select"&gt;&lt;/label&gt;&lt;br /&gt;
onchange:&lt;label id="change"&gt;&lt;/label&gt;&lt;br /&gt;

&lt;form action="" method="get" id="f1"&gt;
  &lt;input type="button" value="点击我" id="b1" /&gt;
  &lt;input type="text" value="点击我" id="t1" /&gt;
&lt;/form&gt;
&lt;script type="text/javascript"&gt;
//&lt;![CDATA[
  /**
   * Ajax支持判断
   */
  var xmlHttp;
  function createXMLHttp()
  {
    if (window.XMLHttpRequest)
    {
      xmlHttp = new XMLHttpRequest();
    }
    else if (window.ActiveXObject)
    {
      try
      {
        xmlHttp = new ActiveXObject('Msxml2.XMLHTTP');
      }
      catch(e)
      {
        try
        {
          xmlHttp = new ActiveXObject('Microsoft.XMLHTTP');
        }
        catch(e) {};
      }
    }
  }
  createXMLHttp();
  if (xmlHttp)
  {
    document.getElementById('ajax').innerHTML = "支持";
  }
  else
  {
    document.getElementById('ajax').innerHTML = "不支持";
  }
  /**
   * 从这里开始
   */
  function $(id)
  {
    return document.getElementById(id);
  }
  window.onload = function()
  {
    $('load').innerHTML = "支持";
    if (window.onresize)
    {
      $('resize').innerHTML = "支持";
    }
  }
  $('b1').onclick = function()
  {
    $('click').innerHTML = "支持";
    $('f1').onsubmit();
    $('f1').onreset();
  }
  $('b1').ondblclick = function()
  {
    $('doubleclick').innerHTML = "支持";
  }
  $('b1').onmousedown = function()
  {
    $('mousedown').innerHTML = "支持";
  }
  $('b1').onmouseup = function()
  {
    $('mouseup').innerHTML = "支持";
  }
	$('b1').onmouseover = function()
  {
    $('mouseover').innerHTML = "支持";
  }
	$('b1').onmousemove = function()
  {
    $('mousemove').innerHTML = "支持";
  }
	$('b1').onmouseout = function()
  {
    $('mouseout').innerHTML = "支持";
  }
	$('t1').onkeydown = function()
  {
    $('keydown').innerHTML = "支持";
  }
	$('t1').onkeypress = function()
  {
    $('keypress').innerHTML = "支持";
  }
	$('t1').onkeyup = function()
  {
    $('keyup').innerHTML = "支持";
  }
	$('t1').onfocus = function()
  {
    $('focus').innerHTML = "支持";
  }
	$('t1').onblur = function()
  {
    $('blur').innerHTML = "支持";
  }
	$('t1').onselect = function()
  {
    $('select').innerHTML = "支持";
  }
	$('t1').onchange = function()
  {
    $('change').innerHTML = "支持";
  }
	$('f1').onsubmit = function()
	{
		$('submit').innerHTML = "支持";
		return false;
	}
	$('f1').onreset = function()
  {
    $('reset').innerHTML = "支持";
    return false;
  }
//]]&gt;
&lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.masterboke.com/2009/01/20/xhtml-mp%e7%9a%84%e4%ba%8b%e4%bb%b6%e6%94%af%e6%8c%81%e6%b5%8b%e8%af%95/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>手机页面设计及编写的建议规则（一）</title>
		<link>http://www.masterboke.com/2009/01/19/%e6%89%8b%e6%9c%ba%e9%a1%b5%e9%9d%a2%e8%ae%be%e8%ae%a1%e5%8f%8a%e7%bc%96%e5%86%99%e7%9a%84%e5%bb%ba%e8%ae%ae%e8%a7%84%e5%88%99%ef%bc%88%e4%b8%80%ef%bc%89/</link>
		<comments>http://www.masterboke.com/2009/01/19/%e6%89%8b%e6%9c%ba%e9%a1%b5%e9%9d%a2%e8%ae%be%e8%ae%a1%e5%8f%8a%e7%bc%96%e5%86%99%e7%9a%84%e5%bb%ba%e8%ae%ae%e8%a7%84%e5%88%99%ef%bc%88%e4%b8%80%ef%bc%89/#comments</comments>
		<pubDate>Mon, 19 Jan 2009 08:01:16 +0000</pubDate>
		<dc:creator>boke</dc:creator>
				<category><![CDATA[markup language]]></category>
		<category><![CDATA[mobile web]]></category>
		<category><![CDATA[web设计]]></category>
		<category><![CDATA[产品设计]]></category>

		<guid isPermaLink="false">http://www.masterboke.cn/?p=107</guid>
		<description><![CDATA[<a href="http://www.masterboke.com/2009/01/19/%e6%89%8b%e6%9c%ba%e9%a1%b5%e9%9d%a2%e8%ae%be%e8%ae%a1%e5%8f%8a%e7%bc%96%e5%86%99%e7%9a%84%e5%bb%ba%e8%ae%ae%e8%a7%84%e5%88%99%ef%bc%88%e4%b8%80%ef%bc%89/" title="手机页面设计及编写的建议规则（一）"></a>我总结的手机web页面设计及编写规则，适用于xhtml basic 和 xhtml mp。仅代表个人观点。 1. 设计相关 1.1 硬件限制 手机屏幕由于尺寸、分辨率和色彩的限制，不能正常显示我们用于普通显示器的设计。在设计mobile web时要注意尽量避免产生滚动条，必需有滚动条时要保障只在一个方向上产生，如右图所示，不使用传统的上左右下结构，而使用上下结构。应该把主要的导航链接放在页面顶部，而且应当尽量精简，1或2行较为适宜。如果需要其它次要的导航就放在页面底部，这样用户打开页面后无需滚动就能看到页面的主要内容。不要使用过于复杂的色彩，手机屏幕不一定能正常显示，只要使网站总体风格一致即可。 手机网络往往要比有线链接要慢，例如，中移动GPRS升级EDGE后峰值只有384kbps，而且由于机制所限，手机连接互联网会产生较高的延迟，这些都将导致页面加载时间的延长；使用移动网络需要用户支付的费用通常会比较高，中移动降价后的GPRS流量费仍高达0.01元/KB。（不知升级3G后会是何种情况，呵呵） 在进行页面设计时应注意图片，flash等元素的使用，不要尺寸和字节数过大的图片，这样加快网页加载，不产生不必要的滚动条，降低用户的使用成本。 版本低一点的手机浏览器往往不支持脚本或插件，而且在许多情况下，用户没有选择的浏览器或者升级旧浏览器的余地。像重新载入网页，构建表，处理不必要而且复杂的样式表，处理无效的标记等等这些操作，由于手机的处理能力通常都相当有限，这意味着网页渲染可能需要很长时间才能完成，这将引起明显的延迟，并且浪费更多的电池电量。 1.2 用户输入 手机输入一般都不像使用普通键盘那么方便，而且一般手机都没有像鼠标这样的指点设备，应尽可能让用户少输入内容。例如一个较长的URI，用户没有耐心去输入它，而且也不能保证输入的正确性。 例如：不推荐使用这样的URI “http://www.example.org/index.html”， 推荐使用这样的 “http://example.org”。 1.3 用户目标 用户通过手机上网浏览所需的网页时，通常都比桌面用户有更具体的目标，他们的意图往往是为了找出直接相关的资料。例如，用户可能需要收发某封重要的电子邮件，找一个距离最近的中国石油的加油站，看看CCTV5今天是否直播火箭队的比赛等等，恰巧手边又没有一台能上网的电脑。 同样，手机用户通常不太关心冗长的文件或内容。手机屏幕是不适合阅读长篇内容，用户往往还是因为没有更方便的接入方法，只得使用手机作为最后的手段。 2. 代码相关 2.1 文件总体结构应遵循以下样式。 xhtml mp使用: &#60;?xml version=”1.0&#8243; encoding=”UTF-8&#8243;?&#62; &#60;!DOCTYPE html PUBLIC “-//OMA//DTD XHTML Mobile &#8230;<p class="read-more"><a href="http://www.masterboke.com/2009/01/19/%e6%89%8b%e6%9c%ba%e9%a1%b5%e9%9d%a2%e8%ae%be%e8%ae%a1%e5%8f%8a%e7%bc%96%e5%86%99%e7%9a%84%e5%bb%ba%e8%ae%ae%e8%a7%84%e5%88%99%ef%bc%88%e4%b8%80%ef%bc%89/">继续阅读 &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://www.masterboke.com/2009/01/19/%e6%89%8b%e6%9c%ba%e9%a1%b5%e9%9d%a2%e8%ae%be%e8%ae%a1%e5%8f%8a%e7%bc%96%e5%86%99%e7%9a%84%e5%bb%ba%e8%ae%ae%e8%a7%84%e5%88%99%ef%bc%88%e4%b8%80%ef%bc%89/" title="手机页面设计及编写的建议规则（一）"></a><p>我总结的手机web页面设计及编写规则，适用于xhtml basic 和 xhtml mp。仅代表个人观点。</p>
<h3>1. 设计相关</h3>
<p><strong>1.1 硬件限制</strong></p>
<div id="attachment_131" class="wp-caption alignright" style="width: 148px"><img class="size-full wp-image-131" title="mwjg" src="http://www.masterboke.com/wp-content/uploads/2009/01/mwjg.jpg" alt="推荐结构" width="138" height="258" /><p class="wp-caption-text">推荐结构</p></div>
<p>手机屏幕由于尺寸、分辨率和色彩的限制，不能正常显示我们用于普通显示器的设计。在设计mobile web时要注意尽量避免产生滚动条，必需有滚动条时要保障只在一个方向上产生，如右图所示，不使用传统的上左右下结构，而使用上下结构。应该把主要的导航链接放在页面顶部，而且应当尽量精简，1或2行较为适宜。如果需要其它次要的导航就放在页面底部，这样用户打开页面后无需滚动就能看到页面的主要内容。不要使用过于复杂的色彩，手机屏幕不一定能正常显示，只要使网站总体风格一致即可。</p>
<p>手机网络往往要比有线链接要慢，例如，中移动GPRS升级EDGE后峰值只有384kbps，而且由于机制所限，手机连接互联网会产生较高的延迟，这些都将导致页面加载时间的延长；使用移动网络需要用户支付的费用通常会比较高，中移动降价后的GPRS流量费仍高达0.01元/KB。（不知升级3G后会是何种情况，呵呵）</p>
<p>在进行页面设计时应注意图片，flash等元素的使用，不要尺寸和字节数过大的图片，这样加快网页加载，不产生不必要的滚动条，降低用户的使用成本。</p>
<p>版本低一点的手机浏览器往往不支持脚本或插件，而且在许多情况下，用户没有选择的浏览器或者升级旧浏览器的余地。像重新载入网页，构建表，处理不必要而且复杂的样式表，处理无效的标记等等这些操作，由于手机的处理能力通常都相当有限，这意味着网页渲染可能需要很长时间才能完成，这将引起明显的延迟，并且浪费更多的电池电量。</p>
<p><strong>1.2 用户输入</strong></p>
<p>手机输入一般都不像使用普通键盘那么方便，而且一般手机都没有像鼠标这样的指点设备，应尽可能让用户少输入内容。例如一个较长的URI，用户没有耐心去输入它，而且也不能保证输入的正确性。</p>
<p>例如：不推荐使用这样的URI<br />
“http://www.example.org/index.html”，<br />
推荐使用这样的<br />
“http://example.org”。</p>
<p><strong>1.3 用户目标</strong></p>
<p>用户通过手机上网浏览所需的网页时，通常都比桌面用户有更具体的目标，他们的意图往往是为了找出直接相关的资料。例如，用户可能需要收发某封重要的电子邮件，找一个距离最近的中国石油的加油站，看看CCTV5今天是否直播火箭队的比赛等等，恰巧手边又没有一台能上网的电脑。</p>
<p>同样，手机用户通常不太关心冗长的文件或内容。手机屏幕是不适合阅读长篇内容，用户往往还是因为没有更方便的接入方法，只得使用手机作为最后的手段。</p>
<h3>2. 代码相关</h3>
<div><strong>2.1 文件总体结构应遵循以下样式。</strong><br />
xhtml mp使用:</div>
<p>&lt;?xml version=”1.0&#8243; encoding=”UTF-8&#8243;?&gt;<br />
&lt;!DOCTYPE html PUBLIC “-//OMA//DTD XHTML Mobile 1.2//EN” “http://www.openmobilealliance.org/tech/DTD/xhtml-mobile12.dtd”&gt;<br />
&lt;html xmlns=”http://www.w3.org/1999/xhtml”&gt;<br />
&lt;head&gt;<br />
&lt;meta http-equiv=”Content-Type” content=”application/xhtml+xml; charset=utf-8&#8243; /&gt;<br />
&lt;title&gt;公交搜索&lt;/title&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;</p>
<p>&lt;/body&gt;<br />
&lt;/html&gt;<br />
xhtml basic使用：</p>
<p>&lt;?xml version=”1.0&#8243; encoding=”UTF-8&#8243;?&gt;<br />
&lt;!DOCTYPE html PUBLIC “-//W3C//DTD XHTML Basic 1.1//EN” “http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd”&gt;<br />
&lt;html xmlns=”http://www.w3.org/1999/xhtml”&gt;<br />
&lt;head&gt;<br />
&lt;meta http-equiv=”Content-Type” content=”application/xhtml+xml; charset=utf-8&#8243; /&gt;<br />
&lt;title&gt;公交搜索&lt;/title&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;</p>
<p>&lt;/body&gt;<br />
&lt;/html&gt;</p>
<p><strong>2.2 去掉不必要的空格和换行</strong></p>
<p>不必要的空格和换行会增大文件大小，去掉空格及换行对浏览器解析来说没有不好的影响，因此推荐在编写完成上传服务器时去掉不必要的内容。</p>
<p><strong>2.3 尽量避免使用Cookie</strong></p>
<p>不是所有的浏览其都支持Cookie，即使支持也不是所有的用户都开启了Cookie支持。我们可以在URL中传递相关信息，当然，要注意不要超过最大长度。如果使用Cookie也要保证是哪些非必要的功能在使用它。</p>
<p><strong>2.4 不要使用&lt;table&gt;标签</strong></p>
<p>&lt;table&gt;在小屏幕上表现不佳，解析难度较大，大多数手机浏览器对&lt;table&gt;都支持不佳。</p>
<p><strong>2.5 图片或其它嵌入对象要添加必要属性</strong></p>
<p>在使用图片或flash等元素时，要添加alt属性，以便在元素不能加载时给用户相应的提示，添加width，height属性，防止发生不可预期的版式破坏，添加id属性以替代name属性。</p>
<p><strong>2.6避免使用绝对度量单位</strong></p>
<p>推荐使用em，ex或者百分比等相对单位替代px，这样便于浏览器对网页的自动缩放。</p>
<p><strong>2.7 把需要共享的样式和脚本通过外部链接引入</strong></p>
<p>推荐把样式和脚本写在文件里通过外部链接引入，这样可以减少解析难度和出错几率。</p>
<p>如果客户端支持缓存就可以不再向服务器发送请求，如果不支持，那么每次都要从服务器取这个文件，不相关的内容也在这个文件里，将额外增加不必要的流量；网页里的每个外部链接都会单独从服务器请求一次，如果内容过于分散，请求次数就会很多。</p>
<p>因此，尽量把可以共享的样式或脚本写在单一的文件里，减少不必要的请求和流量。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.masterboke.com/2009/01/19/%e6%89%8b%e6%9c%ba%e9%a1%b5%e9%9d%a2%e8%ae%be%e8%ae%a1%e5%8f%8a%e7%bc%96%e5%86%99%e7%9a%84%e5%bb%ba%e8%ae%ae%e8%a7%84%e5%88%99%ef%bc%88%e4%b8%80%ef%bc%89/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTML 4与XHTML 1.0区别</title>
		<link>http://www.masterboke.com/2009/01/19/html-4%e4%b8%8exhtml-10%e5%8c%ba%e5%88%ab/</link>
		<comments>http://www.masterboke.com/2009/01/19/html-4%e4%b8%8exhtml-10%e5%8c%ba%e5%88%ab/#comments</comments>
		<pubDate>Mon, 19 Jan 2009 06:13:36 +0000</pubDate>
		<dc:creator>boke</dc:creator>
				<category><![CDATA[markup language]]></category>
		<category><![CDATA[mobile web]]></category>
		<category><![CDATA[xhtml]]></category>

		<guid isPermaLink="false">http://www.masterboke.cn/?p=99</guid>
		<description><![CDATA[<a href="http://www.masterboke.com/2009/01/19/html-4%e4%b8%8exhtml-10%e5%8c%ba%e5%88%ab/" title="HTML 4与XHTML 1.0区别"></a>翻译w3c的http://www.w3.org/TR/xhtml1/ 第四部分，具体的不同还要参考DOM（不是很喜欢DOM的个别地方，用JS操作一个元素时，原本简单的东西往往得很多句才能搞定，再次抱怨一下，呵呵）和XML。 编写手机页面时所用的xhtml mp和xhtml basic 依照xhtml标准，虽然浏览器一般都较宽容，但不推荐旧的写法。 XHTML文档必须具有良好完整的排版(well-formed) 编排良好性(Well-formedness)是XML引入的一个新概念.从本质上说,元素必须有结束标签,或者必须以特殊方式书写,而且元素必须嵌套. 尽管SGML规定重叠(overlapping)是非法的,但现有的浏览器普遍允许重叠. 正确:嵌套元素(nested elements) &#60;p&#62;梦之都 &#60;em&#62;XHTML教程&#60;/em&#62;.&#60;/p&#62; 不正确:层叠元素(overlapping elements) &#60;p&#62;梦之都 &#60;em&#62;XHTML教程&#60;/p&#62;.&#60;/em&#62; 元素和属性名必须小写 对于所有HTML元素和属性名, XHTML文档必须使用小写. 因为XML是大小写敏感的.如 &#60;li&#62; 和 &#60;LI&#62; 是不同的标签. 对非空元素,必须使用结束标签 在基于SGML的HTML4中的一些隐含结束意义的元素允许忽略结束标签.XML不允许忽略结束标签.除了在DTD中被声明为空的元素,所有元素必须有结束标签. 正确:结束的元素(terminated elements) &#60;p&#62;梦之都的XHTML教程.&#60;/p&#62;&#60;p&#62;梦之都的CSS教程.&#60;/p&#62; 不正确:未结束的元素(unterminated elements) &#60;p&#62;梦之都的XHTML教程.&#60;p&#62;梦之都的CSS教程. 属性值必须在引号中 所有的属性值必须在引号中,即使是以数字形式的属性值 正确:在引号中的属性值(quoted attribute values) &#60;table rows="3"&#62; &#8230;<p class="read-more"><a href="http://www.masterboke.com/2009/01/19/html-4%e4%b8%8exhtml-10%e5%8c%ba%e5%88%ab/">继续阅读 &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://www.masterboke.com/2009/01/19/html-4%e4%b8%8exhtml-10%e5%8c%ba%e5%88%ab/" title="HTML 4与XHTML 1.0区别"></a><p>翻译w3c的http://www.w3.org/TR/xhtml1/ 第四部分，具体的不同还要参考DOM（不是很喜欢DOM的个别地方，用JS操作一个元素时，原本简单的东西往往得很多句才能搞定，再次抱怨一下，呵呵）和XML。</p>
<p>编写手机页面时所用的xhtml mp和xhtml basic 依照xhtml标准，虽然浏览器一般都较宽容，但不推荐旧的写法。</p>
<p><strong>XHTML文档必须具有良好完整的排版(well-formed)</strong></p>
<p>编排良好性(Well-formedness)是XML引入的一个新概念.从本质上说,元素必须有结束标签,或者必须以特殊方式书写,而且元素必须嵌套.</p>
<p>尽管SGML规定重叠(overlapping)是非法的,但现有的浏览器普遍允许重叠.</p>
<p>正确:嵌套元素(nested elements)</p>
<pre class="html"><code class="tag">&lt;p&gt;</code>梦之都 <code class="tag">&lt;em&gt;</code>XHTML教程<code class="tag">&lt;/em&gt;</code>.<code class="tag">&lt;/p&gt;</code></pre>
<p>不正确:层叠元素(overlapping elements)</p>
<pre>&lt;p&gt;梦之都 &lt;em&gt;XHTML教程&lt;/p&gt;.&lt;/em&gt;</pre>
<p><strong>元素和属性名必须小写</strong></p>
<p>对于所有HTML元素和属性名, XHTML文档必须使用小写. 因为XML是大小写敏感的.如 <code>&lt;li&gt;</code> 和 <code>&lt;LI&gt;</code> 是不同的标签.</p>
<p><strong>对非空元素,必须使用结束标签</strong></p>
<p>在基于SGML的HTML4中的一些隐含结束意义的元素允许忽略结束标签.XML不允许忽略结束标签.除了在DTD中被声明为空的元素,所有元素必须有结束标签.</p>
<p>正确:结束的元素(terminated elements)</p>
<pre class="html"><code class="tag">&lt;p&gt;</code>梦之都的XHTML教程.<code class="tag">&lt;/p&gt;</code><code class="tag">&lt;p&gt;</code>梦之都的CSS教程.<code class="tag">&lt;/p&gt;</code></pre>
<p>不正确:未结束的元素(unterminated elements)</p>
<pre>&lt;p&gt;梦之都的XHTML教程.&lt;p&gt;梦之都的CSS教程.</pre>
<p><strong>属性值必须在引号中</strong></p>
<p>所有的属性值必须在引号中,即使是以数字形式的属性值</p>
<p>正确:在引号中的属性值(quoted attribute values)</p>
<pre class="html"><code class="tag">&lt;table</code> <code class="attr">rows</code><code class="tag">=</code><code class="attrvalue">"3"</code><code class="tag">&gt;</code></pre>
<p>不正确:不在引号中的属性值(unquoted attribute values)</p>
<pre>&lt;table rows=3&gt;</pre>
<p><strong>属性最小化</strong></p>
<p>XML不支持属性最小化.属性-属性值必须完整成对的写出.像disabled,checked这样的属性名不能在不指定属性值的情况下出现.</p>
<p>正确:非最小化属性(unminimized attributes)</p>
<pre class="html"><code class="tag">&lt;input</code> <code class="attr">checked</code><code class="tag">=</code><code class="attrvalue">"checked"</code><code class="tag">&gt;</code></pre>
<p>不正确:最小化属性(minimized attributes)</p>
<pre>&lt;input checked&gt;</pre>
<p><strong>空元素</strong></p>
<p>空元素必须有结束标签,或者起始标签必须以<strong>/&gt;</strong>结束.例如,<strong>&lt;br/&gt;</strong>或<strong>&lt;hr&gt;&lt;/hr&gt;</strong>.参看HTML兼容性指导HTML Compatibility Guidelines中的信息,以保证向后兼容HTML 4用户代理程序.</p>
<p>正确:结束的空元素(terminated empty elements)</p>
<pre class="html"><code class="tag">&lt;br/&gt;</code><code class="tag">&lt;hr/&gt;</code></pre>
<p>错误:未结束的空标签(unterminated empty elements)</p>
<pre>&lt;br&gt;&lt;hr&gt;</pre>
<p><strong>属性值中的空白字符处理</strong></p>
<ul>
<li>删去引导和后序空白符</li>
<li>将一个或多个空白符(包括换行)转换成单个字符间空间</li>
</ul>
<p><strong>Script and Style 元素</strong></p>
<p>XHTML中,<code>script</code>和<code>style</code>元素被声明为#PCDATA内容形式,因此,&lt;和&amp;被看作是标识的开始,&amp;lt和&amp;amp等HTML实体将被XML处理器看作为实体引用而分别被认为是&lt;和&amp;.将<code>script</code>和<code>style</code>元素的内容隐蔽在CDATA标记中避免了这些实体的扩张.</p>
<pre class="html"><code class="tag">&lt;script&gt;</code>
&lt;![CDATA[
... unescaped script content ...
]]&gt;
<code class="tag">&lt;/script&gt;</code></pre>
<p>CDATA部分被XML处理器识别,表现为文档对象模型中的一个结点.替代的方式是使用外部script和style文档.</p>
<p><strong>SGML排斥</strong></p>
<p>SGML给作者的DTD可以指定在一个元素内部禁止出现的元素.这样的禁止在XML中是不可能的.</p>
<p>例如,严格的HTML 4 DTD”禁止”任何深度的&#8217;a'元素对另一&#8217;a'元素的嵌套.在XML中无法写出这些的”禁止”.虽然这些禁止不能被定义在DTD中,但是一些元素不应该被嵌套.对不能被嵌套的元素Element Prohibitions的总结.</p>
<p><strong>具有&#8217;id&#8217;和&#8217;name&#8217;属性的元素</strong></p>
<p>HTML4定义了<code>name</code>属性的元素有a,applet,form,frame,iframe,img and map.HTML4还引入了id属性.这两个属性都是被设计用为片段标识符.</p>
<p>在 XML中,片段标识符是ID,每个元素只能有一个ID类型的属性.因此,在XHTML1.0中,id属性被定义为ID类型.为保证XHTML1.0文档是 结构良好(well-structured)的XML文档,在定义一个片段标识符时,XHTML文档必须使用id属性,即使是对那些以前用name属性的 元素.参看 HTML Compatibility Guidelines,确保XHTML文档以text/html媒体类型使用时,这些”锚(anchors)”能向后兼容.</p>
<p>注意,在XHTML 1.0中,<code>name</code>属性是不赞成使用的,在以后的XHTML版本中将被删除。</p>
<p><strong>有预定义值的属性</strong></p>
<p>在HTML 4和XHTML都有一些属性，它们有预先确定且有限的值（例如， type属性的input元素） 。在SGML和XML中 ，这些被称为枚举属性。在HTML 4中 ，这些值是不区分大小写的，所以TEXT和text是一样的。在XML中，这些值是区分大小写的，而在XHTML 1所有这些值都应该是小写的。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.masterboke.com/2009/01/19/html-4%e4%b8%8exhtml-10%e5%8c%ba%e5%88%ab/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mobile ok checker</title>
		<link>http://www.masterboke.com/2009/01/18/mobile-ok-checker/</link>
		<comments>http://www.masterboke.com/2009/01/18/mobile-ok-checker/#comments</comments>
		<pubDate>Sun, 18 Jan 2009 08:21:49 +0000</pubDate>
		<dc:creator>boke</dc:creator>
				<category><![CDATA[markup language]]></category>
		<category><![CDATA[mobile web]]></category>
		<category><![CDATA[xhtml basic]]></category>
		<category><![CDATA[xhtml mp]]></category>

		<guid isPermaLink="false">http://www.masterboke.cn/?p=80</guid>
		<description><![CDATA[<a href="http://www.masterboke.com/2009/01/18/mobile-ok-checker/" title="mobile ok checker"></a>http://validator.w3.org/mobile/ 检查所写的mobile web page 是否符合标准。其实我觉得不用完全符合，呵呵。]]></description>
			<content:encoded><![CDATA[<a href="http://www.masterboke.com/2009/01/18/mobile-ok-checker/" title="mobile ok checker"></a><p><a href="http://validator.w3.org/mobile/">http://validator.w3.org/mobile/</a> 检查所写的mobile web page 是否符合标准。其实我觉得不用完全符合，呵呵。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.masterboke.com/2009/01/18/mobile-ok-checker/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>手机web开发资料</title>
		<link>http://www.masterboke.com/2009/01/18/%e6%89%8b%e6%9c%baweb%e5%bc%80%e5%8f%91%e8%b5%84%e6%96%99/</link>
		<comments>http://www.masterboke.com/2009/01/18/%e6%89%8b%e6%9c%baweb%e5%bc%80%e5%8f%91%e8%b5%84%e6%96%99/#comments</comments>
		<pubDate>Sun, 18 Jan 2009 07:44:59 +0000</pubDate>
		<dc:creator>boke</dc:creator>
				<category><![CDATA[markup language]]></category>
		<category><![CDATA[mobile web]]></category>
		<category><![CDATA[xhtml basic]]></category>
		<category><![CDATA[xhtml mp]]></category>

		<guid isPermaLink="false">http://www.masterboke.cn/?p=74</guid>
		<description><![CDATA[<a href="http://www.masterboke.com/2009/01/18/%e6%89%8b%e6%9c%baweb%e5%bc%80%e5%8f%91%e8%b5%84%e6%96%99/" title="手机web开发资料"></a>3G牌照发了，近期要开始仔细研究手机端的web开发了，在网上找了找资料，中文的真不是一般的少，简直就是没有，唉，还是看E文的吧。 把找到的网站整理一下，以便查找。 1. http://www.openmobilealliance.org/ OMA，WapForum与前OMA合并后的组织，WML及XHTML MP的制订者。不过我在者没找到啥东西，http://www.openmobilealliance.org/Application/Search/?search=xhtmlmp 这个链接是关于xhtml mp的pdf文档。 2. http://www.w3c.org W3C，XHTML Basic 制定者，http://www.google.com/custom?q=XHTML+Basic+1.1&#38;sitesearch=www.w3.org&#38;domains=www.w3.org 这个链接可以找到w3c上关于xhtml basic的内容。http://www.w3.org/TR/mobileOK-basic10-tests/ ，http://www.w3.org/TR/mobile-bp/ .当然，还有更多内容，http://www.w3.org/TR/ ，http://www.w3.org/Mobile/ 3. http://www.developershome.com/ Developers&#8217; Home ，网站上有些关于手机web开发的教程和文章，http://www.developershome.com/wap/xhtmlmp/ 这个链接是关于xhtml mp的部分。 4. http://dev.opera.com/articles/mobile/ Opera，上面有些Opera提供的关于mobile的内容，http://dev.opera.com/articles/view/mobile-markup-xhtml-basic-1-1/ 这是一篇讲XHTML Basic 1.1的。 5. http://en.wikipedia.org/wiki/XHTML_Mobile_Profile ，http://en.wikipedia.org/wiki/XHTML ，维基百科上关于xhtml mp，xhtml，xhtml basic的部分。 6. http://www.passani.it/gap/ Global &#8230;<p class="read-more"><a href="http://www.masterboke.com/2009/01/18/%e6%89%8b%e6%9c%baweb%e5%bc%80%e5%8f%91%e8%b5%84%e6%96%99/">继续阅读 &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://www.masterboke.com/2009/01/18/%e6%89%8b%e6%9c%baweb%e5%bc%80%e5%8f%91%e8%b5%84%e6%96%99/" title="手机web开发资料"></a><p>3G牌照发了，近期要开始仔细研究手机端的web开发了，在网上找了找资料，中文的真不是一般的少，简直就是没有，唉，还是看E文的吧。</p>
<p>把找到的网站整理一下，以便查找。</p>
<p>1. <a href="http://www.openmobilealliance.org/" target="_blank">http://www.openmobilealliance.org/</a> OMA，WapForum与前OMA合并后的组织，WML及XHTML MP的制订者。不过我在者没找到啥东西，<a href="http://www.openmobilealliance.org/Application/Search/?search=xhtmlmp" target="_blank">http://www.openmobilealliance.org/Application/Search/?search=xhtmlmp</a> 这个链接是关于xhtml mp的pdf文档。</p>
<p>2. <a href="http://www.w3c.org" target="_blank">http://www.w3c.org</a> W3C，XHTML Basic 制定者，<a href="http://www.google.com/custom?q=XHTML+Basic+1.1&amp;sitesearch=www.w3.org&amp;domains=www.w3.org" target="_blank">http://www.google.com/custom?q=XHTML+Basic+1.1&amp;sitesearch=www.w3.org&amp;domains=www.w3.org</a> 这个链接可以找到w3c上关于xhtml basic的内容。<a href="http://www.w3.org/TR/mobileOK-basic10-tests/" target="_blank">http://www.w3.org/TR/mobileOK-basic10-tests/</a> ，<a href="http://www.w3.org/TR/mobile-bp/" target="_blank">http://www.w3.org/TR/mobile-bp/</a> .当然，还有更多内容，<a href="http://www.w3.org/TR/" target="_blank">http://www.w3.org/TR/</a> ，<a href="http://www.w3.org/Mobile/" target="_blank">http://www.w3.org/Mobile/</a></p>
<p>3. <a href="http://www.developershome.com/" target="_blank">http://www.developershome.com/</a> Developers&#8217; Home ，网站上有些关于手机web开发的教程和文章，<a href="http://www.developershome.com/wap/xhtmlmp/" target="_blank">http://www.developershome.com/wap/xhtmlmp/</a> 这个链接是关于xhtml mp的部分。</p>
<p>4. <a href="http://dev.opera.com/articles/mobile/" target="_blank">http://dev.opera.com/articles/mobile/</a> Opera，上面有些Opera提供的关于mobile的内容，<a href="http://dev.opera.com/articles/view/mobile-markup-xhtml-basic-1-1/" target="_blank">http://dev.opera.com/articles/view/mobile-markup-xhtml-basic-1-1/</a> 这是一篇讲XHTML Basic 1.1的。</p>
<p>5. <a href="http://en.wikipedia.org/wiki/XHTML_Mobile_Profile">http://en.wikipedia.org/wiki/XHTML_Mobile_Profile</a> ，<a href="http://en.wikipedia.org/wiki/XHTML">http://en.wikipedia.org/wiki/XHTML</a> ，维基百科上关于xhtml mp，xhtml，xhtml basic的部分。</p>
<p>6. <a href="http://www.passani.it/gap/">http://www.passani.it/gap/</a> Global Authoring Practices for the Mobile Web</p>
<p>7. <a href="http://developer.openwave.com/documentation/xhtml_mp_css_reference/index.html">http://developer.openwave.com/documentation/xhtml_mp_css_reference/index.html</a> openwave上关于xhtmlmp的文档。</p>
<p>8. <a href="http://mobilewebbook.com/">http://mobilewebbook.com/</a> Cameron Moll的一本书，有预览版，没找着下载的地方，先放在这，以后再找。<a href="http://cameronmoll.com/">http://cameronmoll.com/</a> ，他的网站。<br />
另一本书<a href="http://cid-92f709e12ee02f4d.skydrive.live.com/self.aspx/%E5%85%AC%E5%85%B1/Mobile.Web.Development.pdf?lc=2052">Mobile Web Development</a></p>
<p>9.  <a href="http://www.smashingmagazine.com/2009/01/13/mobile-web-design-trends-2009/">http://www.smashingmagazine.com/2009/01/13/mobile-web-design-trends-2009/</a> 闲人们组织了个大会，讨论了一下09年手机web的发展趋势。</p>
<p>10. <a href="http://mobiforge.com/">http://mobiforge.com/</a></p>
<p>先这些，找着新的再补。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.masterboke.com/2009/01/18/%e6%89%8b%e6%9c%baweb%e5%bc%80%e5%8f%91%e8%b5%84%e6%96%99/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

