<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<?xml-stylesheet type="text/xsl" href="css/rss.xslt"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>靛海幽蓝的学习笔记本</title><link>http://www.hzyblue.com/blog/</link><description>欢迎来到靛海幽蓝的学习笔记本</description><generator>RainbowSoft Studio Z-Blog 1.8 Spirit Build 80722</generator><language>zh-CN</language><copyright>Copyright 靛海幽蓝 Your WebSite. Some Rights Reserved.浙ICP备07502643号</copyright><pubDate>Mon, 31 May 2010 12:47:03 +0800</pubDate><item><title>点击积累：绝对定位的水平居中</title><author>hzy-duck1986@163.com (靛海幽蓝)</author><link>http://www.hzyblue.com/blog/post/66.html</link><pubDate>Thu, 04 Mar 2010 09:30:39 +0800</pubDate><guid>http://www.hzyblue.com/blog/post/66.html</guid><description><![CDATA[<p>&nbsp;在做某首页的时候碰到一个问题：首页是简单的一个flash文件，但是有一个底栏，版权信息等内容。要把这个底栏的div放到flash上面，即flash区域靠下的位置。</p>
<p>直接给了一个负的margin-top，在IE里是OK的，这个底栏会在flash这个div的上面，但是其他浏览器会跑到flash这个div的下面，也就是文字会被flash遮住。</p>
<p>那么，就考虑到用z-index。但是z-index只对绝对定位的元素有用，那么，将flash和底栏的两个div绝对定位之后，怎么自动水平居中呢？</p>
<p>首先，两者的宽度是确定的，这里是960px，然后设置left:50%;再把左侧的margin设置成负的全部宽度的一半：margin-left:-480px;</p>]]></description><category>网站制作点滴</category><comments>http://www.hzyblue.com/blog/post/66.html#comment</comments><wfw:comment>http://www.hzyblue.com/blog/</wfw:comment><wfw:commentRss>http://www.hzyblue.com/blog/feed.asp?cmt=66</wfw:commentRss><trackback:ping>http://www.hzyblue.com/blog/cmd.asp?act=tb&amp;id=66&amp;key=516b9438</trackback:ping></item><item><title>[转载备份]图层混合模式</title><author>hzy-duck1986@163.com (靛海幽蓝)</author><link>http://www.hzyblue.com/blog/post/65.html</link><pubDate>Sat, 14 Nov 2009 16:25:04 +0800</pubDate><guid>http://www.hzyblue.com/blog/post/65.html</guid><description><![CDATA[<p><span class="Apple-style-span" style="font-family: Simsun; line-height: 21px; font-size: 15px; -webkit-border-horizontal-spacing: 11px; -webkit-border-vertical-spacing: 11px; ">
<p>混合模式可以将两个图层的色彩值紧密结合在一起，从而创造出大量的效果。</p>
<p>混合模式在Photoshop应用中非常广泛，大多数绘画工具或编辑调整工具都可以使用混合模式，所以正确、灵活使用各种混合模式，可以为图像的效果锦上添花。</p>
<p>单击图层混合模式的下拉组合框，将弹出25种混合模式命令的下拉列表菜单，选择不同的混合模式命令，就可以创建不同的混合效果；图层的混合模式是用于控制上下图层的混合效果，在设置混合效果时还需设置图层的不透明度，以下介绍混合模式选项说明的不透明度在100%的前提下。</p>
<p><strong>正常</strong>：该选项可以使上方图层完全遮住下方图层。</p>
<p><strong>溶解</strong>：如果上方图层具有柔和的关透明边缘，选择该项则可以创建像素点状效果。</p>
<p><strong>变暗</strong>：两个图层中较暗的颜色将作为混合的颜色保留，比混合色亮的像素将被替换，而比混合色暗像素保持不变。</p>
<p><strong>正片叠底</strong>：整体效果显示由上方图层和下方图层的像素值中较暗的像素合成的图像效果，任意颜色与黑色重叠时将产生黑色，任意颜色和白色重叠时颜色则保持不变。</p>
<p><strong>颜色加深</strong>：选择该项将降低上方图层中除黑色外的其他区域的对比度，使图像的对比度下降，产生下方图层透过上方图层的投影效果。<br />
线性加深：上方图层将根据下方图层的灰度与图像融合，此模式对白色无效。</p>
<p><strong>深色</strong>：根据上方图层图像的饱和度，然后用上方图层颜色直接覆盖下方图层中的暗调区域颜色。</p>
<p><strong>变亮</strong>：使上方图层的暗调区域变为透明，通过下方的较亮区域使图像更亮。</p>
<p><strong>滤色</strong>：该项与&ldquo;正片叠底&rdquo;的效果相反，在整体效果上显示由上方图层和下方图层的像素值中较亮的像素合成的效果，得到的图像是一种漂白图像中颜色的效果。</p>
<p><strong>颜色减淡</strong>：和&ldquo;颜色加深&rdquo;效果相反，&ldquo;颜色减淡&rdquo;是由上方图层根据下方图层灰阶程序提升亮度，然后再与下方图层融合，此模式通常可以用来创建光源中心点极亮的效果。</p>
<p><strong>线性减淡</strong>：根据每一个颜色通道的颜色信息，加亮所有通道的基色，并通过降低其他颜色的亮度来反映混合颜色，此模式对黑色无效。<br />
浅色：该项与&ldquo;深色&rdquo;的效果相反，此项可根据图像的饱和度，用上方图层中的颜色直接覆盖下方图层中的高光区域颜色。</p>
<p><strong>叠加</strong>：此项的图像最终效果最终取决于下方图层，上方图层的高光区域和暗调将不变，只是混合了中间调。</p>
<p><strong>柔光</strong>：使颜色变亮或变暗让图像具有非常柔和的效果，亮于中性灰底的区域将更亮，暗于中性灰底的区域将更暗。</p>
<p><strong>强光</strong>：此项和&ldquo;柔光&rdquo;的效果类似，但其程序远远大于&ldquo;柔光&rdquo;效果，适用于图像增加强光照射效果。</p>
<p><strong>亮光</strong>：根据融合颜色的灰度减少比对度，可以使图像更亮或更暗。</p>
<p><strong>线性光</strong>：根据事例颜色的灰度，来减少或增加图像亮度，使图像更亮。</p>
<p><strong>点光</strong>：如果混合色比50%灰度色亮，则将替换混合色暗的像素，而不改变混合色亮的像素；反之如果混合色比50%灰度色暗，则将替换混合色亮的像素，而不改变混合色暗的像素。</p>
<p><strong>实色混合</strong>：根据上下图层中图像颜色的分布情况，用两个图层颜色的中间值对相交部分进行填充，利用该模式可以制作出对比度较强的色块效果。</p>
<p><strong>差值</strong>：上方图层的亮区将下方图层的颜色进行反相，暗区则将颜色正常显示出来，效果与原图像是完全相反的颜色。</p>
<p><strong>排除</strong>：创建一种与&ldquo;差值&rdquo;模式类似但对比度更低的效果。与白色混合将反转基色值，与黑色混合则不发生变化。</p>
<p><strong>色相</strong>：由上方图像的混合色的色相和下方图层的亮度和饱和度创建的效果。</p>
<p><strong>饱和度</strong>：由下方图像的亮度和色相以及上方图层混合色的饱和度创建的效果。</p>
<p><strong>颜色</strong>：由下方图像的亮度和上方图层的色相和饱和度创建的效果。这样可以保留图像中的灰阶，对于给单色图像上色和彩色图像着色很有用</p>
<p><strong>亮度</strong>：创建与&ldquo;颜色&rdquo;模式相反的效果，由下方图像的色相和饱和度值及止方图像的亮度所构成。</p>
</span><a target="_blank" href="http://www.blueidea.com/tech/graph/2009/6973_2.asp">来源&nbsp;</a></p>]]></description><category>PS学习笔记</category><comments>http://www.hzyblue.com/blog/post/65.html#comment</comments><wfw:comment>http://www.hzyblue.com/blog/</wfw:comment><wfw:commentRss>http://www.hzyblue.com/blog/feed.asp?cmt=65</wfw:commentRss><trackback:ping>http://www.hzyblue.com/blog/cmd.asp?act=tb&amp;id=65&amp;key=1059c5f1</trackback:ping></item><item><title>《XML 基础教程》读书小记</title><author>hzy-duck1986@163.com (靛海幽蓝)</author><link>http://www.hzyblue.com/blog/post/64.html</link><pubDate>Sun, 20 Sep 2009 20:40:47 +0800</pubDate><guid>http://www.hzyblue.com/blog/post/64.html</guid><description><![CDATA[<p><a href="http://t.douban.com/lpic/s2539261.jpg"><img src="http://t.douban.com/lpic/s2539261.jpg" alt="" /></a></p>
<p>可能我开发方面接触得还是比较少吧，我觉得本书给我的感觉很杂。书中确实涵盖比较广得介绍了XML有关的各方面内容，比如定义，相关标准，web词汇，以及各种典型的对XML的操作。但是属于每个都提一点，具体的例子只有最后两章很简短的例子，我现在.net和php都不懂，自然也不大看得进去。</p>
<p>除了这两个例子，本书剩下的部分，就真的当做工具书来读更适合一点了。</p>
<p>计算机是一门应用类学科，不作出一些实际的例子，终究觉得没什么意思，也较难掌握相关知识。一来此书中，实例的比重低，二来我也确实没有相关语言的基础，所以消化得自然就不大好了</p>]]></description><category>杂七杂八</category><comments>http://www.hzyblue.com/blog/post/64.html#comment</comments><wfw:comment>http://www.hzyblue.com/blog/</wfw:comment><wfw:commentRss>http://www.hzyblue.com/blog/feed.asp?cmt=64</wfw:commentRss><trackback:ping>http://www.hzyblue.com/blog/cmd.asp?act=tb&amp;id=64&amp;key=0eb8763b</trackback:ping></item><item><title>整洁多彩网站界面设计图绘制（二）</title><author>hzy-duck1986@163.com (靛海幽蓝)</author><link>http://www.hzyblue.com/blog/post/63.html</link><pubDate>Fri, 14 Aug 2009 14:22:04 +0800</pubDate><guid>http://www.hzyblue.com/blog/post/63.html</guid><description><![CDATA[<p>接上篇。</p>
<p>接下去画右上角的登录注册按钮。也是一个图层样式的设置。通过这个可以了解到，像这类立体感强的按钮的做法：渐变&mdash;&mdash;突出立体感和高光，阴影&mdash;&mdash;那当然是必须的啦，内发光和描边&mdash;&mdash;我觉得这里的内发光和描边是相配套的，有一个浅色的，范围很小的内发光，外面则用了一个颜色相对较深的做描边。</p>
<p>另外再把下一步画条线的做掉，其他的下次继续~</p>]]></description><category>PS学习笔记</category><comments>http://www.hzyblue.com/blog/post/63.html#comment</comments><wfw:comment>http://www.hzyblue.com/blog/</wfw:comment><wfw:commentRss>http://www.hzyblue.com/blog/feed.asp?cmt=63</wfw:commentRss><trackback:ping>http://www.hzyblue.com/blog/cmd.asp?act=tb&amp;id=63&amp;key=d2b87e2c</trackback:ping></item><item><title>整洁多彩网站界面设计图绘制（一）</title><author>hzy-duck1986@163.com (靛海幽蓝)</author><link>http://www.hzyblue.com/blog/post/62.html</link><pubDate>Thu, 13 Aug 2009 15:52:06 +0800</pubDate><guid>http://www.hzyblue.com/blog/post/62.html</guid><description><![CDATA[<p>国外不少优秀的教程，内容很详细，有一些完整的网站界面设计过程，比较长，我就分期写出吧。</p>
<p>这些教程的特点还是一样，过程很详细，但是完全没有解释。</p>
<p>这个教程的原地址：<a href="http://www.tutorial9.net/photoshop/create-a-clean-and-colorful-web-layout-in-photoshop/" title="Create a Clean and Colorful Web Layout in Photoshop">Create a Clean and Colorful Web Layout in Photoshop</a></p>
<p>首先按照教程，添加背景的渐变和顶部的彩色，顶部的彩色自己随机处理吧，做出来肯定不会跟他完全一样的。</p>
<p>接着，加入树叶之后，对其添加的两个滤镜在中文版里是艺术效果&mdash;胶片颗粒和像素化&mdash;马赛克。</p>
<p><strong><br />
</strong><strong>胶片颗粒</strong>：给原图像加上一些杂色的同时，调亮并强调图像的局部像素。它可以产生一种类似胶片颗粒的纹理效果，使图像看起来如同早期的摄影作品。</p>
<p>（Grain）颗粒：调整图像的颗粒，数值越大颗粒效果越清晰。</p>
<p>（Highlight Area）高光区域：调整当前图像的高光区域。</p>
<p>（Lntensity）强度：当前图像颗粒的强度。数值越小，效果越清晰。</p>
<p>&nbsp;</p>
<p><strong>马赛克</strong>就是将像素分组并转换成颜色单一的方块，产生马赛效果，下面唯一一个选项 														Call Size，用来 控制方块的大小。网上的解释2：把影像处理成马赛克的效果。在弹出式菜单里设定一个值，像素的平方，这个值就是处理后影像的一个最小的可视单元，也就是马赛克的大小，这个滤镜将统一各个单元内的色彩，形成马赛克效果。</p>
<p>综合员教程中的几个数值设置来看，我认为作者是需要一种模糊的、稍微有点颗粒及马赛克效果的图像，所以胶片颗粒的高光区域设置为0，其他都设置了相应的一定数值。</p>
<p>&nbsp;</p>
<p>下面黑色背景就是一个投影效果，没什么好说的，但是注意现在我们要的是一个微微向外扩张的投影，每个面都一样，所以投影的距离和扩展为0，主要看大小，这里和角度是没有关系的。</p>
<p>接下来对这些图层分组，这是个好习惯，快捷键：ctrl+g</p>
<p>然后按照提示设置博客名的样式，到现在为止，我的效果：</p>
<p><img alt="" src="http://photo2.bababian.com/upload1/20090813/662349BE95F5D603D092A1058B86CE5E.jpg" /></p>
<p>&nbsp;</p>
<p>&nbsp;</p>]]></description><category>PS学习笔记</category><comments>http://www.hzyblue.com/blog/post/62.html#comment</comments><wfw:comment>http://www.hzyblue.com/blog/</wfw:comment><wfw:commentRss>http://www.hzyblue.com/blog/feed.asp?cmt=62</wfw:commentRss><trackback:ping>http://www.hzyblue.com/blog/cmd.asp?act=tb&amp;id=62&amp;key=bd9b6502</trackback:ping></item><item><title>JavaScript DOM 编程艺术 contact.js</title><author>hzy-duck1986@163.com (靛海幽蓝)</author><link>http://www.hzyblue.com/blog/post/61.html</link><pubDate>Tue, 28 Jul 2009 16:16:04 +0800</pubDate><guid>http://www.hzyblue.com/blog/post/61.html</guid><description><![CDATA[<blockquote>
<p>function focusLabels(){<br />
&nbsp;&nbsp;&nbsp; if(!document.getElementsByTagName) return false;<br />
&nbsp;&nbsp;&nbsp; var labels = document.getElementsByTagName(&quot;label&quot;);<br />
&nbsp;&nbsp;&nbsp; for (var i=0; i&lt;labels.length; i++) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if(!labels[i].getAttribute(&quot;for&quot;)) continue;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; labels[i].onclick = function() {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var id = this.getAttribute(&quot;for&quot;);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (!document.getElementById(id)) return false;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var element =document.getElementById(id);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; element.focus();<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }<br />
}</p>
<p>&nbsp;</p>
</blockquote>
<p>&nbsp;</p>
<blockquote>
<p><br />
function resetFields(whichform){<br />
&nbsp;&nbsp;&nbsp; for(var i=0; i &lt; whichform.elements.length; i++){<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var element = whichform.elements[i];<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if(element.type == &quot;submit&quot;) continue;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if(!element.defaultValue) continue;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; element.onfocus = function() {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if(this.value == this.defaultValue) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; this.value = &quot;&quot;;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; element.onblur = function (){<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if(this.value == &quot;&quot;){<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; this.value = this.defaultValue;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }<br />
}</p>
</blockquote>
<p>&nbsp;</p>
<blockquote>
<p><br />
function prepareForms() {<br />
&nbsp;&nbsp;&nbsp; for(var i=0;i &lt; document.forms.length; i++){<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var thisform = document.forms[i];<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; resetFields(thisform);<br />
&nbsp;&nbsp;&nbsp; }<br />
}</p>
</blockquote>
<p>&nbsp;</p>
<blockquote>
<p><br />
function validateForm(whichform) {<br />
&nbsp;&nbsp;&nbsp; for(var i=0; i &lt; whichform.elements.length; i++) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var element = whichform.elements[i];<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (element.className.indexOf(&quot;required&quot;) !=-1) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if(!isFilled(element)) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; alert(&quot;Please fill in the &quot;+element.name+&quot; field.&quot;);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return false;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (element.className.indexOf(&quot;email&quot;) !=-1) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (!isEmail(element)) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; alert(&quot;The &quot;+element.name+&quot; field must be a valid email address.&quot;);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return false;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; return true;<br />
}</p>
</blockquote>
<p>&nbsp;</p>
<blockquote>
<p><br />
function isFilled(field) {<br />
&nbsp;&nbsp;&nbsp; if(field.value.length &lt; 1 || field.value == field.defaultValue) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return false;<br />
&nbsp;&nbsp;&nbsp; } else {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return true;<br />
&nbsp;&nbsp;&nbsp; }<br />
}</p>
</blockquote>
<p>&nbsp;</p>
<blockquote>
<p><br />
function isEmail(field) {<br />
&nbsp;&nbsp;&nbsp; if (field.value.indexOf(&quot;@&quot;) == -1 || field.value.indexOf(&quot;.&quot;) == -1)<br />
&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp; return false;<br />
&nbsp;&nbsp;&nbsp; }else {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return true;<br />
&nbsp;&nbsp;&nbsp; }<br />
}<br />
&nbsp;</p>
</blockquote>
<p>&nbsp;</p>
<blockquote>
<p><br />
<br />
function prepareForms(){<br />
&nbsp;&nbsp;&nbsp; for(var i=0; i &lt; document.forms.length; i++) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var thisform = document.forms[i];<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; resetFields(thisform);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; thisform.onsubmit = function() {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return validateForm(this);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }<br />
}<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;</p>
</blockquote>
<p>&nbsp;</p>]]></description><category>代码积累</category><comments>http://www.hzyblue.com/blog/post/61.html#comment</comments><wfw:comment>http://www.hzyblue.com/blog/</wfw:comment><wfw:commentRss>http://www.hzyblue.com/blog/feed.asp?cmt=61</wfw:commentRss><trackback:ping>http://www.hzyblue.com/blog/cmd.asp?act=tb&amp;id=61&amp;key=1e706a0f</trackback:ping></item><item><title>JavaScript DOM 编程艺术 contact.js</title><author>hzy-duck1986@163.com (靛海幽蓝)</author><link>http://www.hzyblue.com/blog/post/60.html</link><pubDate>Tue, 28 Jul 2009 16:16:04 +0800</pubDate><guid>http://www.hzyblue.com/blog/post/60.html</guid><description><![CDATA[<blockquote>
<p>function focusLabels(){<br />
&nbsp;&nbsp;&nbsp; if(!document.getElementsByTagName) return false;<br />
&nbsp;&nbsp;&nbsp; var labels = document.getElementsByTagName(&quot;label&quot;);<br />
&nbsp;&nbsp;&nbsp; for (var i=0; i&lt;labels.length; i++) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if(!labels[i].getAttribute(&quot;for&quot;)) continue;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; labels[i].onclick = function() {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var id = this.getAttribute(&quot;for&quot;);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (!document.getElementById(id)) return false;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var element =document.getElementById(id);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; element.focus();<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }<br />
}</p>
<p>&nbsp;</p>
</blockquote>
<p>&nbsp;</p>
<blockquote>
<p><br />
function resetFields(whichform){<br />
&nbsp;&nbsp;&nbsp; for(var i=0; i &lt; whichform.elements.length; i++){<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var element = whichform.elements[i];<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if(element.type == &quot;submit&quot;) continue;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if(!element.defaultValue) continue;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; element.onfocus = function() {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if(this.value == this.defaultValue) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; this.value = &quot;&quot;;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; element.onblur = function (){<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if(this.value == &quot;&quot;){<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; this.value = this.defaultValue;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }<br />
}</p>
</blockquote>
<p>&nbsp;</p>
<blockquote>
<p><br />
function prepareForms() {<br />
&nbsp;&nbsp;&nbsp; for(var i=0;i &lt; document.forms.length; i++){<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var thisform = document.forms[i];<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; resetFields(thisform);<br />
&nbsp;&nbsp;&nbsp; }<br />
}</p>
</blockquote>
<p>&nbsp;</p>
<blockquote>
<p><br />
function validateForm(whichform) {<br />
&nbsp;&nbsp;&nbsp; for(var i=0; i &lt; whichform.elements.length; i++) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var element = whichform.elements[i];<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (element.className.indexOf(&quot;required&quot;) !=-1) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if(!isFilled(element)) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; alert(&quot;Please fill in the &quot;+element.name+&quot; field.&quot;);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return false;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (element.className.indexOf(&quot;email&quot;) !=-1) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (!isEmail(element)) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; alert(&quot;The &quot;+element.name+&quot; field must be a valid email address.&quot;);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return false;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; return true;<br />
}</p>
</blockquote>
<p>&nbsp;</p>
<blockquote>
<p><br />
function isFilled(field) {<br />
&nbsp;&nbsp;&nbsp; if(field.value.length &lt; 1 || field.value == field.defaultValue) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return false;<br />
&nbsp;&nbsp;&nbsp; } else {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return true;<br />
&nbsp;&nbsp;&nbsp; }<br />
}</p>
</blockquote>
<p>&nbsp;</p>
<blockquote>
<p><br />
function isEmail(field) {<br />
&nbsp;&nbsp;&nbsp; if (field.value.indexOf(&quot;@&quot;) == -1 || field.value.indexOf(&quot;.&quot;) == -1)<br />
&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp; return false;<br />
&nbsp;&nbsp;&nbsp; }else {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return true;<br />
&nbsp;&nbsp;&nbsp; }<br />
}<br />
&nbsp;</p>
</blockquote>
<p>&nbsp;</p>
<blockquote>
<p><br />
<br />
function prepareForms(){<br />
&nbsp;&nbsp;&nbsp; for(var i=0; i &lt; document.forms.length; i++) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var thisform = document.forms[i];<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; resetFields(thisform);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; thisform.onsubmit = function() {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return validateForm(this);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }<br />
}<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;</p>
</blockquote><br />]]></description><category>代码积累</category><comments>http://www.hzyblue.com/blog/post/60.html#comment</comments><wfw:comment>http://www.hzyblue.com/blog/</wfw:comment><wfw:commentRss>http://www.hzyblue.com/blog/feed.asp?cmt=60</wfw:commentRss><trackback:ping>http://www.hzyblue.com/blog/cmd.asp?act=tb&amp;id=60&amp;key=b932d12e</trackback:ping></item><item><title>JavaScript DOM 编程艺术 intenet.js</title><author>hzy-duck1986@163.com (靛海幽蓝)</author><link>http://www.hzyblue.com/blog/post/59.html</link><pubDate>Wed, 22 Jul 2009 13:56:49 +0800</pubDate><guid>http://www.hzyblue.com/blog/post/59.html</guid><description><![CDATA[<blockquote>
<p>function stripeTables(){<br />
&nbsp;&nbsp;&nbsp; if(!document.getElementsByTagName) return false;<br />
&nbsp;&nbsp;&nbsp; var tables = document.getElementsByTagName(&quot;table&quot;);<br />
&nbsp;&nbsp;&nbsp; for (var i=0; i &lt; tables.length; i++){<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var odd = false;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var rows = tables[i].getElementsByTagName(&quot;tr&quot;);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; for(var j=0; j &lt; rows.length; j++){<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if(odd == true){<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; addClass(rows[j],&quot;odd&quot;);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; odd =false;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; else<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; odd = true;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }<br />
}</p>
</blockquote>
<p>&nbsp;</p>
<blockquote>
<p><br />
function highlightRows(){<br />
&nbsp;&nbsp;&nbsp; if(!document.getElementsByTagName) return false;<br />
&nbsp;&nbsp;&nbsp; var rows = document.getElementsByTagName(&quot;tr&quot;);<br />
&nbsp;&nbsp;&nbsp; for (var i=0; i &lt; rows.length; i++){<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; rows[i].oldClassName = rows[i].className<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; rows[i].onmouseover = function(){<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; addClass(this,&quot;highlight&quot;);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; rows[i].onmouseout = function(){<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; this.className = this.oldClassName<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }<br />
}</p>
<p>&nbsp;</p>
</blockquote>
<p>&nbsp;</p>
<blockquote>
<p><br />
<br />
function displayAbbreviations(){<br />
&nbsp;&nbsp;&nbsp; if (! document.getElementsByTagName) return false;<br />
&nbsp;&nbsp;&nbsp; if (! document.createElement) return false;<br />
&nbsp;&nbsp;&nbsp; if (! document.createTextNode) return false;<br />
&nbsp;&nbsp;&nbsp; var abbreviations = document.getElementsByTagName(&quot;abbr&quot;);<br />
&nbsp; if (abbreviations.length &lt; 1) return false;<br />
&nbsp; var defs = new Array();<br />
&nbsp;&nbsp;&nbsp; for (var i=0; i &lt; abbreviations.length; i++) {<br />
&nbsp;&nbsp;&nbsp; var current_abbr = abbreviations[i];<br />
&nbsp;&nbsp;&nbsp; if (current_abbr.childNodes.length &lt; 1) continue;<br />
&nbsp;&nbsp;&nbsp; var definition = current_abbr.getAttribute(&quot;title&quot;);<br />
&nbsp;&nbsp;&nbsp; var key = current_abbr.lastChild.nodeValue;<br />
&nbsp;&nbsp;&nbsp; defs[key] = definition;<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; var dlist = document.createElement(&quot;dl&quot;);<br />
&nbsp;&nbsp;&nbsp; for (key in defs) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var definition = defs[key];<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var dtitle = document.createElement(&quot;dt&quot;);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var dtitle_text = document.createTextNode(key);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; dtitle.appendChild(dtitle_text);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var ddesc = document.createElement(&quot;dd&quot;);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var ddesc_text = document.createTextNode(definition);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ddesc.appendChild(ddesc_text);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; dlist.appendChild(dtitle);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; dlist.appendChild(ddesc);<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; if (dlist.childNodes.lenght &lt; 1) return false;<br />
&nbsp;&nbsp;&nbsp; var header = document.createElement(&quot;h2&quot;);<br />
&nbsp;&nbsp;&nbsp; var header_text = document.createTextNode(&quot;Abbreviations&quot;);<br />
&nbsp;&nbsp;&nbsp; header.appendChild(header_text);<br />
&nbsp;&nbsp;&nbsp; var container = document.getElementById(&quot;content&quot;);<br />
&nbsp;&nbsp;&nbsp; container.appendChild(header);<br />
&nbsp;&nbsp;&nbsp; container.appendChild(dlist);<br />
}<br />
&nbsp;</p>
</blockquote>]]></description><category>代码积累</category><comments>http://www.hzyblue.com/blog/post/59.html#comment</comments><wfw:comment>http://www.hzyblue.com/blog/</wfw:comment><wfw:commentRss>http://www.hzyblue.com/blog/feed.asp?cmt=59</wfw:commentRss><trackback:ping>http://www.hzyblue.com/blog/cmd.asp?act=tb&amp;id=59&amp;key=86a289a6</trackback:ping></item><item><title>JavaScript DOM 编程艺术 photos.js</title><author>hzy-duck1986@163.com (靛海幽蓝)</author><link>http://www.hzyblue.com/blog/post/58.html</link><pubDate>Tue, 21 Jul 2009 13:51:40 +0800</pubDate><guid>http://www.hzyblue.com/blog/post/58.html</guid><description><![CDATA[<p>在这个文件里有三个JS，结合html文件我们可以看到，下方的大图展示，是全部用JS生成的。详细的见我之前的笔记，这里就把代码记录下。</p>
<blockquote>
<p>function showPic(whichpic){<br />
&nbsp;&nbsp;&nbsp; if (!document.getElementById(&quot;placeholder&quot;)) return true;<br />
&nbsp;&nbsp;&nbsp; var source = whichpic.getAttribute(&quot;href&quot;);<br />
&nbsp;&nbsp;&nbsp; var placeholder = document.getElementById(&quot;placeholder&quot;);<br />
&nbsp;&nbsp;&nbsp; placeholder.setAttribute(&quot;src&quot;,source);<br />
&nbsp;&nbsp;&nbsp; if(!document.getElementById(&quot;description&quot;)) return false;<br />
&nbsp;&nbsp;&nbsp; if(whichpic.getAttribute(&quot;title&quot;)){<br />
&nbsp;&nbsp;&nbsp; var text = whichpic.getAttribute(&quot;title&quot;); <br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; else {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var text = &quot;&quot;;<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; var description = document.getElementById(&quot;description&quot;);<br />
&nbsp;&nbsp;&nbsp; if(description.firstChild.nodeType ==3){<br />
&nbsp;&nbsp;&nbsp; description.firstChild.nodeValue = text;<br />
}<br />
return false;<br />
}</p>
<p>&nbsp;</p>
</blockquote>
<p>&nbsp;</p>
<blockquote>
<p>&nbsp;</p>
<p>function preparePlaceholder(){<br />
&nbsp;&nbsp;&nbsp; if (!document.createElement) return false;<br />
&nbsp; if (!document.createTextNode) return false;<br />
&nbsp; if (!document.getElementById) return false;<br />
&nbsp; if (!document.getElementById(&quot;imagegallery&quot;)) return false;<br />
&nbsp;&nbsp;&nbsp; var placeholder = document.createElement(&quot;img&quot;);<br />
&nbsp;&nbsp;&nbsp; placeholder.setAttribute(&quot;id&quot;,&quot;placeholder&quot;);<br />
&nbsp;&nbsp;&nbsp; placeholder.setAttribute(&quot;src&quot;,&quot;images/placeholder.gif&quot;);<br />
&nbsp;&nbsp;&nbsp; placeholder.setAttribute(&quot;alt&quot;, &quot;my image gallery&quot;);<br />
&nbsp;&nbsp;&nbsp; var description = document.createElement(&quot;p&quot;);<br />
&nbsp;&nbsp;&nbsp; description.setAttribute(&quot;id&quot;,&quot;description&quot;);<br />
&nbsp;&nbsp;&nbsp; var desctext = document.createTextNode(&quot;Choose an image:&quot;);<br />
&nbsp;&nbsp;&nbsp; description.appendChild(desctext);<br />
&nbsp;&nbsp;&nbsp; var gallery = document.getElementById(&quot;imagegallery&quot;);<br />
&nbsp;&nbsp;&nbsp; insertAfter(description,gallery);<br />
&nbsp;&nbsp;&nbsp; insertAfter(placeholder,description);<br />
}<br />
&nbsp;</p>
</blockquote>
<p>&nbsp;</p>
<blockquote>
<p><br />
function prepareGallery() {<br />
&nbsp; if (!document.getElementsByTagName) return false;<br />
&nbsp; if (!document.getElementById) return false;<br />
&nbsp; if (!document.getElementById(&quot;imagegallery&quot;)) return false;<br />
&nbsp; var gallery = document.getElementById(&quot;imagegallery&quot;);<br />
&nbsp; var links = gallery.getElementsByTagName(&quot;a&quot;);<br />
&nbsp; for ( var i=0; i &lt; links.length; i++) {<br />
&nbsp;&nbsp;&nbsp; links[i].onclick = function() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return showPic(this);<br />
&nbsp;&nbsp;&nbsp; &nbsp; }<br />
&nbsp;&nbsp;&nbsp; }<br />
}</p>
</blockquote>
<p>&nbsp;</p>]]></description><category>代码积累</category><comments>http://www.hzyblue.com/blog/post/58.html#comment</comments><wfw:comment>http://www.hzyblue.com/blog/</wfw:comment><wfw:commentRss>http://www.hzyblue.com/blog/feed.asp?cmt=58</wfw:commentRss><trackback:ping>http://www.hzyblue.com/blog/cmd.asp?act=tb&amp;id=58&amp;key=a94a8af7</trackback:ping></item><item><title>小网站的CSS文件组织</title><author>hzy-duck1986@163.com (靛海幽蓝)</author><link>http://www.hzyblue.com/blog/post/57.html</link><pubDate>Fri, 17 Jul 2009 14:52:26 +0800</pubDate><guid>http://www.hzyblue.com/blog/post/57.html</guid><description><![CDATA[<p>目前我在负责的网站：<a href="http://www.71cai.com" target="_blank">人生理财网</a> 之前经过了剥离、改版等过程，因为赶进度，我一直没对他的代码进行梳理过。</p>
<p>所以存在很多问题，主要就是浏览器不兼容。另外，在头文件里还有很多CSS的link语句。我觉得这很不好，例如，一个首页至少包含了top.css nav.css foot.css index.css等。把顶部、导航、脚页的CSS合并到一起是很容易想到的，这里想说的是什么呢？就是对于index.css里应该放些什么东西。</p>
<p>对于全站来说，顶部、导航、脚页是公用的，除这三部分外，中间的内容，也有不少重复的样式，例如侧栏。那这些东西的样式，应单独写吗，还是针对每个页面各自写？</p>
<p>而且，最主要的问题是，相同的往往是一小块内容，而在页面中的位置，有时候又不一样。如果在通用的CSS中定义了一部分，在独自的CSS写另外一部分，时间久了代码的可读性就会比较差，那到底要怎么办呢？</p>
<p>现在我的做法是，每个页面只有两个CSS文件，一个是公用的，一个是独自的。公用的css里除了写顶部、导航、脚页的CSS外，把会重复出现的&ldquo;块&rdquo;的CSS也写进去，但是margin和padding清0，在各个页面用到的时候，只设置这两个属性。同时，对哪些是&ldquo;重复出现的块&rdquo;要心里有数，剩下的，即使在个别几个页面重复出现，也会到每个独自的CSS里重复写，但是这样的情况应该不多了。</p>]]></description><category>感悟杂谈</category><comments>http://www.hzyblue.com/blog/post/57.html#comment</comments><wfw:comment>http://www.hzyblue.com/blog/</wfw:comment><wfw:commentRss>http://www.hzyblue.com/blog/feed.asp?cmt=57</wfw:commentRss><trackback:ping>http://www.hzyblue.com/blog/cmd.asp?act=tb&amp;id=57&amp;key=9872d0fe</trackback:ping></item></channel></rss>
