<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[Azuresky]]></title> 
<link>http://www.azuresky.com.cn/index.php</link> 
<description><![CDATA[Web旅途的过程...]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[Azuresky]]></copyright>
<item>
<link>http://www.azuresky.com.cn/post/Other-TencentExmailInvitation.php</link>
<title><![CDATA[腾讯企业邮箱邀请名额30名]]></title> 
<author>Tim &lt;tim@azuresky.cn&gt;</author>
<category><![CDATA[其他]]></category>
<pubDate>Thu, 19 Aug 2010 06:41:17 +0000</pubDate> 
<guid>http://www.azuresky.com.cn/post/Other-TencentExmailInvitation.php</guid> 
<description>
<![CDATA[ 
	得到朋友的腾讯企业邮箱邀请<br/>手头上也有闲置域名，体验了下腾讯企业邮箱，感觉还不错<br/>网易也有免费企业邮也用过，不过网易免费企业发送的邮件有广告尾巴，如果你用本地客户端发送的邮件倒不会有。<br/>经过测试，腾讯企业邮箱没有邮件广告尾巴<br/>很多人都对腾讯的邮箱服务很满意，如果你也有闲置域名，想试用可以留下E-Mail，我看到即刻发送邀请<br/>共有30个名额<br/>Tags - <a href="http://www.azuresky.com.cn/go.php/tags/tencent/" rel="tag">tencent</a> , <a href="http://www.azuresky.com.cn/go.php/tags/mail/" rel="tag">mail</a>
]]>
</description>
</item><item>
<link>http://www.azuresky.com.cn/post/XhtmlCss-HTML5NewTags.php</link>
<title><![CDATA[HTML5的新标签]]></title> 
<author>Tim &lt;tim@azuresky.cn&gt;</author>
<category><![CDATA[Xhtml+Css]]></category>
<pubDate>Wed, 07 Jul 2010 11:53:55 +0000</pubDate> 
<guid>http://www.azuresky.com.cn/post/XhtmlCss-HTML5NewTags.php</guid> 
<description>
<![CDATA[ 
	关注Web发展的人们都几乎都知道html5的强大，都在讨论html5是否会取代并淘汰flash。<br/>本文并不对html5是否取代flash进行讨论，我们来看看html5除了有名的&lt;video&gt;标签外，还有什么新成员添加到html标签大家族。<br/><br/><strong>HTML5新增的标签分别有：</strong><br/><ul style="list-style:square outside;padding-left:14px;"><li><stront>图形媒体：</strong>canvas标签　audio标签　embed标签　video标签　source标签</li><li><stront>文档结构：</strong>header标签　nav标签　section标签　footer标签</li><li><stront>文档内容：</strong>article标签　aside标签　details标签　summary标签　hgroup标签　time标签　figure标签　figcaption标签</li><li><stront>表单元素：</strong>command标签　datalist标签</li><li><stront>其他文本：</strong>ruby标签　rp标签　rt标签　keygen标签　mark标签　meter标签　output标签　progress标签</li></ul><br/>............<br/><br/>Tags - <a href="http://www.azuresky.com.cn/go.php/tags/html/" rel="tag">html</a> , <a href="http://www.azuresky.com.cn/go.php/tags/html5/" rel="tag">html5</a>
]]>
</description>
</item><item>
<link>http://www.azuresky.com.cn/post/Other-TencentWeiboAndQiyiInvitationCode.php</link>
<title><![CDATA[腾讯微博邀请码，赠送QQ微博邀请名额]]></title> 
<author>Tim &lt;tim@azuresky.cn&gt;</author>
<category><![CDATA[其他]]></category>
<pubDate>Tue, 20 Apr 2010 02:38:35 +0000</pubDate> 
<guid>http://www.azuresky.com.cn/post/Other-TencentWeiboAndQiyiInvitationCode.php</guid> 
<description>
<![CDATA[ 
	早段得到朋友的腾讯微博邀请码<br/>玩了好些天，今天得到了官方提供的5个蒲公英种子（也就是五个邀请名额）<br/>得知很多朋友需要腾讯微博邀请码！特在这里提供<br/>数量有限，需要的留下邮箱，看诚意了！<br/><br/>2010-04-24：新增3个邀请名额。看大家想玩的诚意了！<br/>2010-04-28：赠送微博邀请码至腾讯结束微博内测，每天会有三个邀请名额，需要的请重新在下面留言。<br/>Tags - <a href="http://www.azuresky.com.cn/go.php/tags/%25E5%25BE%25AE%25E5%258D%259A/" rel="tag">微博</a> , <a href="http://www.azuresky.com.cn/go.php/tags/%25E9%2582%2580%25E8%25AF%25B7%25E7%25A0%2581/" rel="tag">邀请码</a>
]]>
</description>
</item><item>
<link>http://www.azuresky.com.cn/post/WebJourney-14BestCodingMatterJS.php</link>
<title><![CDATA[14条最佳JS代码编写技巧]]></title> 
<author>Tim &lt;tim@azuresky.cn&gt;</author>
<category><![CDATA[Web之旅]]></category>
<pubDate>Sat, 10 Apr 2010 10:30:01 +0000</pubDate> 
<guid>http://www.azuresky.com.cn/post/WebJourney-14BestCodingMatterJS.php</guid> 
<description>
<![CDATA[ 
	写任何编程代码，不同的开发者都会有不同的见解。但参考一下总是好的，下面是来自 <a href="http://www.javascripttoolbox.com/bestpractices/" target="_blank">Javascript Toolbox</a> 发布的 14条最佳JS代码编写技巧 ，Sofish翻译(1,2)。<br/><br/><strong>1. 总是使用 ‘var’</strong><br/><br/>在JavaScript中，变量不是全局范围的就是函数范围的，使用”var”关键词将是保持变量简洁明了的关键。当声明一个或者是全局或者是函数级（function-level）的变量，需总是前置”var”关键词，下面的例子将强调不这样做潜在的问题。<br/><br/>不使用 Var 造成的问题<br/><div class="code"><br/>var i=0; // This is good – creates a global variable<br/>function test() &#123;<br/>for (i=0; i&lt;10; i++) &#123;<br/>alert(“Hello World!”);<br/>&#125;<br/>&#125;<br/>test();<br/>alert(i); // The global variable i is now 10!<br/></div><br/>因为变量函数中变量 i 并没有使用 var 使其成为函数级的变量，在这个例子中它引用了全局变量。总是使用 var 来声明全局变量是一个很多的做法，但至关重要的一点是使用 var 定义一个函数范围的变量。下面这两个方法在功能上是相同的：<br/>正确的函数<br/><div class="code"><br/>function test() &#123;<br/>var i=0;<br/>for (i=0; i&lt;10; i++) &#123;<br/>alert(“Hello World!”);<br/>&#125;<br/>&#125;<br/></div><br/>正确的函数<br/><div class="code"><br/>function test() &#123;<br/>for (var i=0; i&lt;10; i++) &#123;<br/>alert(“Hello World!”);<br/>&#125;<br/>&#125;<br/></div><br/><br/><strong>2. 特性检测而非浏览器检测</strong><br/><br/>一些代码是写来发现浏览器版本并基于用户正使用的客户端的对其执行不同行为。这个，总的来说，是一个非常糟的实践。更好的方法是使用特性检测，在使 用一个老浏览器可能不支持的高级的特性之前，首先检测（浏览器的）是否有这个功能或特性，然后使用它。这单独检测浏览器版本来得更好，即使你知道它的性 能。你可以在 http://www.jibbering.com/faq/faq_notes/not_browser_detect.html 找到一个深入讨论这个问题的文章。<br/><br/>例子：<br/><div class="code"><br/>if (document.getElementById) &#123;<br/>var element = document.getElementById(‘MyId’);<br/>&#125;<br/>else &#123;<br/>alert(‘Your browser lacks the capabilities required to run this script!’);<br/>&#125;<br/></div><br/><strong>3. 使用方括号记法</strong><br/><br/>当访问由执行时决定或者包括要不能用”.”号访问的对象属性，使用方括号记法。如果你不是一个经验丰富的Javascript程序员，总是使用方括号是一个不错的做法<br/><br/>对象的属性由两种固定的方法来访问：”.”记法和”[ ]“方括号记法：<br/><br/>“.”号记法<br/><div class="code">MyObject.property“&#91; &#93;“</div><br/>方括号记法<br/><div class="code">MyObject&#91;&quot;property&quot;&#93;</div><br/>使用”.”号，属性名是硬代码，不能在执行时改变。使用”[ ]“方括号，属性名是一个通过计算属性名而来的字符串。字符串要以是硬代码，也可能是变量，甚至可以是一个调回一个字母串值的函数。 如果一个属性名在执行产生，方括号是必须，如果你有 “value1″, “value2″, 和 “value3″这样的属性，并且想利用变量 i=2来访问。<br/><br/>这个可以运行：<br/><div class="code">MyObject&#91;&quot;value&quot;+i&#93;</div><br/>这个不可以：<br/><div class="code">MyObject.value+i</div><br/>并且在某些服务器端环境（PHP、Struts等）下，Form 表单被附加了 [ ] 号来表示 Form 表单在服务器端必须被当作数组来对待。如此，用”.”号来引用一个包含 [ ] 号的字段将不会执行，因为 [ ] 是引用一个 Javascript 数组的语法。所以，[ ] 号记法是必须的：<br/>这个可以运行：<br/><div class="code">formref.elements&#91;&quot;name&#91;&#93;“&#93;</div><br/>这个不可以：<br/><div class="code">formref.elements.name&#91;&#93;</div><br/>推荐使用”[ ]“方括号记法是说当其需要时（明显地）总是使用它。当不是严格需要使用它的时候，它是一个私人的偏好和习惯。一个好的经验原则是，使用”.”号记法访问 标准的对象属性，使用”[ ]“方括号记法访问由页面定义的对象属性。这样，document["getElementById"]() 是一个完美可行的”[ ]“方括号记法用法，但 document.getElementById() 在语法上是首选，因为 getElementById 是一个 DOM 规范中定义的一个标准文档对象属性。混合使用这两个记法使哪个是标准对象属性，哪个属性名是由上下文所定义的，在代码中显得清晰明了：<br/><div class="code">document.forms&#91;&quot;myformname&quot;&#93;.elements&#91;&quot;myinput&quot;&#93;.value</div><br/>这里，forms 是 document 的一个标准属性，而表单名 myformname 则是由页面所定义的。同时，elements 和 value 属性都是由规范所定义的标准属性。而 myinput 则是由页面所定义的。这页是句法让人非常容易理解（代码的内容），是一个推荐遵循的习惯用法，但不是严格原则。<br/><br/><strong>4. 避免 ‘eval’</strong><br/><br/>在Javascript中，eval()功能是一个在执行期中执行任意代码的方法。在几乎所有的情况下，eval 都不应该被使用。如果它出现在你的页面中，则表明你所做的有更好的方法。举一个例子，eval 通常被不知道要使用方括号记法的程序员所使用。<br/><br/>原则上，”Eval is evil（Eval是魔鬼）”。别使用它，除非你是一个经验丰富的开发者并且知道你的情况是个例外。<br/><br/><strong>5. 正确地引用表单和表单元素</strong><br/><br/>所有的 HTML 表单都应该有一个 name 属性。对于 XHTML 文档来说，name 属性是不被要求的，但 Form 标签中应有相应有 id 属性，并必须用 document.getElementById() 来引用。使用像 document.forms[0] 这样的索引方法来引用表单，在几乎所有情况下，是一个糟糕的做法。有些浏览器把文档中使用 form 来命名的元素当作一个可用的 form 属性。这样并不可靠，不应该使用。<br/><br/>下面这个例子用使用方括号和正确的对象引用方法来展示如何防止错误地引用一个表单的input：<br/><br/>正确引用表单 Input：<br/><div class="code">document.forms&#91;&quot;formname&quot;&#93;.elements&#91;&quot;inputname&quot;&#93;</div><br/>糟糕的做法:<br/><div class="code">document.formname.inputname</div><br/>如果你要引用一个函数里的两个表单元素，较好的做法是先引用这个form对象，并将其储存在变量中。这样避免了重复查询以解决表单的引用：<br/><div class="code"><br/>var formElements = document.forms&#91;&quot;mainForm&quot;&#93;.elements;<br/>formElements&#91;&quot;input1&quot;&#93;.value=”a”;<br/>formElements&#91;&quot;input2&quot;&#93;.value=”b”;<br/></div><br/>当你使用 onChange 或者其他类似的事件处理方法，一个好的做法是总是通过一个引来把 input 元素本身引用到函数中来。所有 input 元素都带有一个对包含其在内的Form表单有一个引用：<br/><div class="code"><br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;input type=”text” name=”address” onChange=”validate(this)”&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;function validate(input_obj) &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;// 引用包含这个元素的form<br/>&nbsp;&nbsp;&nbsp;&nbsp;var theform = input_obj.form;<br/>&nbsp;&nbsp;&nbsp;&nbsp;// 现在你可以不需要使用硬代码来引用表单自身<br/>&nbsp;&nbsp;&nbsp;&nbsp;if (theform.elements&#91;&quot;city&quot;&#93;.value==”&quot;) &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;alert(“Error”);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/></div><br/>通过对表单元素的引用来访问表单的属性，你可以写一个不包含硬代码的函数来引用这个页面中任何一个有特定名的表单。这是一个非常好的做法，因为函数变得可重用。<br/><br/><strong>6. 避免 ‘with’</strong><br/><br/>Javascript 中的 with 声明在一个作用域的前端插入一个对象，所以任何属性/变量的引用将会倚着对象被首先解决。这通常被用作一个避免重复引用的快捷方法：<br/><br/>使用 with 的例子：<br/><div class="code"><br/>with (document.forms&#91;&quot;mainForm&quot;&#93;.elements) &#123;<br/>input1.value = “junk”;<br/>input2.value = “junk”;<br/>&#125;<br/></div><br/>但问题在于程序员并没有方法来验证 input1 或 input2 实际上已经被当作 Form 元素数组的属性来解决。它首先以为这些名来检测属性，如果找不到，它将会继续（向下）检测这个作用域。最后，它在全局对象中尝试把input1 和 input2 作为一个全局对象来对待，而这以一个错误作为结尾。<br/><br/>变通的方法是：创建一个引用来减少引用的对象，并使用它来解决这些引用。<br/><br/>使用一个引用：<br/><div class="code"><br/>var elements = document.forms&#91;&quot;mainForm&quot;&#93;.elements;<br/>elements.input1.value = “junk”;<br/>elements.input2.value = “junk”;<br/></div><br/><strong>7. 在锚点中使用 “onclick” 替代 “javascript: Pseudo-Protocol”</strong><br/><br/>如果你想在 &lt;a&gt; 标签中触发Javascript 代码，选择 onclick 而非 JavaScript: pseudo-protocol；使用 onclick 来运行的 Javascript 代码必须返回 ture 或者false（or an expression than evalues to true or false [这句要怎么翻译呢? 我是这样理解的：一个优先性高于true 或 false 的表达式]）来返回标签本身：如果返回 true，则锚点的 href 将被当作一个一般的链接；如果返回 false，则 href 会被忽略。这就是为什么”return false;” 经常被包含在 onclick 所处理代码的尾部。<br/><br/>正确句法：<br/><div class="code">&lt;a href=”javascript_required.html” onclick=”doSomething(); return false;”&gt;go&lt;/a&gt;</div><br/>在这个实例中，”doSomething()” 函数(定义于页面的某个角落)将在被点击时调用。href 将永远不会被启用了Javascript 的浏览器访问。在你可以提醒Javascript 是必须的、而用户未启用之的浏览器中，文档 javascript_required.html 才会被加载。通常，当你确保用户将会开启 Javascript 支持，为尽量简化，链接将只包含 href=”#”。 而这个做法是不被鼓励的。通常有一个不错的做法是：可以提供没用启用 javascript 一个返回本地的页面。<br/><br/>有时，众多想要分情况来访问一个链接。例如，当一个用户要离开你的一个表单页面，而想先验证来确保没有东西被改变。在这个情况下，你的 onclick 将会访问一个返回询问链接是否应该被遵循的函数：<br/><br/>有条件的链接访问:<br/><div class="code"><br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;a href=”/” onClick=”return validate();”&gt;Home&lt;/a&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;function validate() &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;return prompt(“Are you sure you want to exit this page?”);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/></div><br/>在这个实例中，validate() 函数必须只返回 ture 或 false。ture 的时候用户将被允许问题 home 页面，或 false 的时候链接不被访问。这个例子提示确认（其行为），以访问 ture 或 false，这完全由用户点击”确实”或者”取消”决定。<br/><br/>下面是一些”不应该”的例子。如果你在自己的页面中看到下面这样的代码，这是不正确的，需要被修改：<br/><br/>什么是不应该做的：<br/><div class="code"><br/>&lt;a href=”javascript:doSomething()”&gt;link&lt;/a&gt;<br/>&lt;a href=”#” onClick=”doSomething()”&gt;link&lt;/a&gt;<br/>&lt;a href=”#” onClick=”javascript:doSomething();”&gt;link&lt;/a&gt;<br/>&lt;a href=”#” onClick=”javascript:doSomething(); return false;”&gt;link&lt;/a&gt;<br/></div><br/><strong>8. 使用一元 ‘+’ 号运算符使类型转向Number</strong><br/><br/>在Javascript中，”+”号运算符同时充当数学加号和连接符。这会在form表单的域值相加时出现问题，例如，因为Javascript是 一个弱类型语言，form 域的值将会被当作数组来处理，而你把它们”+”一起的时候，”+”将被当成连接符，而非数学加号。<br/><br/>有问题的例子:<br/><div class="code"><br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;form name=”myform” action=”&#91;url&#93;“&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;input type=”text” name=”val1″ value=”1″&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;input type=”text” name=”val2″ value=”2″&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/form&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;function total() &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;var theform = document.forms&#91;&quot;myform&quot;&#93;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;var total = theform.elements&#91;&quot;val1&quot;&#93;.value + theform.elements&#91;&quot;val2&quot;&#93;.value;<br/>&nbsp;&nbsp;&nbsp;&nbsp;alert(total); // 这个将会弹出 “12″, 但你想要的是 3!<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/></div><br/>解决这个问题，Javascript 需要一个提示来让它把这些值当做数字来处理。你可以使用”+”号来把数组转换成数字。给变量或者表达式前置一个”+”号将会强制其当作一个数字来处理，而这也将使得数学”+”得以成功应用。<br/><br/>修改好的代码：<br/><div class="code"><br/>function total() &#123;<br/>var theform = document.forms&#91;&quot;myform&quot;&#93;;<br/>var total = (+theform.elements&#91;&quot;val1&quot;&#93;.value) + (+theform.elements&#91;&quot;val2&quot;&#93;.value);<br/>alert(total); // This will alert 3<br/>&#125;<br/></div><br/><strong>9. 避免 document.all</strong><br/><br/>document.all 是由Microsoft 的 IE 所引进的，并不是一个标准的 Javascript DOM 特性。尽管大多数新的浏览器支持它以支持依赖于它的糟糕代码，（而）还有很多浏览器是不支持的。<br/><br/>并没有理由其他方法都不适用，而一个老的IE浏览器（<5.0）需要支持，而在Javascript中使用 document.all 作为一个折衷方法。 你并不需要使用 document.all 来检测其是不是IE浏览器，因为其他浏览器现在一般都支持。<br/><br/>只把 document.all 当做最后的选择：<br/><div class="code"><br/>if (document.getElementById) &#123;<br/>var obj = document.getElementById(“myId”);<br/>&#125;<br/>else if (document.all) &#123;<br/>var obj = document.all(“myId”);<br/>&#125;<br/></div><br/>一些使用 document.all 的原则：<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;* 同尝试其他方法<br/>&nbsp;&nbsp;&nbsp;&nbsp;* 当其作为最后的选择<br/>&nbsp;&nbsp;&nbsp;&nbsp;* 当需要支持 5.0 版本以下的 IE 浏览器<br/>&nbsp;&nbsp;&nbsp;&nbsp;* 总是使用 “if (document.all) &#123; &#125;” 来查看是否支持.<br/><br/><strong>10. 不要在脚本代码块中使用HTML注释</strong><br/><br/>在 Javascript 的旧日子（1995）里，诸如 Netscape 1.0 的一些浏览器并不支持或认识 &lt;script&gt;标签。所以，当 Javascript 第一次被发布，需要有一个技术来让实些代码不被当做文本显示于旧版浏览器上。有一个”hack” 是在代码中使用 HTML 注释来隐藏这些代码。<br/><br/>使 HTML 注释并不好：<br/><div class="code"><br/>&lt;script language=”javascript”&gt;<br/>&lt;!–<br/>// code here<br/>//–&gt;<br/>&lt;/script&gt;<br/></div><br/>在今天，没有任何一个常用的浏览器会忽略掉 &lt;script&gt; 标签。因此，再没必要隐藏 Javascript 源代码。事实上，它还可以因为下面的理由，被认为是无益的：<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;* 在 XHTML 文档中，源代码将向所有浏览器隐藏并被渲染成无用的（内容）；<br/>&nbsp;&nbsp;&nbsp;&nbsp;* 在 HTML 注释并不允许 ，这个会让任何递减操作将失效。<br/><br/><strong>11. 避免乱用全局命名空间</strong><br/><br/>一般很少需要全部变量和函数。全局使用将可能导致 Javascript 源文件文档冲突，和代码中止。因此，一个好的做法是在一个全局命名空间内采用函数性的封装。有多个方法可以完成这个任务，有此相对比较复杂。最简单的方法 是创建一个全局对象，并把属性和方法指派给这个对象：<br/><br/>创建一个命名空间：<br/><div class="code"><br/>&nbsp;&nbsp;&nbsp;&nbsp;var MyLib = &#123;&#125;; // global Object cointainer<br/>&nbsp;&nbsp;&nbsp;&nbsp;MyLib.value = 1;<br/>&nbsp;&nbsp;&nbsp;&nbsp;MyLib.increment = function() &#123; MyLib.value++; &#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;MyLib.show = function() &#123; alert(MyLib.value); &#125;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;MyLib.value=6;<br/>&nbsp;&nbsp;&nbsp;&nbsp;MyLib.increment();<br/>&nbsp;&nbsp;&nbsp;&nbsp;MyLib.show(); // alerts 7<br/></div><br/>命名空间也可以使用 Closures（闭包?） 来创建，并且 Private Member Variables （私有变量?） 也可以伪装于 Javascript中。<br/><br/><strong>12. 避免同步的 ‘Ajax’ 调用</strong><br/><br/>当使用”Ajax”请求时，你要么选择异步模式，要么使用同步模式。当浏览器行为可以继续执行，异步模式将请求放在后台执行，同步模式则会等待请求完成后才继续。<br/><br/>应该避免同步模式做出的请求。这些请求将会对用户禁用浏览器，直至请求返回。一旦服务器忙，并需要一段时间来完成请求，用户的浏览器（或者 OS）将不能做任何其他的事，直至请求超时。<br/><br/>如果你觉得自己的情况需要同步模式，最大的可能是你需要时间来重新想一下你的设计。很少（如果有的话）实际上需要同步模式的 Ajax 请求。<br/><br/><strong>13. 使用 JSON</strong><br/><br/>当需要将数据结构存储成纯文本，或者通过 Ajax 发送/取回数据结构，尽可能使用 JSON 代替 XML。JSON (JavaScript Object Notation) 是一个更简洁有效的数据存储格式，并且不依赖任何语言（and is a language-neutral）。<br/><br/><strong>14. 使用正确的 &lt;script&gt; 标签</strong><br/><br/>不造成在 &lt;script&gt; 中的使用LANGUAGE 属性。一个合适的方式是创建如下的 Javascript 代码块：<br/><div class="code"><br/>&lt;script type=”text/javascript”&gt;<br/>// code here<br/>&lt;/script&gt;<br/></div><br/>Tags - <a href="http://www.azuresky.com.cn/go.php/tags/javascript/" rel="tag">javascript</a>
]]>
</description>
</item><item>
<link>http://www.azuresky.com.cn/post/Abstract-GuideOpenSourceAndSimilarLicenses.php</link>
<title><![CDATA[开源界的 5 大开源许可协议]]></title> 
<author>Tim &lt;tim@azuresky.cn&gt;</author>
<category><![CDATA[网络摘要]]></category>
<pubDate>Thu, 01 Apr 2010 04:46:22 +0000</pubDate> 
<guid>http://www.azuresky.com.cn/post/Abstract-GuideOpenSourceAndSimilarLicenses.php</guid> 
<description>
<![CDATA[ 
	越来越多的开发者与设计者希望将自己的产品开源，以便其他人可以在他们的代码基础上做更多事，开源社区也因此充满生机。在我们所能想到的应用领域，都有开源软件存在（象 WordPress，Drupal 这些开源CMS）。然而很多人对开源许可并不了解，本文介绍开源领域常用的几种许可协议以及它们之间的区别。<br/><a href="http://www.flickr.com/photos/massimobarbieri/2162544547/"><img width="500" height="333" alt="Opensourceubuntu in A Short Guide To Open-Source And Similar&nbsp;&nbsp;Licenses" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/2010/03/opensourceubuntu.jpg" /></a><br/><h3 class="subtitle">什么是许可协议？</h3><br/>什么是许可，当你为你的产品签发许可，你是在出让自己的权利，不过，你仍然拥有版权和专利（如果申请了的话），许可的目的是，向使用你产品的人提供一定的权限。<br/><br/>不管产品是免费向公众分发，还是出售，制定一份许可协议非常有用，否则，对于前者，你相当于放弃了自己所有的权利，任何人都没有义务表明你的原始作者身份，对于后者，你将不得不花费比开发更多的精力用来逐个处理用户的授权问题。<br/><br/>而<a href="http://en.wikipedia.org/wiki/Open-source_license">开源许可协议</a><br/>使这些事情变得简单，开发者很容易向一个项目贡献自己的代码，它还可以保护你原始作者的身份，使你至少获得认可，开源许可协议还可以阻止其它人将某个产品据为己有。以下是开源界的 5 大许可协议。<br/><br/><h3 class="subtitle">GNU GPL</h3><br/><a href="http://www.opensource.org/licenses/gpl-2.0.php">GNU General&nbsp;&nbsp;Public&nbsp;&nbsp;Licence</a><br/> (GPL) 有可能是开源界最常用的许可模式。GPL 保证了所有开发者的权利，同时为使用者提供了足够的复制，分发，修改的权利：<br/><ul><li><strong>可自由复制</strong><br/> 你可以将软件复制到你的电脑，你客户的电脑，或者任何地方。复制份数没有任何限制。</li><li><strong>可自由分发</strong><br/> 在你的网站提供下载，拷贝到U盘送人，或者将源代码打印出来从窗户扔出去（环保起见，请别这样做）。</li><li><strong>可以用来盈利</strong><br/> 你可以在分发软件的时候收费，但你必须在收费前向你的客户提供该软件的 GNU GPL 许可协议，以便让他们知道，他们可以从别的渠道免费得到这份软件，以及你收费的理由。</li><li><strong>可自由修改</strong><br/> 如果你想添加或删除某个功能，没问题，如果你想在别的项目中使用部分代码，也没问题，唯一的要求是，使用了这段代码的项目也必须使用 GPL 协议。</li></ul><br/>需要注意的是，分发的时候，需要明确提供源代码和二进制文件，另外，用于某些程序的某些协议有一些问题和限制，你可以看一下 <a href="http://www.twitter.com/PierreJoye">@PierreJoye</a> 写的 <a href="http://www.softwarefreedom.org/resources/2008/compliance-guide.html">Practical&nbsp;&nbsp; Guide to GPL Compliance</a> 一文。使用 GPL 协议，你必须在源代码代码中包含相应信息，以及协议本身。<br/><br/><h4>GNU LGPL</h4><br/>GNU 还有另外一种协议，叫做 LGPL （<a href="http://www.opensource.org/licenses/lgpl-2.1.php">Lesser&nbsp;&nbsp;General&nbsp;&nbsp;Public Licence</a>），它对产品所保留的权利比 GPL 少，总的来说，LGPL 适合那些用于非 GPL 或非开源产品的开源类库或框架。因为 GPL 要求，使用了 GPL 代码的产品必须也使用 GPL 协议，开发者不允许将 GPL 代码用于商业产品。LGPL 绕过了这一限制。<br/><br/><h3 class="subtitle">BSD</h3><br/>BSD 在软件分发方面的限制比别的开源协议（如 GNU GPL）要少。该协议有多种版本，最主要的版本有两个，新 BSD 协议与简单 BSD 协议，这两种协议经过修正，都和 GPL 兼容，并为开源组织所认可。<br/><br/>新 BSD 协议（3条款协议）在软件分发方面，除需要包含一份版权提示和免责声明之外，没有任何限制。另外，该协议还禁止拿开发者的名义为衍生产品背书，但简单 BSD 协议删除了这一条款。<br/><br/><h3 class="subtitle">MIT</h3><br/><a href="http://www.opensource.org/licenses/mit-license.php">MIT 协议</a><br/>可能是几大开源协议中最宽松的一个，核心条款是：<br/><br/>该软件及其相关文档对所有人免费，可以任意处置，包括使用，复制，修改，合并，发表，分发，再授权，或者销售。唯一的限制是，软件中必须包含上述版权和许可提示。<br/>这意味着：<br/><ul><li>你可以自由使用，复制，修改，可以用于自己的项目。</li><li>可以免费分发或用来盈利。</li><li>唯一的限制是必须包含许可声明。</li></ul><br/>MIT 协议是所有开源许可中最宽松的一个，除了必须包含许可声明外，再无任何限制。<br/><br/><h3 class="subtitle">Apache</h3><br/>Apache 协议 2.0 和别的开源协议相比，除了为用户提供版权许可之外，还有专利许可，对于那些涉及专利内容的开发者而言，该协议最适合（<a href="http://www.howstuffworks.com/question492.htm">这里有一篇文章阐述这个问题</a><br/>）。<br/>Apache 协议还有以下需要说明的地方:<br/><ul><li><strong>永久权利</strong><br/> 一旦被授权，永久拥有。</li><li><strong>全球范围的权利</strong><br/> 在一个国家获得授权，适用于所有国家。假如你在美国，许可是从印度授权的，也没有问题。</li><li><strong>授权免费，且无版税</strong><br/> 前期，后期均无任何费用。</li><li><strong>授权无排他性</strong><br/> 任何人都可以获得授权</li><li><strong>授权不可撤消</strong><br/> 一旦获得授权，没有任何人可以取消。比如，你基于该产品代码开发了衍生产品，你不用担心会在某一天被禁止使用该代码。</li></ul><br/>分发代码方面包含一些要求，主要是，要在声明中对参与开发的人给予认可并包含一份许可协议原文。<br/><br/><h3 class="subtitle">Creative Commons</h3><br/>Creative Commons (CC) 并非严格意义上的开源许可，它主要用于设计。Creative Commons 有多种协议，每种都提供了相应授权模式，CC 协议主要包含 4 种基本形式：<br/><ul><li><strong>署名权</strong><br/> 必须为原始作者署名，然后才可以修改，分发，复制。</li><li><strong>保持一致</strong><br/> 作品同样可以在 CC 协议基础上修改，分发，复制。</li><li><strong>非商业</strong><br/> 作品可以被修改，分发，复制，但不能用于商业用途。但商业的定义有些模糊，比如，有的人认为非商业用途指的是不能销售，有的认为是甚至不能放在有广告的网站，也有人认为非商业的意思是非盈利。</li><li><strong>不能衍生新作品</strong><br/> 你可以复制，分发，但不能修改，也不能以此为基础创作自己的作品。</li></ul><br/>这些许可形式可以结合起来用，其中最严厉的组合是“署名，非商用，不能衍生新作品”，意味着，你可以分享作品，但不能改动或以此盈利，而且必须为原作者署名。在这种许可模式下，原始作者对作品还拥有完全的控制权，而最宽松的组合是“署名”，意味着，只要为原始作者署名了，就可以自由处置。<br/><br/><h3 class="subtitle">延伸资源</h3><br/><ul><li><a href="http://creativecommons.org/about/licenses">Creative Commons&nbsp;&nbsp;Licenses</a><br/> Creative Common 许可的官方条款与解释</li><li><a href="http://www.opensource.org/licenses/alphabetical">Open Source&nbsp;&nbsp;Initiative</a><br/> 包含各种开源协议资源</li><li><a href="http://developer.kde.org/documentation/licensing/licenses_summary.html">Open&nbsp;&nbsp;Source Licenses Comparison</a><br/> 对主流开源协议的对比</li><li><a href="http://openacs.org/about/licensing/open-source-licensing">Understanding&nbsp;&nbsp;Open-Source Licensing</a><br/> 开源协议详解</li><li><a href="http://blogs.zdnet.com/Burnette/?p=130">HOW TO: Pick an Open&nbsp;&nbsp;Source License</a><br/> 如何选择不同的开源协议</li></ul><br/><br/>本文国际来源：Smashing Magazine <a href="http://www.smashingmagazine.com/2010/03/24/a-short-guide-to-open-source-and-similar-licenses/">A Short Guide To Open-Source And Similar Licenses</a><br/><br/>中文编译来源：<a href="http://www.comsharp.com"><strong>锐商企业CMS</strong> 网站内容管理系统</a> 官方网站<br/>Tags - <a href="http://www.azuresky.com.cn/go.php/tags/gpl/" rel="tag">gpl</a> , <a href="http://www.azuresky.com.cn/go.php/tags/lgpl/" rel="tag">lgpl</a> , <a href="http://www.azuresky.com.cn/go.php/tags/mit/" rel="tag">mit</a> , <a href="http://www.azuresky.com.cn/go.php/tags/apache/" rel="tag">apache</a> , <a href="http://www.azuresky.com.cn/go.php/tags/creative-commons/" rel="tag">creative-commons</a>
]]>
</description>
</item><item>
<link>http://www.azuresky.com.cn/post/WebJourney-jQueryWriteOptimize.php</link>
<title><![CDATA[jQuery编写技巧之性能优化]]></title> 
<author>Tim &lt;tim@azuresky.cn&gt;</author>
<category><![CDATA[Web之旅]]></category>
<pubDate>Sat, 27 Mar 2010 03:14:57 +0000</pubDate> 
<guid>http://www.azuresky.com.cn/post/WebJourney-jQueryWriteOptimize.php</guid> 
<description>
<![CDATA[ 
	现在jquery应用的越来越多, 有些同学在享受爽快淋漓coding时就将性能问题忽略了,&nbsp;&nbsp;比如我.&nbsp;&nbsp;jquery虽在诸多的js类库中性能表现还算优秀, 但毕竟不是在用原生的javascript开发, 性能问题还是需要引起重视的. 在twitter上发现了<a href="http://www.artzstudio.com/2009/04/jquery-performance-rules/" target="_blank">&lt;jQuery Performance Rules&gt;</a>这篇文章, 简单的摘译了一下:<br/><br/>&nbsp;&nbsp; 1. 总是从ID选择器开始继承<br/>&nbsp;&nbsp; 2. 在class前使用tag<br/>&nbsp;&nbsp; 3. 将jquery对象缓存起来<br/>&nbsp;&nbsp; 4. 掌握强大的链式操作<br/>&nbsp;&nbsp; 5. 使用子查询<br/>&nbsp;&nbsp; 6. 对直接的DOM操作进行限制<br/>&nbsp;&nbsp; 7. 冒泡<br/>&nbsp;&nbsp; 8. 消除无效查询<br/>&nbsp;&nbsp; 9. 推迟到 $(window).load<br/>&nbsp;&nbsp;10. 压缩js<br/>&nbsp;&nbsp;11. 全面掌握jquery库 <br/><br/><strong>1. 总是从ID选择器开始继承</strong><br/><br/>在jquery中最快的选择器是ID选择器. 因为它直接来自于Javascript的getElementById()方法.<br/><div class="code"><br/>&lt;div id=“content”&gt;<br/>&lt;form method=“post” action=“/”&gt;<br/>&lt;h2&gt;Traffic Light&lt;/h2&gt;<br/>&lt;ul id=“traffic_light”&gt;<br/>&lt;li&gt;&lt;input type=“radio” class=“on” name=“light” value=“red” /&gt; Red&lt;/li&gt;<br/>&lt;li&gt;&lt;input type=“radio” class=“off” name=“light” value=“yellow” /&gt; Yellow&lt;/li&gt;<br/>&lt;li&gt;&lt;input type=“radio” class=“off” name=“light” value=“green” /&gt; Green&lt;/li&gt;<br/>&lt;/ul&gt;<br/>&lt;input class=“button” id=“traffic_button” type=“submit” value=“Go” /&gt;<br/>&lt;/form&gt;<br/>&lt;/div&gt;<br/></div><br/>像这样选择按钮是低效的:<br/><div class="code"><br/>var traffic_button = $(‘#content .button’);<br/></div><br/>用ID直接选择按钮效率更高:<br/><div class="code"><br/>var traffic_button = $(‘#traffic_button’);<br/></div><br/><strong>选择多个元素</strong><br/><br/>提到多元素选择其实是在说DOM遍历和循环, 这些都是比较慢的东西.为了提高性能, 最好从就近的ID开始继承.<br/><div class="code">var traffic_lights = $(‘#traffic_light input’);&nbsp;&nbsp;</div><br/><strong>2. 在class前使用tag<br/></strong><br/>第二快的选择器是tag选择器($(’head’)). 同理,因为它来自原生的getElementsByTagName() 方法.<br/><div class="code">&lt;div id=“content”&gt;<br/>&lt;form method=“post” action=“/”&gt;<br/>&lt;h2&gt;Traffic Light&lt;/h2&gt;<br/>&lt;ul id=“traffic_light”&gt;<br/>&lt;li&gt;&lt;input type=“radio” class=“on” name=“light” value=“red” /&gt; Red&lt;/li&gt;<br/>&lt;li&gt;&lt;input type=“radio” class=“off” name=“light” value=“yellow” /&gt; Yellow&lt;/li&gt;<br/>&lt;li&gt;&lt;input type=“radio” class=“off” name=“light” value=“green” /&gt; Green&lt;/li&gt;<br/>&lt;/ul&gt;<br/>&lt;input class=“button” id=“traffic_button” type=“submit” value=“Go” /&gt;<br/>&lt;/form&gt;<br/>&lt;/div&gt;</div><br/>总是用一个tag name来限制(修饰)class (并且不要忘记就近的ID):<br/><div class="code">var active_light = $(‘#traffic_light input.on’); </div><br/><em>注意: 在jquery中Class是最慢的选择器. IE浏览器下它会遍历所有DOM节点不管它用在那里.</em><br/><br/>不要用用tag name来修饰ID. 下面的例子将会遍历所有的div元素来查找id为’content’的哪一个节点:<br/><div class="code">var content = $(‘div#content’); </div><br/>用ID修饰ID也是画蛇添足:<br/><div class="code">var traffic_light = $(‘#content #traffic_light’);</div><br/><strong>3.将jquery对象缓存起来</strong><br/><br/>要养成将jquery对象缓存进变量的习惯.<br/><br/>永远不要这样做:<br/><div class="code">$(‘#traffic_light input.on).bind(’click‘, function()&#123;…&#125;);<br/>$(’#traffic_light input.on).css(‘border’, ‘3px dashed yellow’);<br/>$(‘#traffic_light input.on).css(’background-color‘, ‘orange‘);<br/>$(’#traffic_light input.on).fadeIn(’slow’); </div><br/>最好先将对象缓存进一个变量然后再操作:<br/><div class="code">var $active_light = $(‘#traffic_light input.on’);<br/>$active_light.bind(‘click’, function()&#123;…&#125;);<br/>$active_light.css(‘border’, ‘3px dashed yellow’);<br/>$active_light.css(‘background-color’, ‘orange’);<br/>$active_light.fadeIn(’slow’); </div><br/><em>为了记住我们本地变量是jquery的封装, 通常用一个$作为变量前缀. </em><br/>记住,永远不要让相同的选择器在你的代码里出现多次.<br/><strong>缓存jquery结果,备用</strong><br/><br/>如果你打算将jquery结果对象用在程序的其它部分,或者你的function会多次执行, 那么就将他们缓存到一个全局变量中.<br/><br/>定义一个全局容器来存放jquery结果, 我们就可以在其它函数引用它们:<br/><div class="code">// 在全局范围定义一个对象 (例如: window对象)<br/>window.$my =<br/>&#123;<br/>// 初始化所有可能会不止一次要使用的查询<br/>head : $(‘head’),<br/>traffic_light : $(‘#traffic_light’),<br/>traffic_button : $(‘#traffic_button’)<br/>&#125;;<br/><br/>function do_something()<br/>&#123;<br/>// 现在你可以引用存储的结果并操作它们<br/>var script = document.createElement(’script’);<br/>$my.head.append(script);<br/><br/>// 当你在函数内部操作是, 可以继续将查询存入全局对象中去.<br/>$my.cool_results = $(‘#some_ul li’);<br/>$my.other_results = $(‘#some_table td’);<br/><br/>// 将全局函数作为一个普通的jquery对象去使用.<br/>$my.other_results.css(‘border-color’, ‘red’);<br/>$my.traffic_light.css(‘border-color’, ‘green’);<br/>&#125;</div><br/><strong>4. 掌握强大的链式操作</strong><br/><br/>上面的例子也可以写成这样:<br/><div class="code">var $active_light = $(‘#traffic_light input.on’);$active_light.bind(‘click’, function()&#123;…&#125;)<br/>.css(‘border’, ‘3px dashed yellow’)<br/>.css(‘background-color’, ‘orange’)<br/>.fadeIn(’slow’);&nbsp;&nbsp;</div><br/>这样可以写更少的代码, 让我们的js更轻量.<br/><strong>5.使用子查询</strong><br/><br/>jQuery 允许我们对一个已包装的对象使用附加的选择器操作. 因为我们已经在保存了一个父级对象在变量里, 这样大大提高对其子元素的操作:<br/><div class="code">&lt;div id=“content”&gt;<br/>&lt;form method=“post” action=“/”&gt;<br/>&lt;h2&gt;Traffic Light&lt;/h2&gt;<br/>&lt;ul id=“traffic_light”&gt;<br/>&lt;li&gt;&lt;input type=“radio” class=“on” name=“light” value=“red” /&gt; Red&lt;/li&gt;<br/>&lt;li&gt;&lt;input type=“radio” class=“off” name=“light” value=“yellow” /&gt; Yellow&lt;/li&gt;<br/>&lt;li&gt;&lt;input type=“radio” class=“off” name=“light” value=“green” /&gt; Green&lt;/li&gt;<br/>&lt;/ul&gt;<br/>&lt;input class=“button” id=“traffic_button” type=“submit” value=“Go” /&gt;<br/>&lt;/form&gt;<br/>&lt;/div&gt;&nbsp;&nbsp;</div><br/>例如, 我们可以用子查询的方法来抓取到亮或不亮的灯, 并缓存起来以备后续操作.<br/><div class="code">var $traffic_light = $(‘#traffic_light’),<br/>$active_light = $traffic_light.find(‘input.on’),<br/>$inactive_lights = $traffic_light.find(‘input.off’); </div><br/><em>提示: 你可以用逗号分隔的方法一次声明多个局部变量–节省字节数</em><br/><strong>6.对直接的DOM操作进行限制</strong><br/><br/>这里的基本思想是在内存中建立你确实想要的东西，然后更新DOM 。这并不是一个jQuery最佳实践，但必须进行有效的JavaScript操作 。直接的DOM操作速度很慢。<br/><br/>例如,你想动态的创建一组列表元素, 千万不要这么做:<div class="code">var top_100_list = &#91;...&#93;, // 假设这里是100个独一无二的字符串<br/>$mylist = $(‘#mylist’); // jQuery 选择到 &lt;ul&gt; 元素<br/><br/>for (var i=0, l=top_100_list.length; i&lt;l; i++)<br/>&#123;<br/>$mylist.append(‘&lt;li&gt;’ + top_100_list&#91;i&#93; + ‘&lt;/li&gt;’);<br/>&#125;</div><br/>我们应该将整套元素字符串在插入进dom中之前全部创建好:<br/><div class="code">var top_100_list = &#91;...&#93;,<br/>$mylist = $(‘#mylist’),<br/>top_100_li = “”; // 这个变量将用来存储我们的列表元素<br/><br/>for (var i=0, l=top_100_list.length; i&lt;l; i++)<br/>&#123;<br/>top_100_li += ‘&lt;li&gt;’ + top_100_list&#91;i&#93; + ‘&lt;/li&gt;’;<br/>&#125;<br/>$mylist.html(top_100_li);</div><br/>我们在插入之前将多个元素包裹进一个单独的父级节点会更快:<br/><div class="code">var top_100_list = &#91;...&#93;,<br/>$mylist = $(‘#mylist’),<br/>top_100_ul = ‘&lt;ul id=”#mylist”&gt;’;<br/><br/>for (var i=0, l=top_100_list.length; i&lt;l; i++)<br/>&#123;<br/>top_100_ul += ‘&lt;li&gt;’ + top_100_list&#91;i&#93; + ‘&lt;/li&gt;’;<br/>&#125;<br/>top_100_ul += ‘&lt;/ul&gt;’; //关闭无序列表<br/>$mylist.replaceWith(top_100_ul);</div><br/>如果你做了以上几条还是担心有性能问题,那么:<br/>&nbsp;&nbsp;&nbsp;&nbsp;* 试试jquery的 clone() 方法, 它会创建一个节点树的副本, 它允许以”离线”的方式进行dom操作, 当你操作完成后再将其放回到节点树里.<br/>&nbsp;&nbsp;&nbsp;&nbsp;* 使用 DOM DocumentFragments. 正如jQuery作者所言, 它的性能要明显优于直接的dom操作. <br/><br/><strong>7. 冒泡</strong><br/><br/>除非在特殊情况下, 否则每一个js事件(例如:click, mouseover, 等.)都会冒泡到父级节点. 当我们需要给多个元素调用同个函数时这点会很有用.<br/><br/>代替这种效率很差的多元素事件监听的方法就是, 你只需向它们的父节点绑定一次, 并且可以计算出哪个节点触发了事件.<br/><br/>例如, 我们要为一个拥有很多输入框的表单绑定这样的行为: 当输入框被选中时为它添加一个class<br/><br/>像这样绑定事件是低效的:<br/><div class="code">$(‘#entryform input).bind(’focus‘, function()&#123;<br/>$(this).addClass(’selected‘);<br/>&#125;).bind(’blur‘, function()&#123;<br/>$(this).removeClass(’selected‘);<br/>&#125;); </div><br/>我们需要在父级监听获取焦点和失去焦点的事件:<br/><div class="code">$(‘#entryform’).bind(‘focus’, function(e)&#123;<br/>var cell = $(e.target); // e.target grabs the node that triggered the event.<br/>cell.addClass(’selected’);<br/>&#125;).bind(‘blur’, function(e)&#123;<br/>var cell = $(e.target);<br/>cell.removeClass(’selected’);<br/>&#125;);</div><br/>父级元素扮演了一个调度员的角色, 它可以基于目标元素绑定事件. 如果你发现你给很多元素绑定了同一个事件监听, 那么你肯定哪里做错了.<br/><br/><strong>8.消除无效查询</strong><br/><br/>尽管jquery可以很优雅的处理没有匹配元素的情况, 但它还是需要花费时间去寻找. 如果你整站只有一个全局js, 那么极有可能把所有的jquery函数塞进$(document)ready(function()&#123;//所有你引以为傲的代码&#125;)里.<br/><br/>只运行在页面里用到的函数. 大多数有效的方法就是使用行内初始化函数, 这样你的模板就能准确的控制何时何处该执行js.<br/><br/>例如, 你的”文章”页面模板, 你可能会引用如下的代码在body结束处:<br/><div class="code">&lt;script type=“text/javascript&gt;<br/>mylib.article.init();<br/>&lt;/script&gt;<br/>&lt;/body&gt;&nbsp;&nbsp;</div><br/>如果你的页面模板包含一些多变的模块可能不会出现在页面中, 或者为了视觉呈现的原因你需要它们能够快速加载, 你可以将初始化函数紧跟在模块之后.<br/><div class="code">&lt;ul id=“traffic_light”&gt;<br/>&lt;li&gt;&lt;input type=“radio” class=“on” name=“light” value=“red” /&gt; Red&lt;/li&gt;<br/>&lt;li&gt;&lt;input type=“radio” class=“off” name=“light” value=“yellow” /&gt; Yellow&lt;/li&gt;<br/>&lt;li&gt;&lt;input type=“radio” class=“off” name=“light” value=“green” /&gt; Green&lt;/li&gt;<br/>&lt;/ul&gt;<br/>&lt;script type=“text/javascript&gt;<br/>mylib.traffic_light.init();<br/>&lt;/script&gt;&nbsp;&nbsp;</div><br/>你的全局js库可能会是这样子的:<br/><div class="code">var mylib =<br/>&#123;<br/>article_page :<br/>&#123;<br/>init : function()<br/>&#123;<br/>// Article 特有的jQuery函数.<br/>&#125;<br/>&#125;,<br/>traffic_light :<br/>&#123;<br/>init : function()<br/>&#123;<br/>// Traffic light 特有的jQuery函数.<br/>&#125;<br/>&#125;<br/>&#125;</div><br/><strong>9. 推迟到 $(window).load<br/></strong><br/>jquery对于开发者来说有一个很诱人的东西, 可以把任何东西挂到$(document).ready下冒充事件. 在大多数例子中你都会发现这样的情况.<br/><br/>尽管$(document).rady 确实很有用, 它可以在页面渲染时,其它元素还没下载完成就执行. 如果你发现你的页面一直是载入中的状态, 很有可能就是$(document).ready函数引起的.<br/><br/>你可以通过将jquery函数绑定到$(window).load 事件的方法来减少页面载入时的cpu使用率. 它会在所有的html(包括&lt;iframe&gt;)被下载完成后执行.<br/><div class="code">$(window).load(function()&#123;<br/>// 页面完全载入后才初始化的jQuery函数.<br/>&#125;);&nbsp;&nbsp;</div><br/>多余的功能例如拖放, 视觉特效和动画, 预载入隐藏图像,等等. 都是适合这种技术的场合.<br/><strong>10. 压缩js</strong><br/><br/>推荐一个js在线压缩地址:&nbsp;&nbsp;<a href="http://dean.edwards.name/packer/" target="_blank">http://dean.edwards.name/packer/</a> <br/><strong>11. 全面掌握jquery库</strong><br/><br/>知己知彼, 百战百胜.&nbsp;&nbsp;只有更深入的了解jQuery才能更灵活的使用它.&nbsp;&nbsp;这里提供一个<a href="http://acodingfool.typepad.com/blog/jquery-13-cheat-sheet.html" target="_blank">jQuery的速查手册</a>, 可以打印出来随身携带.&nbsp;&nbsp;要是有能力将jQuery源码通读一遍那就更好了.<br/><br/>原文来自：<a href="http://www.artzstudio.com/2009/04/jquery-performance-rules/" target="_blank">jQuery Performance Rules</a> ; 译文来自：<a href="http://rlog.cn/" target="_blank">Rlog.cn </a>. 若转载请注明出处, 谢谢<br/>Tags - <a href="http://www.azuresky.com.cn/go.php/tags/jquery/" rel="tag">jquery</a> , <a href="http://www.azuresky.com.cn/go.php/tags/javascript/" rel="tag">javascript</a>
]]>
</description>
</item><item>
<link>http://www.azuresky.com.cn/post/Other-GoogleWaveInvitationCode.php</link>
<title><![CDATA[Google Wave邀请码，赠送14份Google Wave体验名额]]></title> 
<author>Tim &lt;tim@azuresky.cn&gt;</author>
<category><![CDATA[其他]]></category>
<pubDate>Thu, 26 Nov 2009 07:11:15 +0000</pubDate> 
<guid>http://www.azuresky.com.cn/post/Other-GoogleWaveInvitationCode.php</guid> 
<description>
<![CDATA[ 
	早段时间得到Google发送的Google Wave体验的邀请<br/>当时有8个邀请朋友的名额，送了几个给朋友<br/>今天登陆Wave发现邀请名额新增至14个<br/>如果需要体验Google Wave的朋友留下你的Gmail<br/>我抽空发送邀请名额给你<br/>名额有14位。<br/>最好是Google迷，不然估计玩不久。不要浪费名额。<br/>谢谢合作。<br/><br/><br/>2010-04-20登录Wave发现名额又增至15,需要体验的朋友可以继续留言!<br/>Tags - <a href="http://www.azuresky.com.cn/go.php/tags/google/" rel="tag">google</a> , <a href="http://www.azuresky.com.cn/go.php/tags/wave/" rel="tag">wave</a>
]]>
</description>
</item><item>
<link>http://www.azuresky.com.cn/post/XhtmlCss-IE8ToIE7Rendering.php</link>
<title><![CDATA[让IE8以IE7的渲染模式来渲染CSS]]></title> 
<author>Tim &lt;tim@azuresky.cn&gt;</author>
<category><![CDATA[Xhtml+Css]]></category>
<pubDate>Sun, 08 Mar 2009 02:50:03 +0000</pubDate> 
<guid>http://www.azuresky.com.cn/post/XhtmlCss-IE8ToIE7Rendering.php</guid> 
<description>
<![CDATA[ 
	极少时候，需要用到<strong>IE8 CSS hack</strong><br/>但是网络搜索到的都是标题党，所提供的并不是真正的<strong>IE8 CSS hack</strong><br/>难道IE8没有专有的识别字符？<br/><br/>答案我也不知道，未发现。<br/>但是可以通过另外一种途径，使你的网页能像IE7那样显示。<br/>虽然我明白，IE8比IE7进步很多，网页标准的支持也更大<br/>渲染CSS上与Firefox非常接近了，在IE8上所见与Firefox几乎无异（极少差异，但却存在）。<br/>但是因为IE这个家族的其他两位重要成员IE6、IE7还是非常多人在使用，特别是IE7。<br/>目前截至2009年05月为止，IE7占有率为44.51%，IE6占有率为17.52%，IE8为3.99%<br/>IE6、IE7是网页设计师们重点的网页测试对象（这里所说的网页测试，是在浏览器中CSS布局的定位是否精确）。<br/>但是我们也得考虑IE8，IE8是的成熟是未来几年升级的对象，因该会有部分用户从IE6直接升级到IE8。<br/>因此我们一定要考虑IE8，把它纳入网页测试对象。<br/><br/>以上是我针对性的分析，言归正传。<br/><br/>微软IE设计团队在设计IE8的时候就为IE8浏览增加了兼容模式、IE7浏览模式。<br/>因此我们用微软提供的下代码可以在IE8浏览器中使用IE7的渲染模式来渲染CSS<br/><div class="code">&lt;meta http-equiv=&quot;x-ua-compatible&quot; content=&quot;ie=7&quot; /&gt;</div><br/>这是一个“思想”倒退的办法，但是能暂时解决在IE8中遇到的问题。<br/><br/>其实很少需要用到以上方法，前面说过，IE8上所见与Firefox几乎无异（极少差异，但却存在）。<br/>这个“几乎”就让我使用了一次“让IE8以IE7的渲染模式来渲染CSS”<br/>Tags - <a href="http://www.azuresky.com.cn/go.php/tags/ie7/" rel="tag">ie7</a> , <a href="http://www.azuresky.com.cn/go.php/tags/ie8/" rel="tag">ie8</a>
]]>
</description>
</item><item>
<link>http://www.azuresky.com.cn/post/XhtmlCss-IE6ContentHeight100PerCent.php</link>
<title><![CDATA[使IE6中DIV(或其他容器)设置高度(height)为100%]]></title> 
<author>Tim &lt;tim@azuresky.cn&gt;</author>
<category><![CDATA[Xhtml+Css]]></category>
<pubDate>Wed, 04 Mar 2009 05:33:38 +0000</pubDate> 
<guid>http://www.azuresky.com.cn/post/XhtmlCss-IE6ContentHeight100PerCent.php</guid> 
<description>
<![CDATA[ 
	当你在制作网页中用CSS定义一个DIV(或者其他容器，如table等...)的height:100%<br/>在IE6中此定义无法达到预期纵向(y)100%显示效果时<br/>以下方法可以帮你解决<br/><br/>首先请用CSS定义<br/><div class="code">body&#123;height:100%&#125;</div><br/>此定义是为了让本身body就具有height为100%<br/><br/>然后<br/>再定义你想让其达到高100%纵向满屏的DIV(或者其他容器)<strong>的父DIV(或者其他容器)</strong><br/>其高度亦为height:100%<br/><br/>注意加重字体所表达的意思<br/><br/><strong>即：<br/>你要定义一个DIV的高100%纵向满屏<br/>那么请先将其上级的DIV的高定义为100%<br/>上级有多少个DIV，你都要定义它们的高为100%<br/>这样才能达到包含在里面的DIV的高为浏览器高100%的纵向满屏效果。</strong><br/><br/>Tags - <a href="http://www.azuresky.com.cn/go.php/tags/xhtml/" rel="tag">xhtml</a> , <a href="http://www.azuresky.com.cn/go.php/tags/css/" rel="tag">css</a> , <a href="http://www.azuresky.com.cn/go.php/tags/div/" rel="tag">div</a> , <a href="http://www.azuresky.com.cn/go.php/tags/ie6/" rel="tag">ie6</a> , <a href="http://www.azuresky.com.cn/go.php/tags/height/" rel="tag">height</a>
]]>
</description>
</item><item>
<link>http://www.azuresky.com.cn/post/WebSiteLog-AzureskyBlogRenewed.php</link>
<title><![CDATA[Azuresky Blog重新开放]]></title> 
<author>Tim &lt;tim@azuresky.cn&gt;</author>
<category><![CDATA[站点日志]]></category>
<pubDate>Sat, 20 Dec 2008 11:45:28 +0000</pubDate> 
<guid>http://www.azuresky.com.cn/post/WebSiteLog-AzureskyBlogRenewed.php</guid> 
<description>
<![CDATA[ 
	Azuresky Blog于2008-12-10到20日无法访问！<br/>原因：<br/>原来的空间到期，因某些原因不能继续使用原来的空间！<br/>我没有提早购买新的空间进行转移博客数据！导致10天无法进行访问！<br/><br/>今天终于重新开放！
]]>
</description>
</item><item>
<link>http://www.azuresky.com.cn/post/Other-EarthquakeAgain.php</link>
<title><![CDATA[又见地震]]></title> 
<author>Tim &lt;tim@azuresky.cn&gt;</author>
<category><![CDATA[其他]]></category>
<pubDate>Mon, 01 Sep 2008 11:17:27 +0000</pubDate> 
<guid>http://www.azuresky.com.cn/post/Other-EarthquakeAgain.php</guid> 
<description>
<![CDATA[ 
	08年08月30日，晚上看凤凰卫视中国四川又有较严重的地震发生<br/>有一些人们和动物在地质灾害中去世<br/><br/>生命就在某天被收回，任何“动物”面对死亡都只能 仰天叹惜，无能为力，人也不例外。<br/>去世的人们请安息，活着的人们珍惜每一天！<br/>Tags - <a href="http://www.azuresky.com.cn/go.php/tags/%25E5%259C%25B0%25E9%259C%2587/" rel="tag">地震</a>
]]>
</description>
</item><item>
<link>http://www.azuresky.com.cn/post/XhtmlCss-CSSHacks_Issues.php</link>
<title><![CDATA[CSS网页设计解决方案(Hacks  Issues)]]></title> 
<author>Tim &lt;tim@azuresky.cn&gt;</author>
<category><![CDATA[Xhtml+Css]]></category>
<pubDate>Fri, 13 Jun 2008 13:20:13 +0000</pubDate> 
<guid>http://www.azuresky.com.cn/post/XhtmlCss-CSSHacks_Issues.php</guid> 
<description>
<![CDATA[ 
	<strong>&nbsp;&nbsp;&nbsp;&nbsp;1、说明本文阐述了8条我们发现的在用CSS设计中有用的解决方案。</strong><br/><br/><strong>&nbsp;&nbsp;&nbsp;&nbsp;2、浏览器特定的选择器</strong><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;英文地址：&nbsp;&nbsp;<a href="http://www.solidstategroup.com/page/1592" target="_blank">http://www.solidstategroup.com/page/1592</a><br/><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;当你想在一个浏览器里改变样式而不像在其他浏览器中改变时，这些选择器很有用。<br/><br/><strong>&nbsp;&nbsp;&nbsp;&nbsp;IE6以下</strong><br/><br/>&nbsp;&nbsp; *html&#123;&#125;<br/> <br/><strong>&nbsp;&nbsp;&nbsp;&nbsp;IE 7 以下</strong><br/><br/>*:first-child+html &#123;&#125; * html &#123;&#125;<br/> <br/><strong>&nbsp;&nbsp;&nbsp;&nbsp;只对IE 7</strong><br/><br/>*:first-child+html &#123;&#125;<br/> <br/><strong>&nbsp;&nbsp;&nbsp;&nbsp;只对IE 7 和现代浏览器</strong><br/><br/>html&gt;body &#123;&#125;<br/> <br/><strong>&nbsp;&nbsp;&nbsp;&nbsp;只对现代浏览器(非IE 7)</strong><br/><br/>html&gt;/**/body &#123;&#125;<br/> <br/><strong>&nbsp;&nbsp;&nbsp;&nbsp;最新的Opera 9以下版本</strong><br/><br/>html:first-child &#123;&#125;<br/> <br/><strong>Safari</strong><br/><br/>html[xmlns*=”&quot;] body:last-child &#123;&#125;<br/> <br/>&nbsp;&nbsp;&nbsp;&nbsp;要使用这些选择器，请在样式前写下这些代码。例如：<br/><br/>#content-box &#123;<br/>　　width: 300px;<br/>　　height: 150px;<br/>&#125;<br/>* html #content-box &#123;<br/>　　width: 250px;<br/>&#125;<br/>/* 重写上面的代码并且把宽度改为250px<br/>在IE6以下版本中适用。 */<br/><br/><strong>&nbsp;&nbsp;&nbsp;&nbsp;3、在IE6中使用透明PNG图片</strong><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;IE6的一个很难处理的BUG就是它不支持透明PNG图片。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;你可能需要用一个重写的CSS的滤镜来解决这个问题：<br/><br/>*html #image-style &#123;<br/>　　background-image: none;<br/>　　filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=”filename.png”, sizingMethod=”scale”);<br/>&#125;<br/><br/><strong>&nbsp;&nbsp;&nbsp;&nbsp;4、去掉连接虚线框</strong><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;当你点击链接时，Firefox会在链接周围产生一个虚线外框。<br/>　　<a href="http://www.azuresky.com.cn/attachment.php?fid=139" target="_blank"><img src="http://www.azuresky.com.cn/attachment.php?fid=139" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/>&nbsp;&nbsp;&nbsp;&nbsp;这个很好解决，只需在a标签中添加outline:none就可以了。<br/><br/>a&#123;<br/>　　outline:none;<br/>&#125;<br/>注：此样式定义对IE6、IE7无效。但IE8有效<br/><strong>&nbsp;&nbsp;&nbsp;&nbsp;5、对inline元素应用宽度。</strong><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;如果你对一个inline元素使用宽度，它将只在IE6下起作用。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;所以的HTML标签要么是Block的要么就是inline的。inline属性的标签有&lt;span&gt;&lt;a&gt;&lt; strong&gt;和&lt;em&gt;Block标签包括&lt;div&gt;&lt;p&gt;&lt;h1&gt;&lt;form&gt; 和&lt;li&gt;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;你不能控制inilne标签的宽带，不过有一个方法是把标签属性从inline改为Block。<br/><br/>span&#123;<br/>　　width:150px;<br/>　　display:block;<br/>&#125;<br/> <br/>&nbsp;&nbsp;&nbsp;&nbsp;应用display:block能够把span标签变成block标签，从而控制它的宽度。<br/><br/><strong>&nbsp;&nbsp;&nbsp;&nbsp;6、使一个固定宽度的网站居中。</strong><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;为了让你的网站在浏览器中居中，可以为最外层Div添加position:relative属性，然后将margin设为auto。<br/><br/>#wrapper &#123;<br/>　　margin: auto;<br/>　　position: relative;<br/>&#125;<br/><br/><strong>&nbsp;&nbsp;&nbsp;&nbsp;7、图片替换技术</strong><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;对于头部来说，永远是最好用文字而不是图片。在你必须要用图片的某个特殊地方最好使用隐藏文字的层的背景图片。这对于屏幕阅读和SEO非常有用，尽管依然使用很普通的文字，这可以联想到所有的优点。<br/><br/>HTML：<br/><br/>&lt;h1&gt;&lt;span&gt;Main heading one&lt;/span&gt;&lt;/h1&gt;<br/> <br/>CSS:<br/><br/>h1 &#123;<br/>　　background: url(heading-image.gif) no-repeat;<br/>&#125;<br/>h1 span &#123;<br/>　　position:absolute;<br/>　　text-indent: -5000px;<br/>&#125;<br/> <br/>&nbsp;&nbsp;&nbsp;&nbsp;正如你所见，我们对H1标签使用普通的HTML代码，用CSS来将图片替代文字。Text-indent把文字放到左边5000像素处，从而用户看不到它们<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;8、最小宽度<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;IE的另外一个Bug就是它不支持min-width属性。min-width确实非常有用，特别是对于100%宽度的可变模板来说，因为他告诉浏览器停止收缩。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;对于除IE6以外的所有浏览器来说你只需min-width:xpx;例如：<br/><br/>.container &#123;<br/>　　min-width:300px;<br/>&#125;<br/> <br/>&nbsp;&nbsp;&nbsp;&nbsp;要让这些在IE6下起作用的话你要添加额外的努力！你需要创建两个DIV，一个包含着另一个。<br/><br/>&lt;div class=”container”&gt;<br/>&lt;div class=”holder”&gt;Content&lt;/div&gt;<br/>&lt;/div&gt;<br/> <br/>&nbsp;&nbsp;&nbsp;&nbsp;然后你需要设置外面层的min-width：<br/><br/>.container &#123;<br/>　　min-width:300px;<br/>&#125;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;现在又要IE hack起作用了，你需要写下以下代码：<br/><br/>* html .container &#123;<br/>　　border-right: 300px solid #FFF;<br/>&#125;<br/>* html .holder &#123;<br/>　　display: inline-block;<br/>　　position: relative;<br/>　　margin-right: -300px;<br/>&#125;<br/> <br/>&nbsp;&nbsp;&nbsp;&nbsp;当浏览器窗口调整外层宽度来适应直到它缩小到border的宽度时，这个时候它就不能够在缩小了。而holder层也会停止收缩。外层的边框宽度变成了内层的最小宽度。<br/><br/><strong>&nbsp;&nbsp;&nbsp;&nbsp;9、隐藏水平滚动</strong><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;要去除水平滚动条，可以在body中插入overflow-x:hidden属性。<br/><br/>body &#123;<br/>　　overflow-x: hidden;<br/>&#125;<br/> <br/>&nbsp;&nbsp;&nbsp;&nbsp;这在你决意要用一个比浏览器款的图片或Flash时很有用。 <br/>Tags - <a href="http://www.azuresky.com.cn/go.php/tags/css/" rel="tag">css</a> , <a href="http://www.azuresky.com.cn/go.php/tags/css%25E6%25BB%25A4%25E9%2595%259C/" rel="tag">css滤镜</a> , <a href="http://www.azuresky.com.cn/go.php/tags/code/" rel="tag">code</a> , <a href="http://www.azuresky.com.cn/go.php/tags/%25E8%25A7%25A3%25E5%2586%25B3%25E6%2596%25B9%25E6%25A1%2588/" rel="tag">解决方案</a>
]]>
</description>
</item><item>
<link>http://www.azuresky.com.cn/post/XhtmlCss-CSSAbbreviationsSummary.php</link>
<title><![CDATA[较常用的CSS层叠样式表缩写总汇]]></title> 
<author>Tim &lt;tim@azuresky.cn&gt;</author>
<category><![CDATA[Xhtml+Css]]></category>
<pubDate>Fri, 13 Jun 2008 12:42:34 +0000</pubDate> 
<guid>http://www.azuresky.com.cn/post/XhtmlCss-CSSAbbreviationsSummary.php</guid> 
<description>
<![CDATA[ 
	善用CSS层叠样式表缩写可以有效地把CSS文件的大小减小。<br/><br/>CSS缩写的主要规则如下：<br/><br/><strong>颜色(color)</strong><br/>16进制的色彩值，如果每两位的值相同，可以缩写一半，例如：<br/>#000000可以缩写为#000;#336699可以缩写为#369;<br/><br/><strong>容器填充(padding)与边距(margin)</strong><br/>通常有下面四种书写方法:<br/><span style="font-size: 14px;">&nbsp;&nbsp;&nbsp;&nbsp;property:value1; </span>表示所有边都是一个值value1；<br/><span style="font-size: 14px;">&nbsp;&nbsp;&nbsp;&nbsp;property:value1 value2; </span>表示top和bottom的值是value1,right和left的值是value2<br/><span style="font-size: 14px;">&nbsp;&nbsp;&nbsp;&nbsp;property:value1 value2 value3;</span> 表示top的值是value1，right和left的值是value2，bottom的值是value3<br/><span style="font-size: 14px;">&nbsp;&nbsp;&nbsp;&nbsp;property:value1 value2 value3 value4; </span>四个值依次表示top,right,bottom,left<br/><br/>方便的记忆方法是顺时针，上右下左。具体应用在margin和padding的例子如下：<br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content">margin:5px;<br/>margin:5px 6px;<br/>margin:5px 6px 4px;<br/>margin:5px 6px 4px 6px;</div></div><br/><br/><strong>边框(border)</strong><br/>边框的属性如下：<br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content">&nbsp;&nbsp;&nbsp;&nbsp;border-width:1px;<br/>&nbsp;&nbsp;&nbsp;&nbsp;border-style:solid;<br/>&nbsp;&nbsp;&nbsp;&nbsp;border-color:#000;</div></div><br/><br/>可以缩写为一句：<br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content">border:1px solid #000;</div></div><br/>语法是<span style="font-size: 14px;">border:width style color;</span><br/><br/><strong>背景(backgrounds)</strong><br/>背景的属性如下：<br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content">&nbsp;&nbsp;&nbsp;&nbsp;background-color:#f00;<br/>&nbsp;&nbsp;&nbsp;&nbsp;background-image:url(background.gif);<br/>&nbsp;&nbsp;&nbsp;&nbsp;background-repeat:no-repeat;<br/>&nbsp;&nbsp;&nbsp;&nbsp;background-attachment:fixed;<br/>&nbsp;&nbsp;&nbsp;&nbsp;background-position:0 0;</div></div><br/><br/>可以缩写为一句：<br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content">background:#f00 url(background.gif) no-repeat fixed 0 0;</div></div><br/>语法是<span style="font-size: 14px;">background:color image repeat attachment position;</span><br/><br/>你可以省略其中一个或多个属性值，如果省略，该属性值将用浏览器默认值，默认值为：<br/><span style="font-size: 14px;">&nbsp;&nbsp;&nbsp;&nbsp;color: transparent<br/>&nbsp;&nbsp;&nbsp;&nbsp;image: none<br/>&nbsp;&nbsp;&nbsp;&nbsp;repeat: repeat<br/>&nbsp;&nbsp;&nbsp;&nbsp;attachment: scroll<br/>&nbsp;&nbsp;&nbsp;&nbsp;position: 0% 0%</span><br/><br/><strong>字体(fonts)</strong><br/>字体的属性如下：<br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content">&nbsp;&nbsp;&nbsp;&nbsp;font-style:italic;<br/>&nbsp;&nbsp;&nbsp;&nbsp;font-variant:small-caps;<br/>&nbsp;&nbsp;&nbsp;&nbsp;font-weight:bold;<br/>&nbsp;&nbsp;&nbsp;&nbsp;font-size:1em;<br/>&nbsp;&nbsp;&nbsp;&nbsp;line-height:140%;<br/>&nbsp;&nbsp;&nbsp;&nbsp;font-family:"Lucida Grande",sans-serif;</div></div><br/><br/>可以缩写为一句：<br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content">font:italic small-caps bold 1em/140% "Lucida Grande",sans-serif;</div></div><br/>注意，如果你缩写字体定义，至少要定义font-size和font-family两个值。<br/><br/><strong>列表(lists)</strong><br/>取消默认的圆点和序号可以这样写list-style:none;<br/>list的属性如下:<br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content">&nbsp;&nbsp;&nbsp;&nbsp;list-style-type:square;<br/>&nbsp;&nbsp;&nbsp;&nbsp;list-style-position:inside;<br/>&nbsp;&nbsp;&nbsp;&nbsp;list-style-image:url(image.gif);<br/></div></div><br/>可以缩写为一句：<br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content">list-style:square inside url(image.gif);</div></div><br/>Tags - <a href="http://www.azuresky.com.cn/go.php/tags/css/" rel="tag">css</a> , <a href="http://www.azuresky.com.cn/go.php/tags/code/" rel="tag">code</a> , <a href="http://www.azuresky.com.cn/go.php/tags/css%25E7%25BC%25A9%25E5%2586%2599/" rel="tag">css缩写</a>
]]>
</description>
</item><item>
<link>http://www.azuresky.com.cn/post/XhtmlCss-MozillaCSSWritingTheOrderProposed.php</link>
<title><![CDATA[Mozilla给网站制作朋友们的CSS书写顺序建议]]></title> 
<author>Tim &lt;tim@azuresky.cn&gt;</author>
<category><![CDATA[Xhtml+Css]]></category>
<pubDate>Fri, 13 Jun 2008 12:22:30 +0000</pubDate> 
<guid>http://www.azuresky.com.cn/post/XhtmlCss-MozillaCSSWritingTheOrderProposed.php</guid> 
<description>
<![CDATA[ 
	css显示样式定义属性<br/>display<br/>list-style<br/>position<br/>float<br/>clear<br/><br/>css容器、块等自身样式定义属性<br/>width<br/>height<br/>margin<br/>padding<br/>border<br/>background<br/><br/>css文本样式定义属性<br/>color<br/>font<br/>text-decoration<br/>text-align<br/>vertical-align<br/>white-space<br/>other text<br/>content<br/>Tags - <a href="http://www.azuresky.com.cn/go.php/tags/xhtml/" rel="tag">xhtml</a> , <a href="http://www.azuresky.com.cn/go.php/tags/css/" rel="tag">css</a> , <a href="http://www.azuresky.com.cn/go.php/tags/mozilla/" rel="tag">mozilla</a>
]]>
</description>
</item><item>
<link>http://www.azuresky.com.cn/post/WebJourney-CSSfilterGraySite.php</link>
<title><![CDATA[黑灰白网页，为全国哀悼日改网页样式为黑灰白色方法-CSS滤镜Gray]]></title> 
<author>Tim &lt;tim@azuresky.cn&gt;</author>
<category><![CDATA[Web之旅]]></category>
<pubDate>Mon, 19 May 2008 14:35:51 +0000</pubDate> 
<guid>http://www.azuresky.com.cn/post/WebJourney-CSSfilterGraySite.php</guid> 
<description>
<![CDATA[ 
	2008年05月19日，绝大部分大型门户网站、百度、腾讯、网易、雅虎等等都把网站、网页改成了黑白灰色的样式<br/>以示深切哀悼的心情。<br/><br/>这里我教大家用CSS滤镜就能不用进行特大的工程来改变风格样式达到黑白灰色网站效果。<br/>............<br/><br/>Tags - <a href="http://www.azuresky.com.cn/go.php/tags/%25E5%2585%25A8%25E5%259B%25BD%25E5%2593%2580%25E6%2582%25BC%25E6%2597%25A5/" rel="tag">全国哀悼日</a> , <a href="http://www.azuresky.com.cn/go.php/tags/2008.05.19/" rel="tag">2008.05.19</a> , <a href="http://www.azuresky.com.cn/go.php/tags/css/" rel="tag">css</a> , <a href="http://www.azuresky.com.cn/go.php/tags/css%25E6%25BB%25A4%25E9%2595%259C/" rel="tag">css滤镜</a> , <a href="http://www.azuresky.com.cn/go.php/tags/code/" rel="tag">code</a>
]]>
</description>
</item><item>
<link>http://www.azuresky.com.cn/post/Other-20080519Mourning.php</link>
<title><![CDATA[2008年05月19-21日全国哀悼日，为四川汶川默哀3分钟]]></title> 
<author>Tim &lt;tim@azuresky.cn&gt;</author>
<category><![CDATA[其他]]></category>
<pubDate>Mon, 19 May 2008 14:14:45 +0000</pubDate> 
<guid>http://www.azuresky.com.cn/post/Other-20080519Mourning.php</guid> 
<description>
<![CDATA[ 
	2008年05月19日14时28分起，全国人民为四川汶川大地震遇难者默哀3分钟。<br/>各地汽车、火车、舰船笛声长鸣，防空警报在各城市上空鸣响。<br/>并将05月19-21日定为全国哀悼日。<br/><br/>我也将我的个人网站“蔚蓝色天空”、“Azuresky Blog”黑灰白色三天，以表默哀之心。<br/>历史将记住让人们沉痛受苦的这些日子<br/>............<br/><br/>Tags - <a href="http://www.azuresky.com.cn/go.php/tags/%25E5%259B%259B%25E5%25B7%259D%25E6%25B1%25B6%25E5%25B7%259D/" rel="tag">四川汶川</a> , <a href="http://www.azuresky.com.cn/go.php/tags/7.8%25E7%25BA%25A7%25E5%259C%25B0%25E9%259C%2587/" rel="tag">7.8级地震</a> , <a href="http://www.azuresky.com.cn/go.php/tags/%25E5%259C%25B0%25E9%259C%2587/" rel="tag">地震</a> , <a href="http://www.azuresky.com.cn/go.php/tags/2008.05.19/" rel="tag">2008.05.19</a> , <a href="http://www.azuresky.com.cn/go.php/tags/%25E5%2585%25A8%25E5%259B%25BD%25E5%2593%2580%25E6%2582%25BC%25E6%2597%25A5/" rel="tag">全国哀悼日</a> , <a href="http://www.azuresky.com.cn/go.php/tags/%25E6%2595%2591%25E7%2581%25BE/" rel="tag">救灾</a>
]]>
</description>
</item><item>
<link>http://www.azuresky.com.cn/post/Abstract-YahooSichuanEarthquakeRelief.php</link>
<title><![CDATA[中国雅虎、百度、谷歌的四川汶川救灾最新消息，雅虎还有捐款的通道]]></title> 
<author>Tim &lt;tim@azuresky.cn&gt;</author>
<category><![CDATA[网络摘要]]></category>
<pubDate>Fri, 16 May 2008 13:23:55 +0000</pubDate> 
<guid>http://www.azuresky.com.cn/post/Abstract-YahooSichuanEarthquakeRelief.php</guid> 
<description>
<![CDATA[ 
	Yahoo(中国雅虎)提供的四川汶川救灾最新消息，也有捐款的通道<br/>详情点击下面图片！有救灾的最新情况<br/>里面有捐款通道，都靠自愿吧...<br/><a href="http://news.cn.yahoo.com/scdz/index.html" target="_blank"><img src="http://www.azuresky.com.cn/attachment/200805/yahoosichuan1.jpg" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><a href="http://news.cn.yahoo.com/scdz/index.html" target="_blank"><img src="http://www.azuresky.com.cn/attachment/200805/yahoosichuan2.jpg" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><br/><h4>百度的赈灾图片也放出来，包含链向百度赈灾的专区</h4><br/><a href="http://finance.baidu.com/zt/dizhen/" target="_blank"><img src="http://www.azuresky.com.cn/attachment/200805/baidusichuan1.gif" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><a href="http://finance.baidu.com/zt/dizhen/" target="_blank"><img src="http://www.azuresky.com.cn/attachment/200805/baidusichuan2.gif" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><h4>Google（谷歌）设的“寻找灾区的亲人”搜索专区：</h4><br/><form action="http://www.google.com/cse" target="_blank"><br/><img src="http://www.google.com/images/poweredby_transparent/poweredby_FFFFFF.gif" alt="Google" /><br/><input type="text" name="q" size="25" /><br/><input type="submit" name="sa" value="搜索" />&nbsp;&nbsp;&nbsp;&nbsp;寻找灾区的亲人<br/><input type="hidden" name="cx" value="013290620019079885792:i33awug1ntm" /><br/><input type="hidden" name="hl" value="zh-cn" /><br/></form><br/>Tags - <a href="http://www.azuresky.com.cn/go.php/tags/%25E5%259B%259B%25E5%25B7%259D%25E6%25B1%25B6%25E5%25B7%259D/" rel="tag">四川汶川</a> , <a href="http://www.azuresky.com.cn/go.php/tags/7.8%25E7%25BA%25A7%25E5%259C%25B0%25E9%259C%2587/" rel="tag">7.8级地震</a> , <a href="http://www.azuresky.com.cn/go.php/tags/%25E5%259C%25B0%25E9%259C%2587/" rel="tag">地震</a> , <a href="http://www.azuresky.com.cn/go.php/tags/%25E6%2595%2591%25E7%2581%25BE/" rel="tag">救灾</a> , <a href="http://www.azuresky.com.cn/go.php/tags/yahoo/" rel="tag">yahoo</a> , <a href="http://www.azuresky.com.cn/go.php/tags/google/" rel="tag">google</a> , <a href="http://www.azuresky.com.cn/go.php/tags/baidu/" rel="tag">baidu</a>
]]>
</description>
</item><item>
<link>http://www.azuresky.com.cn/post/Other-ObservedAMinuteOfSilence.php</link>
<title><![CDATA[震碎蜀地,流亡...向天...无力...]]></title> 
<author>Tim &lt;tim@azuresky.cn&gt;</author>
<category><![CDATA[其他]]></category>
<pubDate>Wed, 14 May 2008 15:43:33 +0000</pubDate> 
<guid>http://www.azuresky.com.cn/post/Other-ObservedAMinuteOfSilence.php</guid> 
<description>
<![CDATA[ 
	<a href="http://www.azuresky.com.cn/attachment.php?fid=136" target="_blank"><img src="http://www.azuresky.com.cn/attachment.php?fid=136" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0" width="520" height="347"/></a><br/>2008-05-12日，一个令人感到无法表达的事情发生了<br/>四川汶川发生7.8级的强烈地震，面对死亡，有太多的不可预测。<br/><br/>看那些新闻图片，全身会颤抖，不想放上来，也不知道要说些什么。<br/><br/>......<br/><br/>让我们为四川地震灾区的人们默哀祈福一分钟...<br/>Tags - <a href="http://www.azuresky.com.cn/go.php/tags/%25E5%259B%259B%25E5%25B7%259D%25E6%25B1%25B6%25E5%25B7%259D/" rel="tag">四川汶川</a> , <a href="http://www.azuresky.com.cn/go.php/tags/7.8%25E7%25BA%25A7%25E5%259C%25B0%25E9%259C%2587/" rel="tag">7.8级地震</a> , <a href="http://www.azuresky.com.cn/go.php/tags/%25E5%259C%25B0%25E9%259C%2587/" rel="tag">地震</a>
]]>
</description>
</item><item>
<link>http://www.azuresky.com.cn/post/WebJourney-Top10JavascriptsForImageSpeciallyEffect.php</link>
<title><![CDATA[十种用JavaScript处理图片的特别效果]]></title> 
<author>Tim &lt;tim@azuresky.cn&gt;</author>
<category><![CDATA[Web之旅]]></category>
<pubDate>Wed, 14 May 2008 04:45:38 +0000</pubDate> 
<guid>http://www.azuresky.com.cn/post/WebJourney-Top10JavascriptsForImageSpeciallyEffect.php</guid> 
<description>
<![CDATA[ 
	10种用JavaScript来进行处理图片的特别效果<br/>前段时间网络上暇逛，在“<a href="http://www.kenengba.com" target="_blank">可能吧</a>”看到一篇“10个用能用JavaScript实现的图片特效”<br/>然后连接到国外的一个叫<a href="http://www.blogohblog.com" target="_blank">Blog Oh Blog</a>原文上。<br/>感觉非常有趣，不需要Photoshop来进行处理，图片本身还是原来的图片<br/>用JavaScript来自动对页面上的图片在原来的基础上处理显示出的特别效果<br/>有需要玩玩可以体验下。<br/><br/>1、图片倒影效果（<a href="http://reflex.netzgesta.de/" target="_blank">Reflex.js</a>）<br/>这个脚本能使图片产生倒影的效果。效果如下：<br/><a href="http://www.azuresky.com.cn/attachment.php?fid=126" target="_blank"><img src="http://www.azuresky.com.cn/attachment.php?fid=126" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content">下载地址（官方提供）：<a href="http://www.netzgesta.de/reflex/reflex.zip" target="_blank">Reflex.zip</a></div></div><br/><br/>2、图片边角卷叶效果（<a href="http://www.netzgesta.de/curl/" target="_blank">Curl.js</a>）<br/>这个JavaScript能使图片产生卷页的效果，而且鼠标悬停时可以添加动态卷页效果。效果如下：<br/><a href="http://www.azuresky.com.cn/attachment.php?fid=127" target="_blank"><img src="http://www.azuresky.com.cn/attachment.php?fid=127" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content">下载地址（官方提供）：<a href="http://www.netzgesta.de/curl/curl.zip" target="_blank">Curl.zip</a></div></div><br/><br/>3、图片花边效果（<a href="http://www.netzgesta.de/edge/" target="_blank">Edge.js</a>）<br/>这个脚本能使图片的边缘产生花边和模糊效果，。效果如下：<br/><a href="http://www.azuresky.com.cn/attachment.php?fid=128" target="_blank"><img src="http://www.azuresky.com.cn/attachment.php?fid=128" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content">下载地址（官方提供）：<a href="http://www.netzgesta.de/edge/edge.zip" target="_blank">Edge.zip</a></div></div><br/><br/>4、图片圆角、阴影效果（<a href="http://www.netzgesta.de/corner/" target="_blank">Corner.js</a>）<br/>这个JavaScript能使图片的边角成为圆角并且整个图片有阴影效果。效果如下：<br/><a href="http://www.azuresky.com.cn/attachment.php?fid=129" target="_blank"><img src="http://www.azuresky.com.cn/attachment.php?fid=129" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content">下载地址（官方提供）：<a href="http://www.netzgesta.de/corner/corner.zip" target="_blank">Corner.zip</a></div></div><br/><br/>5、图片幻灯片框架效果（<a href="http://www.netzgesta.de/slided/" target="_blank">Slided.js</a>）<br/>这个脚本能使图片的周边产生幻灯片的框架效果。效果如下：<br/><a href="http://www.azuresky.com.cn/attachment.php?fid=130" target="_blank"><img src="http://www.azuresky.com.cn/attachment.php?fid=130" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content">下载地址（官方提供）：<a href="http://www.netzgesta.de/slided/slided.zip" target="_blank">Slided.zip</a></div></div><br/><br/>6、图片高光立体按钮效果（<a href="http://www.netzgesta.de/glossy/" target="_blank">Glossy.js</a>）<br/>这个脚本能使图片产生立体的光泽效果，犹如水晶按钮般，还会产生阴影。效果如下：<br/><a href="http://www.azuresky.com.cn/attachment.php?fid=131" target="_blank"><img src="http://www.azuresky.com.cn/attachment.php?fid=131" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content">下载地址（官方提供）：<a href="http://www.netzgesta.de/glossy/glossy.zip" target="_blank">Glossy.zip</a></div></div><br/><br/>7、图片电影胶片效果（<a href="http://www.netzgesta.de/filmed/" target="_blank">Filmed.js</a>）<br/>这个脚本能使图片产生犹如电影胶片的效果，还能调整阴影立体感。效果如下：<br/><a href="http://www.azuresky.com.cn/attachment.php?fid=132" target="_blank"><img src="http://www.azuresky.com.cn/attachment.php?fid=132" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content">下载地址（官方提供）：<a href="http://www.netzgesta.de/filmed/filmed.zip" target="_blank">Filmed.zip</a></div></div><br/><br/>8、图片内部放大镜效果（<a href="http://www.netzgesta.de/loupe/" target="_blank">Loupe.js</a>）<br/>这个脚本能使图片的内部生成一个放大镜，能让浏览者拖动放大镜放大查看图片的效果。效果如下：<br/><a href="http://www.azuresky.com.cn/attachment.php?fid=133" target="_blank"><img src="http://www.azuresky.com.cn/attachment.php?fid=133" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content">下载地址（官方提供）：<a href="http://www.netzgesta.de/loupe/loupe.zip" target="_blank">Loupe.zip</a></div></div><br/><br/>9、图片边框与阴影效果（<a href="http://www.netzgesta.de/instant/" target="_blank">Instant.js</a>）<br/>这个JavaScript能使图片产生犹如照片的边框效果效果。效果如下：<br/><a href="http://www.azuresky.com.cn/attachment.php?fid=134" target="_blank"><img src="http://www.azuresky.com.cn/attachment.php?fid=134" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content">下载地址（官方提供）：<a href="http://www.netzgesta.de/instant/instant.zip" target="_blank">Instant.zip</a></div></div><br/><br/>10、图片斜光立体效果（<a href="http://www.netzgesta.de/bevel/" target="_blank">Bevel.js</a>）<br/>这个脚本能使图片产生立体的效果，犹如水晶按钮般，还会产生阴影<br/>跟Glossy.js差不错，但立体程度与光泽有所区别。效果如下：<br/><a href="http://www.azuresky.com.cn/attachment.php?fid=135" target="_blank"><img src="http://www.azuresky.com.cn/attachment.php?fid=135" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content">下载地址（官方提供）：<a href="http://www.netzgesta.de/bevel/bevel.zip" target="_blank">Bevel.zip</a></div></div><br/><br/>应用以上图片效果在网页方法：<br/><br/>下载解压后上传到空间，然后在需要显示效果的页面内head标签里添加入以下代码（示范倒影效果reflex.js）：<br/><br/><div class="code">&lt;script src=&quot;reflex.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;</div><br/><br/>然后，在想要显示图片处理特效的图片img标签里添里加入class类参数，例如：<br/><div class="code">&lt;img src=&quot;image.gif&quot; alt=&quot;&quot; class=&quot;reflex&quot; /&gt;</div><br/><strong>更详细可到官方网站查看。本身下载回来的文件里面也有详细用法介绍</strong><br/><br/>然后，加上该class的图片就会有倒影的效果了。<br/><br/>其它图片处理特效添加方法相同。<br/>Tags - <a href="http://www.azuresky.com.cn/go.php/tags/javascript/" rel="tag">javascript</a> , <a href="http://www.azuresky.com.cn/go.php/tags/%25E7%2589%25B9%25E6%2595%2588/" rel="tag">特效</a> , <a href="http://www.azuresky.com.cn/go.php/tags/code/" rel="tag">code</a>
]]>
</description>
</item><item>
<link>http://www.azuresky.com.cn/post/WebSiteLog-GooglePageRank2.php</link>
<title><![CDATA[Azuresky Blog悄悄地Google PageRank为2]]></title> 
<author>Tim &lt;tim@azuresky.cn&gt;</author>
<category><![CDATA[站点日志]]></category>
<pubDate>Wed, 30 Apr 2008 14:10:39 +0000</pubDate> 
<guid>http://www.azuresky.com.cn/post/WebSiteLog-GooglePageRank2.php</guid> 
<description>
<![CDATA[ 
	Google神不知鬼不觉的把握的Blog的PR值更新为2了。<br/>因为与2008年4月24日找到并开始工作，所以都在忙。<br/>也估计没太多时间来更新Blog了，反正有时间就更新Blog。<br/>愿它成为常青树，可是我没时间更新，很难成为常青树吧？？<br/>革命尚未成功，Tim我还得继续努力。<br/><br/>Google PR值2与其他搜索引擎收录情况截图。<br/><a href="http://www.azuresky.com.cn/attachment.php?fid=125" target="_blank"><img src="http://www.azuresky.com.cn/attachment.php?fid=125" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0" width="460" height="61"/></a><br/>Tags - <a href="http://www.azuresky.com.cn/go.php/tags/google/" rel="tag">google</a> , <a href="http://www.azuresky.com.cn/go.php/tags/pagerank/" rel="tag">pagerank</a>
]]>
</description>
</item><item>
<link>http://www.azuresky.com.cn/post/Other-ILoveChinaChineseHeart.php</link>
<title><![CDATA[提供“我爱中国”与“中国心”头像]]></title> 
<author>Tim &lt;tim@azuresky.cn&gt;</author>
<category><![CDATA[其他]]></category>
<pubDate>Fri, 18 Apr 2008 06:59:44 +0000</pubDate> 
<guid>http://www.azuresky.com.cn/post/Other-ILoveChinaChineseHeart.php</guid> 
<description>
<![CDATA[ 
	<a href="http://www.azuresky.com.cn/attachment.php?fid=122" target="_blank"><img src="http://www.azuresky.com.cn/attachment.php?fid=122" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/>我没“<a href="http://www.anti-cnn.com" target="_blank">anti-cnn</a>”上的一些朋友那么“愤青”，但我是爱国的。I Love China<br/>什么都不想说！<br/>对用不用这两个头像的人，我很能理解，的确是不一定要把QQ和MSN换成这个头像！<br/>但是对于一些麻木的人，说想叫他换这个两个头像是傻瓜的人，换这个头像是傻了的人。<br/>我为你们感到悲哀，换不换是你的权利，可是不要讽刺换了这个头像的人。<br/>我真的怀疑，是不是你到了出去国外被人讥笑、到了“三战”你才会觉悟？？？<br/><br/>现在似乎网络上找到的头像都是比较不清晰的头像！<br/>要么还出现红心中间有黑色半透明条纹的“盗版”中国心头像（笑）。<br/>............<br/><br/>Tags - <a href="http://www.azuresky.com.cn/go.php/tags/%25E4%25B8%25AD%25E5%259B%25BD%25E5%25BF%2583/" rel="tag">中国心</a> , <a href="http://www.azuresky.com.cn/go.php/tags/%25E6%2588%2591%25E7%2588%25B1%25E4%25B8%25AD%25E5%259B%25BD/" rel="tag">我爱中国</a>
]]>
</description>
</item><item>
<link>http://www.azuresky.com.cn/post/Abstract-PhotoshopExpressOpenTest.php</link>
<title><![CDATA[Photoshop Express已经开始公测]]></title> 
<author>Tim &lt;tim@azuresky.cn&gt;</author>
<category><![CDATA[网络摘要]]></category>
<pubDate>Thu, 03 Apr 2008 04:55:54 +0000</pubDate> 
<guid>http://www.azuresky.com.cn/post/Abstract-PhotoshopExpressOpenTest.php</guid> 
<description>
<![CDATA[ 
	刚刚得知<br/>Adobe公司于2008-03-29宣布，在线版PS程序“Photoshop Express”已经开放公测。<br/><br/>Photoshop Express免费提供2GB空间，用户可以在线存储、管理、编辑、分享自己的照片，并能通过Facebook等社交网站进行上传和下载，或者在Adobe提供的画廊里互相展示。<br/><br/>感兴趣的朋友可以到：<a href="http://www.photoshop.com/express" target="_blank">http://www.photoshop.com/express</a><br/>注册自己的帐号！<br/>感慨，虽然现今Photoshop Express与专业Photoshop功能差别很大。<br/>但，全新的Web时代Photoshop从此到来。<br/>Tags - <a href="http://www.azuresky.com.cn/go.php/tags/adobe/" rel="tag">adobe</a> , <a href="http://www.azuresky.com.cn/go.php/tags/photoshop/" rel="tag">photoshop</a> , <a href="http://www.azuresky.com.cn/go.php/tags/%25E5%258E%2586%25E5%258F%25B2%25E8%25A7%2581%25E8%25AF%2581/" rel="tag">历史见证</a>
]]>
</description>
</item><item>
<link>http://www.azuresky.com.cn/post/WebSiteLog-MassSEOBlogArticle.php</link>
<title><![CDATA[对整个Blog的文章进行了SEO]]></title> 
<author>Tim &lt;tim@azuresky.cn&gt;</author>
<category><![CDATA[站点日志]]></category>
<pubDate>Wed, 02 Apr 2008 09:24:00 +0000</pubDate> 
<guid>http://www.azuresky.com.cn/post/WebSiteLog-MassSEOBlogArticle.php</guid> 
<description>
<![CDATA[ 
	针对整个Blog进行了SEO！<br/>完毕后有些后悔！因为在搜索引擎搜索我的blog。所有文章点击后无法显示了（SEO文章的url）。<br/><br/>应该每天两三篇的进行SEO才好！大规模的SEO，太多的404页面！怕被Google和百度给K掉了。<br/><br/>也对robots.txt文件进行了修改！希望能起到屏蔽优化前的全部文章收录。<br/><br/>期待，期待无事的度过这一时期。如果真的被搜索引擎K掉，也只好以后再去搜索引擎登录了。
]]>
</description>
</item><item>
<link>http://www.azuresky.com.cn/post/WebJourney-FlashFullScreenPlayActionScript.php</link>
<title><![CDATA[Flash视频全屏播放的ActionScript]]></title> 
<author>Tim &lt;tim@azuresky.cn&gt;</author>
<category><![CDATA[Web之旅]]></category>
<pubDate>Tue, 01 Apr 2008 13:50:52 +0000</pubDate> 
<guid>http://www.azuresky.com.cn/post/WebJourney-FlashFullScreenPlayActionScript.php</guid> 
<description>
<![CDATA[ 
	最近在深入学习Flash中！<br/>在看56或者土豆的视频的时候。有一个全屏幕播放视频的按钮。<br/><br/>想要通过点击一个按钮然后全屏播放你的Flash，那么就需要用到ActionScript 2.0的一个语句来实现。<br/>很简单，只需在Flash需要点击的按钮中加入以下ActionScript语句：<br/>全屏播放:<br/><div class="code"><br/>on (release) &#123;<br/>　　Stage.displayState = &quot;fullScreen&quot;;<br/><br/></div><br/>退出全屏播放:<br/><div class="code"><br/>on (release) &#123;<br/>　　Stage.displayState = &quot;normal&quot;;<br/>&#125;<br/><br/></div><br/>鼠标响应事件随便你选择点击或者鼠标滑过等等<br/><br/>然后还需要在网页插入Flash的参数中加入下面这段：<br/><div class="code">&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot; /&gt;</div><br/><br/>启用全屏设置为"true"，否则设置为"false"（默认值）<br/>这是当在响应鼠标事件或键盘事件时才会调用启动Flash全屏模式的ActionScript。<br/>值得注意的是，在全屏模式下，无法在Flash文本框输入文本。<br/><br/>Tags - <a href="http://www.azuresky.com.cn/go.php/tags/flash/" rel="tag">flash</a> , <a href="http://www.azuresky.com.cn/go.php/tags/code/" rel="tag">code</a> , <a href="http://www.azuresky.com.cn/go.php/tags/actionscript/" rel="tag">actionscript</a>
]]>
</description>
</item><item>
<link>http://www.azuresky.com.cn/post/WebJourney-FlashInBrowserFullScreenDisplay.php</link>
<title><![CDATA[Flash网页在浏览器中全屏显示的详细方法]]></title> 
<author>Tim &lt;tim@azuresky.cn&gt;</author>
<category><![CDATA[Web之旅]]></category>
<pubDate>Mon, 31 Mar 2008 12:17:34 +0000</pubDate> 
<guid>http://www.azuresky.com.cn/post/WebJourney-FlashInBrowserFullScreenDisplay.php</guid> 
<description>
<![CDATA[ 
	<a href="http://www.azuresky.com.cn/attachment.php?fid=111" target="_blank"><img src="http://www.azuresky.com.cn/attachment.php?fid=111" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0" align="right"/></a><br/>最近一段时间都在做毕业设计和帮忙制作“Ｐ＆Ｄ品多卫浴”的产品展示网站。<br/>都没有时间写写东西了。<br/>不过在制作毕业设计和“Ｐ＆Ｄ品多卫浴”这个网站的时候。<br/>需要用到有单独Flash页面在浏览器中全屏显示。<br/><br/><br/>最简单的方法就是：<br/>先用Dreamweaver直接插入Flash。然后把里面的参数属性width和height设置成：width="100%" height="100%"<br/><br/>部分代码：<br/><div class="code"><br/>&lt;noscript&gt;<br/>&lt;object classid=&quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&quot; codebase=&quot;http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;<br/>&nbsp;&nbsp;&lt;param name=&quot;movie&quot; value=&quot;index.swf&quot; /&gt;<br/>&nbsp;&nbsp;&lt;param name=&quot;quality&quot; value=&quot;high&quot; /&gt;<br/>&nbsp;&nbsp;&lt;embed src=&quot;ndex.swf&quot; quality=&quot;high&quot; pluginspage=&quot;http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash&quot; type=&quot;application/x-shockwave-flash&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;&lt;/embed&gt;<br/>&lt;/object&gt;<br/>&lt;/noscript&gt;<br/></div><br/>如果现在在浏览器查看效果，可能不是在浏览器中以全屏幕的显示方式浏览Flash。<br/>因为还需要写几个CSS的样式定义。<br/>因此我在head标签中写入一下CSS：<br/><div class="code"><br/>&lt;style type=&quot;text/css&quot;&gt;<br/>html&#123;<br/>&nbsp;&nbsp;width:100%;<br/>&nbsp;&nbsp;height:100%;<br/>&#125;<br/>body&#123;<br/>&nbsp;&nbsp;width:100%;<br/>&nbsp;&nbsp;height:100%;<br/>&nbsp;&nbsp;background-color:#FFFFFF;<br/>&nbsp;&nbsp;padding:0px;<br/>&nbsp;&nbsp;overflow:hidden;<br/>&#125;<br/>#flashContent&#123;<br/>&nbsp;&nbsp;width:100%;<br/>&nbsp;&nbsp;height:100%;<br/>&#125;<br/>&lt;/style&gt;<br/></div><br/>这是为了让html与body标签内的内容以浏览器100%全屏幕的方式显示，而#flashContent则是我插入Flash的那个层的id。<br/>好了，现在在浏览器中浏览，发现是以全屏模式浏览Flash了<br/><br/>切记的是，插入的Flash不要加上salign这个参数<br/><div class="code">&lt;param name=&quot;salign&quot; value=&quot;t/l/r/b&quot; /&gt;</div><br/>它将会以上、下左右等等对齐的方式显示Flash<br/><br/>为了插入通过XHTML 1.0的验证。不想你网页上的Flash有“单击以激活并使用此控件”框，可采用SWFObject的方法插入Flash（有关SWFObject的资料去看<a href="http://www.azuresky.com.cn/post/WebJourney-InsertFlash.php" target="_blank">这里</a>）。<br/>用SWFObject插入在浏览器中全屏显示Flash的方法也是设置宽与高为100%<br/><br/>Tags - <a href="http://www.azuresky.com.cn/go.php/tags/flash/" rel="tag">flash</a> , <a href="http://www.azuresky.com.cn/go.php/tags/code/" rel="tag">code</a>
]]>
</description>
</item><item>
<link>http://www.azuresky.com.cn/post/WebSiteLog-StyleReplacementTTFlying.php</link>
<title><![CDATA[把Azuresky BLOG换回我自己最初的风格]]></title> 
<author>Tim &lt;tim@azuresky.cn&gt;</author>
<category><![CDATA[站点日志]]></category>
<pubDate>Sat, 22 Mar 2008 03:32:50 +0000</pubDate> 
<guid>http://www.azuresky.com.cn/post/WebSiteLog-StyleReplacementTTFlying.php</guid> 
<description>
<![CDATA[ 
	由于审美观还是以简洁清新为主。<br/>所以昨天把风格恢复到TTFlying，待以后制作出符合我自己的Style后再进行更换。<br/>相信不会很久，等有空了，就开始制作新的Template。<br/><br/><a href="http://www.azuresky.com.cn/attachment.php?fid=110" target="_blank"><img src="http://www.azuresky.com.cn/attachment.php?fid=110" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0" width="450" height="281"/></a>
]]>
</description>
</item><item>
<link>http://www.azuresky.com.cn/post/WebJourney-SeoPingInterfaceAddress.php</link>
<title><![CDATA[博客SEO必知：搜索引擎Ping服务的一些地址]]></title> 
<author>Tim &lt;tim@azuresky.cn&gt;</author>
<category><![CDATA[Web之旅]]></category>
<pubDate>Fri, 21 Mar 2008 07:24:44 +0000</pubDate> 
<guid>http://www.azuresky.com.cn/post/WebJourney-SeoPingInterfaceAddress.php</guid> 
<description>
<![CDATA[ 
	<strong>Ping服务</strong><br/>Ping 服务是一种通知“博客搜索引擎”某一博客内容已经更新的通知服务。<br/>当blog作者在发表更新文章时，这些更新将通知搜索引擎<br/>使搜索引擎能及时以最快的时间内收录更新你Blog的文章。<br/>以上能体现Ping服务对SEO的重要性。<br/><br/><strong>Ping服务分</strong><br/>　- 手动Ping服务<br/>　- 自动Ping服务<br/><br/><strong>手动Ping服务</strong><br/>当发布或更新你的Blog文章后<br/>在博客搜索引擎提供的手动Ping服务页面提交一次Blog的地址或Blog的RSS地址即可。<br/><br/><strong>自动Ping服务</strong><br/>以博客搜索引擎提供的Ping Server API将Blog内容的更新通知给搜索引擎<br/>无需每次更新Blog后都手动进行更新通知，这对于经常更新Blog内容的用户尤其有用。<br/><br/>......<br/>............<br/><br/>Tags - <a href="http://www.azuresky.com.cn/go.php/tags/seo/" rel="tag">seo</a>
]]>
</description>
</item><item>
<link>http://www.azuresky.com.cn/post/Abstract-AppleSafari31Download.php</link>
<title><![CDATA[Apple(苹果)官方已经放出Safari 3.1 正式版下载]]></title> 
<author>Tim &lt;tim@azuresky.cn&gt;</author>
<category><![CDATA[网络摘要]]></category>
<pubDate>Thu, 20 Mar 2008 11:28:16 +0000</pubDate> 
<guid>http://www.azuresky.com.cn/post/Abstract-AppleSafari31Download.php</guid> 
<description>
<![CDATA[ 
	<a href="http://www.azuresky.com.cn/attachment.php?fid=108" target="_blank"><img src="http://www.azuresky.com.cn/attachment.php?fid=108" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0" width="400" height="164"/></a><br/><br/><strong><a href="http://www.apple.com" target="_blank">Apple官方网</a>放出了Safari 3.1 正式版本的下载</strong><br/><br/>Safari 3.1<br/>支持新一代的因特网视频、音频、与动画标准，能够提供尽可能最佳的Web 2.0浏览体验。 <br/>并支持全部范围普及的互联网插件-包括Flash、Shockwave和QuickTime（CSS3 Web字体支持、CSS动画支持、HTML 5的媒体支持等...）<br/>............<br/><br/>Tags - <a href="http://www.azuresky.com.cn/go.php/tags/apple/" rel="tag">apple</a> , <a href="http://www.azuresky.com.cn/go.php/tags/safari/" rel="tag">safari</a>
]]>
</description>
</item><item>
<link>http://www.azuresky.com.cn/post/Abstract-ClassicLogoWeb2Style.php</link>
<title><![CDATA[经典Logo改造成Web2.0样式]]></title> 
<author>Tim &lt;tim@azuresky.cn&gt;</author>
<category><![CDATA[网络摘要]]></category>
<pubDate>Thu, 20 Mar 2008 09:46:50 +0000</pubDate> 
<guid>http://www.azuresky.com.cn/post/Abstract-ClassicLogoWeb2Style.php</guid> 
<description>
<![CDATA[ 
	Web2.0样式风行，现在不知道哪位朋友把一些品牌的经典Logo改造成Web2.0样式！<br/>这些图片好像是一年前左右的了！现在贴出来欣赏欣赏！<br/><br/><a href="http://www.azuresky.com.cn/attachment.php?fid=109" target="_blank"><img src="http://www.azuresky.com.cn/attachment.php?fid=109" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0" width="220" height="220"/></a><a href="http://www.azuresky.com.cn/attachment.php?fid=99" target="_blank"><img src="http://www.azuresky.com.cn/attachment.php?fid=99" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0" width="220" height="220"/></a><br/><a href="http://www.azuresky.com.cn/attachment.php?fid=102" target="_blank"><img src="http://www.azuresky.com.cn/attachment.php?fid=102" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0" width="220" height="220"/></a><a href="http://www.azuresky.com.cn/attachment.php?fid=105" target="_blank"><img src="http://www.azuresky.com.cn/attachment.php?fid=105" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0" width="220" height="220"/></a><br/><a href="http://www.azuresky.com.cn/attachment.php?fid=106" target="_blank"><img src="http://www.azuresky.com.cn/attachment.php?fid=106" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0" width="220" height="220"/></a><a href="http://www.azuresky.com.cn/attachment.php?fid=104" target="_blank"><img src="http://www.azuresky.com.cn/attachment.php?fid=104" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0" width="220" height="220"/></a><br/>............<br/><br/>Tags - <a href="http://www.azuresky.com.cn/go.php/tags/%25E7%25BB%258F%25E5%2585%25B8/" rel="tag">经典</a>
]]>
</description>
</item><item>
<link>http://www.azuresky.com.cn/post/Abstract-IE8Beta1.php</link>
<title><![CDATA[横空出世IE 8.0 Beta1安装与新体验]]></title> 
<author>Tim &lt;tim@azuresky.cn&gt;</author>
<category><![CDATA[网络摘要]]></category>
<pubDate>Tue, 11 Mar 2008 08:39:41 +0000</pubDate> 
<guid>http://www.azuresky.com.cn/post/Abstract-IE8Beta1.php</guid> 
<description>
<![CDATA[ 
	IE7还没有普及，现在微软又继续推出了IE 8.0 Beta1来刺激用户！<br/>这些年浏览器这块版，被分成4份。<br/><a href="http://www.azuresky.com.cn/attachment.php?fid=89" target="_blank"><img src="http://www.azuresky.com.cn/attachment.php?fid=89" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0" align="right"/></a><br/><br/>有微软的代表IE（Internet Explorer）<br/>还有“热火朝天”的FF（Firefox）<br/>从手机平台发展到Windows平台的Opera<br/>还有来势汹汹的Apple Safari。<br/><br/><br/>当然其中最火热的还属IE与FF之间的战争！<br/>Firefox 3 已经到了Beta 3了； 微软也不甘心落后，现在推出了IE 8.0 Beta1决心与之抗衡。誓把遗失之地争取回来？<br/>............<br/><br/>Tags - <a href="http://www.azuresky.com.cn/go.php/tags/microsoft/" rel="tag">microsoft</a>
]]>
</description>
</item><item>
<link>http://www.azuresky.com.cn/post/Creation-SomeFormDesign.php</link>
<title><![CDATA[两个课程期末设计的窗体界面]]></title> 
<author>Tim &lt;tim@azuresky.cn&gt;</author>
<category><![CDATA[我的作品]]></category>
<pubDate>Thu, 06 Mar 2008 14:11:09 +0000</pubDate> 
<guid>http://www.azuresky.com.cn/post/Creation-SomeFormDesign.php</guid> 
<description>
<![CDATA[ 
	<a href="post/Creation_SomeFormDesign.php" target="_self" title="课程期末设计的窗体界面"><img src="http://www.azuresky.com.cn/attachment/200803/1204812414_1199ff6d.jpg" border="0" alt="课程期末设计的窗体界面" /></a><br/>............<br/><br/>Tags - <a href="http://www.azuresky.com.cn/go.php/tags/design/" rel="tag">design</a> , <a href="http://www.azuresky.com.cn/go.php/tags/%25E8%25AE%25BE%25E8%25AE%25A1/" rel="tag">设计</a>
]]>
</description>
</item><item>
<link>http://www.azuresky.com.cn/post/Abstract-AdobePhotoshopStartInterface.php</link>
<title><![CDATA[Adobe Photoshop历代启动界面回顾(截至07年的CS3) ]]></title> 
<author>Tim &lt;tim@azuresky.cn&gt;</author>
<category><![CDATA[网络摘要]]></category>
<pubDate>Wed, 05 Mar 2008 10:43:36 +0000</pubDate> 
<guid>http://www.azuresky.com.cn/post/Abstract-AdobePhotoshopStartInterface.php</guid> 
<description>
<![CDATA[ 
	<strong>Adobe Photoshop有着很悠久的版本历史，本文将介绍Photoshop各版本启动画面。</strong><br/><br/>前身与Photoshop0.87-3.0版本的启动界面<br/>......<br/>Photoshop4.0-7.0版本的启动界面<br/>......<br/>Photoshop CS-CS3(8.0-10.0)版本的启动界面，改称为Photoshop Creative Suite(Photoshop CS)。<br/>......<br/>............<br/><br/>Tags - <a href="http://www.azuresky.com.cn/go.php/tags/adobe/" rel="tag">adobe</a> , <a href="http://www.azuresky.com.cn/go.php/tags/%25E8%25AE%25BE%25E8%25AE%25A1/" rel="tag">设计</a> , <a href="http://www.azuresky.com.cn/go.php/tags/design/" rel="tag">design</a> , <a href="http://www.azuresky.com.cn/go.php/tags/%25E5%258E%2586%25E5%258F%25B2%25E8%25A7%2581%25E8%25AF%2581/" rel="tag">历史见证</a>
]]>
</description>
</item><item>
<link>http://www.azuresky.com.cn/post/WebJourney-IE7JSIE8JS.php</link>
<title><![CDATA[解决IE5、IE6、IE7与W3C标准的冲突(IE7.js IE8.js)]]></title> 
<author>Tim &lt;tim@azuresky.cn&gt;</author>
<category><![CDATA[Web之旅]]></category>
<pubDate>Fri, 22 Feb 2008 15:34:46 +0000</pubDate> 
<guid>http://www.azuresky.com.cn/post/WebJourney-IE7JSIE8JS.php</guid> 
<description>
<![CDATA[ 
	如果分别用IE5、IE6、IE7浏览同一个网页，将可能出现不一样的效果。<br/>这是它们之间对CSS的解析选择器不一样或错误和个别bug所导致。为了解决这些错误和bug。<br/>我们不得不找到一个能平衡于它们之间的解决方法。<br/><br/>如png透明问题在IE5、IE6下无法显示出其效果，我们可能会使用CSS hack或者引入外部JavaScript来实现。譬如前面我提到过用pngfix的那个方法就是调用外部JavaScript来解决在IE5、IE6下png透明问题。当然还有更多的方法。<br/><br/>而现在有种更加完美的方法能兼容IE5、IE6、IE7的CSS选择器解析不一样问题。那就是： <strong>ie7 - js</strong><br/><br/>ie7 - js中是一个JavaScript库（解决IE与W3C标准的冲突的JS库），使微软的Internet Explorer的行为像一个Web标准兼容的浏览器，支持更多的W3C标准，支持CSS2、CSS3选择器。它修复了许多的HTML和CSS问题，并使得透明PNG在IE5、IE6下正确显示。<br/><br/>目前该ie7 - js版本： 2.0 beta 3<br/><br/><strong>用法：</strong><br/>直接引用Google Code服务器上的js文件。<br/><br/><strong>IE7.js</strong><br/>使IE5、IE6升级至兼容IE7<br/>注释使Internet Explorer版本号低于IE7的IE浏览器载入该代码。<br/><div class="code"><br/>&lt;!--&#91;if lt IE 7&#93;&gt;<br/>&lt;script src=&quot;http://ie7-js.googlecode.com/svn/version/2.0(beta3)/IE7.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;<br/>&lt;!&#91;endif&#93;--&gt;<br/></div><br/><br/><strong>IE8.js</strong><br/>使IE5、IE6、IE7支持更多的W3C标准（修复了许多的HTML和CSS问题）。<br/>注释使Internet Explorer版本号小于8的IE浏览器载入该代码，而其它符合标准的浏览器则会忽略该代码，并在IE8出来后不干扰其工作。<br/><div class="code"><br/>&lt;!--&#91;if lt IE 8&#93;&gt;<br/>&lt;script src=&quot;http://ie7-js.googlecode.com/svn/version/2.0(beta3)/IE8.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;<br/>&lt;!&#91;endif&#93;--&gt;<br/></div><br/><br/><strong>PNG</strong><br/>此脚本仅修复了图像命名为：*-trans.png<br/>遗憾的是，此方法透明的PNG图像不能平铺（重复）使用在背景上；也不能用在CSS “position”定位属性上 。<br/><br/><strong>除了直接引用Google Code服务器上的js文件外，如果你愿意你也可以下载然后引入</strong><br/>2.0 beta 3下载地址页面：<a href="http://ie7-js.googlecode.com/svn/version/2.0(beta3)/" target="_blank">http://ie7-js.googlecode.com/svn/version/2.0(beta3)/</a><br/>右击另存下载地址：<a href="http://ie7-js.googlecode.com/svn/version/2.0(beta3)/IE7.js" target="_blank">IE7.js</a><a href="http://ie7-js.googlecode.com/svn/version/2.0(beta3)/IE8.js" target="_blank">IE8.js</a><br/><br/>演示：<br/><a href="http://ie7-js.googlecode.com/svn/test/index.html" target="_blank">http://ie7-js.googlecode.com/svn/test/index.html</a><br/>Tags - <a href="http://www.azuresky.com.cn/go.php/tags/code/" rel="tag">code</a> , <a href="http://www.azuresky.com.cn/go.php/tags/javascript/" rel="tag">javascript</a>
]]>
</description>
</item><item>
<link>http://www.azuresky.com.cn/post/Abstract-AppleSafari35259ForWindows.php</link>
<title><![CDATA[Apple Safari 3.1 (525.9)苹果浏览器简体中文版for Windows]]></title> 
<author>Tim &lt;tim@azuresky.cn&gt;</author>
<category><![CDATA[网络摘要]]></category>
<pubDate>Thu, 21 Feb 2008 11:50:10 +0000</pubDate> 
<guid>http://www.azuresky.com.cn/post/Abstract-AppleSafari35259ForWindows.php</guid> 
<description>
<![CDATA[ 
	Apple最近频繁更新了Safari, 与2月15日, 发布Windows发布的同时还有 Tiger 与 Leopard 版的 Safari.<br/><br/><a href="http://www.azuresky.com.cn/attachment.php?fid=58" target="_blank"><img src="http://www.azuresky.com.cn/attachment.php?fid=58" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0" width="400" height="164"/></a><br/>Digidea朋友立即对其进行完善<br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content">这阵子 Apple 动作好快, 几天不看居然又更新了, 日期是 2 月 15 日, 同时发布的还有 Tiger 与 Leopard 版的 Safari. <br/><br/>此次变化不大, 在上一个全语言版的基础上, 除了常规的 WebKit 内核更新, 对语言文件又进行了一些完善, 就 Safari 目前的功能来看, 几乎可以说是完美了. 我又修改了替换用的中文字体, 相信显示效果应该能更好一些.<br/><br/><br/><strong>官方更新日志</strong><br/><br/>- Huge plain text pastes are now much faster<br/>- Photo uploading to auction websites now works<br/>- Safari now logs unsafe javascript to system log<br/>- Writing direction shortcuts now implemented<br/><br/>因为 Safari 的界面根据系统环境而定, 因此在这里我将系统与软件语言的关系说明一下.<br/><br/><strong>系统语言↓ Safari 语言↓ 所需操作↓</strong><br/><br/><strong>英语 英语</strong> 无需安装语言包<br/><strong>英语 简中</strong> 安装语言包后将所有目录中 zh_CN.lproj 文件夹内的文件复制到 English.lproj 或 en.lproj 内<br/><strong>英语 繁中</strong> 安装语言包后将所有目录中 zh_TW.lproj 文件夹内的文件复制到 English.lproj 或 en.lproj 内<br/><strong>简中 英语</strong> 无需安装语言包并将所有目录内除 English.lproj 或 en.lproj 外并以 .lproj 结尾的文件夹删除<br/><strong>简中 简中</strong> 安装语言包即可<br/><strong>简中 繁中</strong> 安装语言包后将所有目录中 zh_TW.lproj 文件夹内的文件复制到 zh_CN.lproj 内<br/><strong>繁中 英语</strong> 无需安装语言包并将所有目录内除 English.lproj 或 en.lproj 外并以 .lproj 结尾的文件夹删除<br/><strong>繁中 简中</strong> 安装语言包后将所有目录中 zh_CN.lproj 文件夹内的文件复制到 zh_TW.lproj 内<br/><strong>繁中 繁中</strong> 安装语言包即可<br/><strong>其他 英语</strong> 无需安装语言包并将所有目录内除 English.lproj 或 en.lproj 外并以 .lproj 结尾的文件夹删除<br/><strong>其他 简中</strong> 安装语言包后将所有目录中 zh_CN.lproj 文件夹内的文件复制到 English.lproj 或 en.lproj 内并将除 English.lproj 或 en.lproj 外以 .lproj 结尾的文件夹删除<br/><strong>其他 繁中</strong> 安装语言包后将所有目录中 zh_TW.lproj 文件夹内的文件复制到 English.lproj 或 en.lproj 内并将除 English.lproj 或 en.lproj 外以 .lproj 结尾的文件夹删除<br/></div></div><br/><br/><strong>SkyDrive 下载地址：</strong><br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content"><a href="http://cid-f38a6544bcb5a338.skydrive.live.com/self.aspx/Safari/SafariSetup_D080218.7z" target="_blank">Apple Safari 3.1 (525.9)下载</a></div></div><br/>Tags - <a href="http://www.azuresky.com.cn/go.php/tags/apple/" rel="tag">apple</a> , <a href="http://www.azuresky.com.cn/go.php/tags/safari/" rel="tag">safari</a>
]]>
</description>
</item><item>
<link>http://www.azuresky.com.cn/post/WebSiteLog-AuroraNight.php</link>
<title><![CDATA[AuroraNight风格投入使用]]></title> 
<author>Tim &lt;tim@azuresky.cn&gt;</author>
<category><![CDATA[站点日志]]></category>
<pubDate>Wed, 20 Feb 2008 07:26:24 +0000</pubDate> 
<guid>http://www.azuresky.com.cn/post/WebSiteLog-AuroraNight.php</guid> 
<description>
<![CDATA[ 
	于2月13日开始制作NewYearNight的续作AuroraNight极光夜晚<br/>期间在2月14日发布给bo-blog的blogger们使用，期间经过5、6次修改。<br/><br/>本准备刚好过了正月十五后才开始投入Blog使用，现提前一天投入使用！<br/><br/><br/>即时截图：<br/><a href="http://www.azuresky.com.cn/attachment/200802/auroranightB.jpg" target="_blank"><img src="http://www.azuresky.com.cn/attachment/200802/auroranightB.jpg" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0" width="400" height="203"/></a>
]]>
</description>
</item><item>
<link>http://www.azuresky.com.cn/post/WebJourney-PngTransparentInIE6.php</link>
<title><![CDATA[使PNG图片格式在IE6中背景透明(pngfix)]]></title> 
<author>Tim &lt;tim@azuresky.cn&gt;</author>
<category><![CDATA[Web之旅]]></category>
<pubDate>Wed, 20 Feb 2008 07:06:56 +0000</pubDate> 
<guid>http://www.azuresky.com.cn/post/WebJourney-PngTransparentInIE6.php</guid> 
<description>
<![CDATA[ 
	很多朋友在制作网页时都会用到图片透明。使其部分透明的图片后面显示背景部分。<br/>而现在流行的具有透明性的图片有GIF和PNG两种非常普及格式。<br/><br/>GIF(Graphics Interchange Format图像互换格式)可实现图像区域的部分或全局透明。现非常多的网站都将其运用到其中。<br/>但是256色的限制GIF的使用范围。还有一个问题：譬如，当我们的图像边缘有阴影时，保存透明后会发现其边缘不是以渐变式透明显示，而是用灰度色显示而无透明而言。<br/><br/>解决上面GIF的缺陷方案最好方法就是使用现在网络上流行使用的另一种图像格式PNG(Portable Network Graphic Format流式网络图形格式)<br/>但是PNG最大的问题就是，它在IE6下无法显示透明区域（Firefox、Opera、Safari均支持PNG透明），会有一种灰白色代替成为其背景色。这不是PNG这个格式图片的问题，而是IE6的BUG，没有将PNG的Alpha通道打开,造成透明PNG图片的在IE6上显示不出透明区域。<br/><br/>现在就有种方法是通过引入JavaScript的方式解决这个问题。<br/><br/>第一步：<br/>新建一个pngfix.js文件写入以下代码（放在你网页的相同目录下）：<br/><div class="code"><br/>var PIXELGIF=&quot;pngfix.gif&quot;;// 这个是个头1*1像素的透明gif图片，请自行建立并放在你网页的相同目录下<br/><br/>var arVersion = navigator.appVersion.split(&quot;MSIE&quot;);<br/>var version = parseFloat(arVersion&#91;1&#93;);<br/>var pngxp=/&#92;.png$/i;<br/>var AlphaPNGfix= &quot;progid:DXImageTransform.Microsoft.AlphaImageLoader&quot;;<br/>function fixPNGAll() &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!document.all) return;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ((version &gt;= 5.5 &amp;&amp; version &lt; 7) &amp;&amp; (document.body.filters)) &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(var i=0; i&lt;document.images.length; i++) &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var img = document.images&#91;i&#93;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(img.src &amp;&amp; pngxp.test(img.src)) &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var imgName = img.src;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var imgID = (img.id) ? &quot;id=&#039;&quot; + img.id + &quot;&#039; &quot; : &quot;&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var imgClass = (img.className) ? &quot;class=&#039;&quot; + img.className + &quot;&#039; &quot; : &quot;&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var imgTitle = (img.title) ? &quot;title=&#039;&quot; + img.title + &quot;&#039; &quot; : &quot;title=&#039;&quot; + img.alt + &quot;&#039; &quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var imgStyle = &quot;display:inline-block;&quot; + img.style.cssText;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (img.align == &quot;left&quot;) imgStyle = &quot;float:left;&quot; + imgStyle;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (img.align == &quot;right&quot;) imgStyle = &quot;float:right;&quot; + imgStyle;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (img.parentElement.href) imgStyle = &quot;cursor:hand;&quot; + imgStyle;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var strNewHTML = &quot;&lt;span &quot; + imgID + imgClass + imgTitle<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+ &quot; style=&#92;&quot;&quot; + &quot;width:&quot; + img.width + &quot;px; height:&quot; + img.height + &quot;px;&quot; + imgStyle + &quot;;&quot;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+ &quot;filter:&quot; +AlphaPNGfix<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+ &quot;(src=&#039;&quot; + img.src + &quot;&#039;, sizingMethod=&#039;scale&#039;);&#92;&quot;&gt;&lt;/span&gt;&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (img.useMap) &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strNewHTML += &quot;&lt;img style=&#92;&quot;position:relative; left:-&quot; + img.width + &quot;px;&quot;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+ &quot;height:&quot; + img.height + &quot;px;width:&quot; + img.width +&quot;&#92;&quot; &quot;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+ &quot;src=&#92;&quot;&quot; + PIXELGIF + &quot;&#92;&quot; usemap=&#92;&quot;&quot; + img.useMap <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+ &quot;&#92;&quot; border=&#92;&quot;&quot; + img.border + &quot;&#92;&quot;&gt;&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;img.outerHTML = strNewHTML;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i--;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/* for type=image png button */<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var kmax = document.forms.length;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(var k=0; k&lt;kmax; k++) &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var fmob = document.forms&#91;k&#93;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var elmarr = fmob.getElementsByTagName(&quot;input&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var jmax = elmarr.length;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(var j=0; j&lt;jmax; j++) &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var elmob = elmarr&#91;j&#93;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(elmob &amp;&amp; elmob.type==&quot;image&quot; &amp;&amp; pngxp.test(elmob.src)) &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var origsrc = elmob.src;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elmob.src = PIXELGIF;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elmob.style.filter = AlphaPNGfix+&quot;(src=&#039;&quot; +origsrc +&quot;&#039;)&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&#125;<br/><br/>function fixPNG(img) &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!document.all) return;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var img;<br/>&nbsp;&nbsp;&nbsp;&nbsp;if(img &amp;&amp; img.src &amp;&amp; pngxp.test(img.src)) &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var imgName = img.src;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var imgID = (img.id) ? &quot;id=&#039;&quot; + img.id + &quot;&#039; &quot; : &quot;&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var imgClass = (img.className) ? &quot;class=&#039;&quot; + img.className + &quot;&#039; &quot; : &quot;&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var imgTitle = (img.title) ? &quot;title=&#039;&quot; + img.title + &quot;&#039; &quot; : &quot;title=&#039;&quot; + img.alt + &quot;&#039; &quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var imgStyle = &quot;display:inline-block;&quot; + img.style.cssText;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (img.align == &quot;left&quot;) imgStyle = &quot;float:left;&quot; + imgStyle;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (img.align == &quot;right&quot;) imgStyle = &quot;float:right;&quot; + imgStyle;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (img.parentElement.href) imgStyle = &quot;cursor:hand;&quot; + imgStyle;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var strNewHTML = &quot;&lt;span &quot; + imgID + imgClass + imgTitle<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+ &quot; style=&#92;&quot;&quot; + &quot;width:&quot; + img.width + &quot;px; height:&quot; + img.height + &quot;px;&quot; + imgStyle + &quot;;&quot;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+ &quot;filter:&quot; +AlphaPNGfix<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+ &quot;(src=&#039;&quot; + img.src + &quot;&#039;, sizingMethod=&#039;scale&#039;);&#92;&quot;&gt;&lt;/span&gt;&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (img.useMap) &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strNewHTML += &quot;&lt;img style=&#92;&quot;position:relative; left:-&quot; + img.width + &quot;px;&quot;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+ &quot;height:&quot; + img.height + &quot;px;width:&quot; + img.width +&quot;&#92;&quot; &quot;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+ &quot;src=&#92;&quot;&quot; + PIXELGIF + &quot;&#92;&quot; usemap=&#92;&quot;&quot; + img.useMap <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+ &quot;&#92;&quot; border=&#92;&quot;&quot; + img.border + &quot;&#92;&quot;&gt;&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;img.outerHTML = strNewHTML;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&#125;<br/></div><br/>第二步：<br/>在head标签中引入js文件<br/><div class="code">&lt;script language=&quot;JavaScript&quot; src=&quot;pngfix.js&quot;&gt;&lt;/script&gt;</div><br/><br/>第三步（分两种情况）：<br/>1、指定PNG图片使其在IE6下背景透明<br/>在img标签中加入onload="fixPNG(this)"事件<br/><div class="code">&lt;img src=&quot;Name.png&quot; alt=&quot;Name&quot;&nbsp;&nbsp;onload=&quot;fixPNG(this)&quot; /&gt;</div><br/>2、页面内所有PNG图片使其在IE6下背景透明<br/>在body表情中加入onload="fixPNGAll()"事件<br/><div class="code">&lt;body onload=&quot;fixPNGAll()&quot;&gt;</div><br/><br/>需要注意的是：<br/>如果你的网页需要符合XHTML 1.0标准的话，请用第三步中的2方法，因为1方法中img标签中的onload事件是不符合XHTML 1.0标准的<br/><br/><strong>特殊情况</strong>（用PNG为button按钮的背景时）：<br/>如果你要在input标签的背景中使用PNG图片，此js文件同样适用。<br/><br/>先在head标签中引入js文件<br/><div class="code">&lt;script language=&quot;JavaScript&quot; src=&quot;pngfix.js&quot;&gt;&lt;/script&gt;</div><br/><br/>在body标签中加入onload="fixPNGAll()"事件<br/><div class="code">&lt;body onload=&quot;fixPNGAll()&quot;&gt;</div><br/>示例<br/><div class="code">&lt;input type=&quot;image&quot; src=&quot;Name.png&quot; /&gt;</div><br/><br/>其实还有其他一些方法也能解决PNG图片格式在IE6中背景透明的问题，Tim将下次跟大家共同探讨。<br/>Tags - <a href="http://www.azuresky.com.cn/go.php/tags/javascript/" rel="tag">javascript</a> , <a href="http://www.azuresky.com.cn/go.php/tags/code/" rel="tag">code</a>
]]>
</description>
</item><item>
<link>http://www.azuresky.com.cn/post/WebJourney-AlexaRankAccessMillions.php</link>
<title><![CDATA[Alexa的Traffic Rank突进到一百四十万内]]></title> 
<author>Tim &lt;tim@azuresky.cn&gt;</author>
<category><![CDATA[站点日志]]></category>
<pubDate>Mon, 18 Feb 2008 07:07:30 +0000</pubDate> 
<guid>http://www.azuresky.com.cn/post/WebJourney-AlexaRankAccessMillions.php</guid> 
<description>
<![CDATA[ 
	从在Alexa有Traffic Rank的12583052名到现在的1392008名有不错的进步，希望能再接再厉，突进十万。<br/><br/>截图：<br/><a href="http://www.azuresky.com.cn/attachment.php?fid=57" target="_blank"><img src="http://www.azuresky.com.cn/attachment.php?fid=57" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0" width="400" height="370"/></a>
]]>
</description>
</item><item>
<link>http://www.azuresky.com.cn/post/WebJourney-AlexaRankingsImprove.php</link>
<title><![CDATA[用来提高Alexa排名的几个有效方法]]></title> 
<author>Tim &lt;tim@azuresky.cn&gt;</author>
<category><![CDATA[Web之旅]]></category>
<pubDate>Sun, 17 Feb 2008 10:34:50 +0000</pubDate> 
<guid>http://www.azuresky.com.cn/post/WebJourney-AlexaRankingsImprove.php</guid> 
<description>
<![CDATA[ 
	这里所说的方法，都是合理合法的，不会受到搜索引擎的惩罚。<br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content"><br/>1、安装Alexa工具条，或者安装Firefox下的SearchStatus插件。并且设置自己的Blog作为默认首页，这样每次你打开浏览器的时候，Alexa统计就开始工作了。<br/><br/>2、把Alexa排名统计的widget放在Blog上，当它被点击的时候，也相当于Alexa统计到一次PV，即使那个用户没有安装Alexa工具条。<br/><br/>3、如果可以的话，在你的公司或者办公室里的电脑里都安装上Alexa工具条。<br/><br/>4、在站长论坛里发贴子的时候留下你的链接，一般站长安装Alexa的较多，当他们访问你的Blog的时候，当然会有帮助。<br/><br/>5、给你的Blog添加一个Alexa分类，把有关Alexa的文章都放在里面，这样站长有更大的机会来到你的Blog，你的排名当然就容易上升。<br/><br/>6、找到你的Blog上最受欢迎的文章，把Alexa的链接添加上，或者使用第五点中所说的重定向链接到你自己内部的文章。<br/><br/>7、提供一些站长工具，这样站长就会经常来造访，并且提高你的Alexa排名，比如SEO 在线工具中的Google PageRank Checker就是一个很好的例子。</div></div><br/><br/><br/>Tags - <a href="http://www.azuresky.com.cn/go.php/tags/seo/" rel="tag">seo</a> , <a href="http://www.azuresky.com.cn/go.php/tags/%25E7%25AB%2599%25E9%2595%25BF/" rel="tag">站长</a> , <a href="http://www.azuresky.com.cn/go.php/tags/alexa/" rel="tag">alexa</a>
]]>
</description>
</item>
</channel>
</rss>