﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><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.cnblogs.com/binyong/</link><description>简单生活，简单生活！</description><language>zh-cn</language><lastBuildDate>Wed, 10 Feb 2010 09:31:59 GMT</lastBuildDate><pubDate>Wed, 10 Feb 2010 09:31:59 GMT</pubDate><ttl>60</ttl><item><title>CSS圆角框组件 V1.0</title><link>http://www.cnblogs.com/binyong/archive/2009/12/11/1621484.html</link><dc:creator>Biny</dc:creator><author>Biny</author><pubDate>Fri, 11 Dec 2009 00:31:00 GMT</pubDate><guid>http://www.cnblogs.com/binyong/archive/2009/12/11/1621484.html</guid><description><![CDATA[<p>阅读: 4005 评论: 33 作者: <a href="http://www.cnblogs.com/binyong/" target="_blank">Biny</a> 发表于 2009-12-11 08:31 <a href="http://www.cnblogs.com/binyong/archive/2009/12/11/1621484.html" target="_blank">原文链接</a></p><p>&nbsp;</p>
<hr />
<p align="center"><strong>原创：</strong><a href="http://binyong.cnblogs.com/" target="_blank"><span style="color: black; text-decoration: none; text-underline: none"><span><strong>冰极峰</strong></span></a><strong>&nbsp;&nbsp; &nbsp;</strong></span><strong>转载请注明出处 2009年12月11日8:29:27</span></strong></strong></p>
<hr />
<p style="text-indent: 21pt"><strong>文章导航：</strong></p>
<p style="text-indent: 21pt"><strong>第一章：<a href="http://www.cnblogs.com/binyong/archive/2009/11/30/1613376.html#1711604" target="_blank">基本的圆角框</strong></a></p>
<p style="text-indent: 21pt"><strong>第二章：<a href="http://www.cnblogs.com/binyong/archive/2009/12/01/1614195.html" target="_blank">透明圆角化背景图片</strong></a></strong></p>
<p style="text-indent: 21pt"><strong>第三章：<a href="http://www.cnblogs.com/binyong/archive/2009/12/02/1614978.html" target="_blank">圆角化图片</strong></a>
<p style="text-indent: 21pt"><strong>第四章：<a href="http://www.cnblogs.com/binyong/archive/2009/12/10/1621484.html" target="_blank">CSS圆角框组件 V1.0</a></strong></p>
<hr />
<p style="text-indent: 21pt"><strong>前序：</strong>本来前三篇文章已经将CSS圆角框讲解完毕，但从网友反馈中，都说到不好使用，因此有了这篇文章，本文主要是将前面的结果总结修订后进行JS封装，方便调用。</p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">在本次封装中，<strong>增加了对真正</strong></span><strong>img</strong><strong><span style="font-family: 宋体">标签引用的图片实现圆角化</span></strong><span style="font-family: 宋体">，之前的圆角图片大多是基于背景图片的，因为纯</span>css<span style="font-family: 宋体">无法实现</span>img<span style="font-family: 宋体">图片的圆角，有了</span>js<span style="font-family: 宋体">的加入，就变成可能了。并且在这次封装过程中<strong>修正了上次的背景图片下面两个圆角图片的定位错误问题</strong>。</span></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">其实这个控件的</span>JS<span style="font-family: 宋体">代码很简单，只需要用到</span>innerHTML<span style="font-family: 宋体">就可以完成其大部分工作，而真正的难点在于对于</span>CSS<span style="font-family: 宋体">样式的合并组合使用。</span></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">先看看最终效果截图：</span></p>
<p style="text-align: center; text-indent: 21pt"><img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/binyong/yjq/6.png" width="450" height="622" /></p>
<p style="text-indent: 21pt" align="center">图一</p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">在我的<strong>《</strong></span><strong>CSS</strong><strong><span style="font-family: 宋体">圆角框组件</span>V1.0</strong><strong><span style="font-family: 宋体">》</span></strong><span style="font-family: 宋体">中，可以变化出</span>6<span style="font-family: 宋体">种基本风格的圆角框（至于颜色风格，则可以说是千变万化了）。它们分别是：</span></p>
<p style="text-indent: 21pt">1. <strong><span style="font-family: 宋体">纯线框圆角。</span></strong></p>
<p style="text-indent: 21pt">2. <strong><span style="font-family: 宋体">标题线框圆角。</span></strong><span style="font-family: 宋体">不带背景色或背景图片，透明。</span></p>
<p style="text-indent: 21pt">3. <strong><span style="font-family: 宋体">标题和内容区可分别自定义颜色圆角</span></strong><span style="font-family: 宋体">。</span></p>
<p style="text-indent: 21pt">4. <strong><span style="font-family: 宋体">标题背景图片圆角。</span></strong><span style="font-family: 宋体">标题带背景图片时，自动实现圆角。</span></p>
<p style="text-indent: 21pt">5. <strong><span style="font-family: 宋体">装饰性背景图片圆角。</span></strong><span style="font-family: 宋体">容器有装饰性背景图片时，自动实现圆角。</span></p>
<p style="text-indent: 21pt">6. <strong>Img</strong><strong><span style="font-family: 宋体">图片圆角。</span></strong><span style="font-family: 宋体">如果有</span>img<span style="font-family: 宋体">标签引用图片时，自动实现圆角。</span></p>
<p style="text-indent: 21pt">&nbsp;</p>
<p style="text-indent: 21pt">js<span style="font-family: 宋体">代码就不用详解了，都很简单，我在</span>js<span style="font-family: 宋体">中作了详细的注释说明，一看就会。下面说说这</span>6<span style="font-family: 宋体">种风格的调用方法：</span></p>
<p style="text-indent: 21pt"><strong><span style="font-family: 宋体">第一种：纯线框圆角</span></strong><strong></strong></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">这是最基本，也是应用最广泛的一种应用。只需一句话就可以了。</span></p>
<p style="text-indent: 21pt"><strong>Js<span style="font-family: 宋体">行为：</span></strong></p>
<div class="cnblogs_code">
<div><!--<br/ />
<br/ />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />
http://www.CodeHighlighter.com/<br/ />
<br/ />
--><span style="color: #000000">b_RoundCurve(</span><span style="color: #000000">"</span><span style="color: #000000">bottom</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">#F8B3D0</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">#FFF5FA</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">1</span><span style="color: #000000">);</span><span style="color: #008000">//</span><span style="color: #008000">普通圆角框</span></div>
</div>
<p style="text-indent: 21pt">解释：四个参数，分别代表样式名称、边框色值、背景色值、风格参数。</p>
<p style="text-indent: 21pt"><strong>Html结构：</strong></p>
<div class="cnblogs_code">
<div><!--<br/ />
<br/ />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />
http://www.CodeHighlighter.com/<br/ />
<br/ />
--><span style="color: #0000ff">&lt;</span><span style="color: #800000">div&nbsp;</span><span style="color: #ff0000">class</span><span style="color: #0000ff">="bottom"</span><span style="color: #0000ff">&gt;&lt;/</span><span style="color: #800000">div</span><span style="color: #0000ff">&gt;</span></div>
</div>
<p style="text-indent: 21pt"><strong><span style="font-family: 宋体">第二种：标题线框圆角</span></strong><strong></strong></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">一般这种块状布局，都需要在页头加入标题，你可以使用</span>h1~h6<span style="font-family: 宋体">系列标签。</span></p>
<p style="text-indent: 21pt"><strong>Js<span style="font-family: 宋体">行为：</span></strong></p>
<div class="cnblogs_code">
<div><!--<br/ />
<br/ />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />
http://www.CodeHighlighter.com/<br/ />
<br/ />
--><span style="color: #000000">b_RoundCurve(</span><span style="color: #000000">"</span><span style="color: #000000">right2</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">orange</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">""</span><span style="color: #000000">,</span><span style="color: #000000">3</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">h3</span><span style="color: #000000">"</span><span style="color: #000000">);</span><span style="color: #008000">//</span><span style="color: #008000">标题和内容区都透明</span></div>
</div>
<p style="text-indent: 21pt">解释：五个参数，分别代表样式名称、边框色值、背景色值、风格参数、标题标签名称，因为考虑了扩展性，当想使用其它的标签时，可以随时替换，如h1~h6系列标签。</p>
<p style="text-indent: 21pt"><strong>Html<span style="font-family: 宋体">结构：</span></strong></p>
<div class="cnblogs_code">
<div><!--<br/ />
<br/ />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />
http://www.CodeHighlighter.com/<br/ />
<br/ />
--><span style="color: #0000ff">&lt;</span><span style="color: #800000">div&nbsp;</span><span style="color: #ff0000">class</span><span style="color: #0000ff">="right2"</span><span>&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;</span><span style="color: #800000">h3</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">标题</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">h3</span><span>&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;</span><span style="color: #800000">div</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">内容</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">div</span><span>&gt;<br />
&lt;/</span><span style="color: #800000">div</span><span style="color: #0000ff">&gt;</span></div>
</div>
<p style="text-align: left; text-indent: 21.75pt" align="left"><span style="font-family: 宋体"><strong>第三种：标题和内容区可分别自定义颜色圆角</strong></span></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">与第二种风格差不多，差别在于可以分别定义标题和内容区的颜色值。</span></p>
<p style="text-indent: 21pt"><strong>Js<span style="font-family: 宋体">行为：</span></strong></p>
<div class="cnblogs_code">
<div><!--<br/ />
<br/ />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />
http://www.CodeHighlighter.com/<br/ />
<br/ />
--><span style="color: #000000">b_RoundCurve(</span><span style="color: #000000">"</span><span style="color: #000000">right1</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">#863313</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">#84D4CA</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">3</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">h3</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">#BAB556</span><span style="color: #000000">"</span><span style="color: #000000">);</span><span style="color: #008000">//</span><span style="color: #008000">标题只用纯色背景</span></div>
</div>
<p style="text-indent: 21pt">解释：六个参数，分别代表样式名称、边框色值、背景色值、风格参数、标题标签名称、标题背景色值。</p>
<p style="text-indent: 21pt"><strong>Html<span style="font-family: 宋体">结构：</span></strong></p>
<div class="cnblogs_code">
<div><!--<br/ />
<br/ />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />
http://www.CodeHighlighter.com/<br/ />
<br/ />
--><span style="color: #0000ff">&lt;</span><span style="color: #800000">div&nbsp;</span><span style="color: #ff0000">class</span><span style="color: #0000ff">="right1"</span><span>&gt;<br />
&nbsp;&nbsp;&lt;</span><span style="color: #800000">h3</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">标题</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">h3</span><span>&gt;<br />
&nbsp;&nbsp;&lt;</span><span style="color: #800000">div</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">内容</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">div</span><span>&gt;<br />
&lt;/</span><span style="color: #800000">div</span><span>&gt;<br />
</span></div>
</div>
<p style="text-indent: 21pt"><span style="font-family: 宋体"><strong>第四种：标题背景图片圆角</strong></span></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">这种需要将标题的背景图片路径作为参数传入，有了背景图片，一般都不需要背景颜色了，所以将第六个参数值设为空：</span></p>
<p style="text-indent: 21pt"><strong>Js<span style="font-family: 宋体">行为：</span></strong></p>
<div class="cnblogs_code">
<div><!--<br/ />
<br/ />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />
http://www.CodeHighlighter.com/<br/ />
<br/ />
--><span style="color: #000000">b_RoundCurve(</span><span style="color: #000000">"</span><span style="color: #000000">right3</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">#A0C044</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">#E9F2CC</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">3</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">h3</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">""</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">image/bg1.gif</span><span style="color: #000000">"</span><span style="color: #000000">);</span><span style="color: #008000">//</span><span style="color: #008000">标题用背景图片</span></div>
</div>
<p style="text-indent: 21pt">解释：七个参数，分别代表样式名称、边框色值、背景色值、风格参数、标题标签名称、标题背景色值、标题背景图片路径。</p>
<p style="text-indent: 21pt"><strong>Html<span style="font-family: 宋体">结构：</span></strong></p>
<div class="cnblogs_code">
<div><!--<br/ />
<br/ />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />
http://www.CodeHighlighter.com/<br/ />
<br/ />
--><span style="color: #0000ff">&lt;</span><span style="color: #800000">div&nbsp;</span><span style="color: #ff0000">class</span><span style="color: #0000ff">="right3"</span><span>&gt;<br />
&nbsp;&nbsp;&lt;</span><span style="color: #800000">h3</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">标题</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">h3</span><span>&gt;<br />
&nbsp;&nbsp;&lt;</span><span style="color: #800000">div</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">内容</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">div</span><span>&gt;<br />
&lt;/</span><span style="color: #800000">div</span><span>&gt;<br />
</span></div>
</div>
<p style="text-align: left; text-indent: 21.75pt" align="left"><span style="font-family: 宋体"><strong>第五种：装饰性背景图片圆角</strong></span></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">这种圆角也是用得比较多的，这种风格要注意：在</span>CSS<span style="font-family: 宋体">中需要设置容器的宽高值，因为在</span>js<span style="font-family: 宋体">中会查找到这个图片的宽高值。</span></p>
<p style="text-indent: 21pt"><strong>Js<span style="font-family: 宋体">行为：</span></strong></p>
<div class="cnblogs_code">
<div><!--<br/ />
<br/ />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />
http://www.CodeHighlighter.com/<br/ />
<br/ />
--><span style="color: #000000">b_RoundCurve(</span><span style="color: #000000">"</span><span style="color: #000000">rightbgimg</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">#F38E1A</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">""</span><span style="color: #000000">,</span><span style="color: #000000">4</span><span style="color: #000000">);</span><span style="color: #008000">//</span><span style="color: #008000">圆角背景图片</span></div>
</div>
<p style="text-indent: 21pt">解释：四个参数，分别代表样式名称、边框色值、背景色值、风格参数。背景色值和背景图片只选其一，所以将第三个参数置为空。</p>
<p style="text-indent: 21pt"><strong>Html<span style="font-family: 宋体">结构：</span></strong></p>
<div class="cnblogs_code">
<div><!--<br/ />
<br/ />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />
http://www.CodeHighlighter.com/<br/ />
<br/ />
--><span style="color: #0000ff">&lt;</span><span style="color: #800000">div&nbsp;</span><span style="color: #ff0000">class</span><span style="color: #0000ff">="&nbsp;rightbgimg&nbsp;"</span><span style="color: #0000ff">&gt;&lt;/</span><span style="color: #800000">div</span><span style="color: #0000ff">&gt;</span></div>
</div>
<p style="text-indent: 21pt"><strong><span style="font-family: 宋体">第六种：</span>Img<span style="font-family: 宋体">图片圆角</span></strong></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">纯</span>CSS<span style="font-family: 宋体">方法是无法做到</span>Img<span style="font-family: 宋体">图片圆角的，但有</span>JS<span style="font-family: 宋体">的加入，就可以变相实现。原理和第五种相似，只是将这个</span>Img<span style="font-family: 宋体">的图片路径取出来，在</span>js<span style="font-family: 宋体">中以背景图片的方式加入到各个容器中去，然后再还原</span>img<span style="font-family: 宋体">标签。</span></p>
<p style="text-indent: 21pt"><strong>Js<span style="font-family: 宋体">行为：</span></strong></p>
<div class="cnblogs_code">
<div><!--<br/ />
<br/ />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />
http://www.CodeHighlighter.com/<br/ />
<br/ />
--><span style="color: #000000">b_RoundCurve(</span><span style="color: #000000">"</span><span style="color: #000000">img</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">#999</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">#FFF5FA</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">2</span><span style="color: #000000">);</span><span style="color: #008000">//</span><span style="color: #008000">圆角IMG图片</span></div>
</div>
<p style="text-indent: 21pt">解释：四个参数，分别代表样式名称、边框色值、背景色值、风格参数。</p>
<p style="text-indent: 21pt"><strong>Html<span style="font-family: 宋体">结构：</span></strong></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">最简洁的</span>HTML<span>结构，无冗余代码。</p>
<div class="cnblogs_code">
<div><!--<br/ />
<br/ />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />
http://www.CodeHighlighter.com/<br/ />
<br/ />
--><span style="color: #0000ff">&lt;</span><span style="color: #800000">div&nbsp;</span><span style="color: #ff0000">class</span><span style="color: #0000ff">="img"</span><span>&gt;<br />
&nbsp;&nbsp;&lt;</span><span style="color: #800000">a&nbsp;</span><span style="color: #ff0000">href</span><span style="color: #0000ff">="http://binyong.cnblogs.com/"</span><span style="color: #ff0000">&nbsp;title</span><span style="color: #0000ff">="漂亮女孩1"</span><span style="color: #ff0000">&nbsp;target</span><span style="color: #0000ff">="_blank"</span><span>&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;</span><span style="color: #800000">img&nbsp;</span><span style="color: #ff0000">src</span><span style="color: #0000ff">="image/girl-1.jpg"</span><span style="color: #ff0000">&nbsp;height</span><span style="color: #0000ff">="115"</span><span style="color: #ff0000">&nbsp;width</span><span style="color: #0000ff">="154"</span><span style="color: #ff0000">&nbsp;alt</span><span style="color: #0000ff">="漂亮女孩1"</span><span>/&gt;<br />
&nbsp;&nbsp;&lt;/</span><span style="color: #800000">a</span><span>&gt;<br />
&lt;/</span><span style="color: #800000">div</span><span style="color: #0000ff">&gt;</span></div>
</div>
<p><strong>&nbsp;</strong></p>
<p style="text-indent: 21pt"><strong>组件优点：</strong></p>
<p style="text-indent: 21pt">1. 全面兼容所有浏览器。</p>
<p style="text-indent: 21pt">2. 圆角不需要图片，直接代码生成，省去制图的麻烦。</p>
<p style="text-indent: 21pt">3. 自适应外框的大小，可广泛应用于布局区块中。</p>
<p style="text-indent: 21pt">4. 封装难以控制的CSS代码，调用灵活方便。</p>
<p style="text-indent: 21pt">5. 封装HTML结构，你只需定义你想要的结构，无冗余，更语义化。</p>
<p style="text-indent: 21pt"><strong>组件缺点：</strong></p>
<p style="text-indent: 21pt">1. 不能定义线框的大小。如果你需要改变线框大小，本组件不适合你。</p>
<p style="text-indent: 21pt">2. 圆角不够圆滑，如果你对圆角图片的精度要求较高，不宜采用本组件。</p>
<p style="text-indent: 21pt">3. 线框颜色和背景色不宜采用对比太强烈的颜色，容易看出锯齿。</p>
<p style="text-indent: 21pt"></span><strong>&nbsp;</strong></p>
</span>
<p style="text-align: left; line-height: 16.5pt; text-indent: 24pt;background: white" align="left"><span style="font-family: 宋体; color: black"><strong>本模型在以下浏览器中完美通过：</strong></span></p>
<p style="text-align: left; line-height: 16.5pt; text-indent: 24pt;background: white" align="left"><span><strong>IE5.5、IE6、IE7、IE8、FF3、TT、Maxthon2.1.5、Opera9.6、Safari4.0、Chrome2.0。</strong></span></p>
<p style="text-align: left; line-height: 16.5pt; text-indent: 24pt;background: white" align="left"><span><strong>点击这儿下载完整的压缩包：</strong><a title="下载全部模型" href="http://files.cnblogs.com/binyong/4.rar" target="_blank"><span style="color: red; text-decoration: none; text-underline: none"><strong>下载Demo</strong></span></a></span></p>
</strong> <img src="http://www.cnblogs.com/binyong/aggbug/1621484.html?type=1" width="1" height="1" alt=""/><p>评论: 33　<a href="http://www.cnblogs.com/binyong/archive/2009/12/11/1621484.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/binyong/archive/2009/12/11/1621484.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56859/" target="_blank">美调查公司称苹果iPad配件成本最低219美元</a><span style="color:gray">(2010-02-10 17:20)</span><br/>· <a href="http://news.cnblogs.com/n/56858/" target="_blank">摩尔庄园：儿童生意密码</a><span style="color:gray">(2010-02-10 17:15)</span><br/>· <a href="http://news.cnblogs.com/n/56857/" target="_blank">Facebook与美国在线合作 整合AIM动态功能</a><span style="color:gray">(2010-02-10 16:41)</span><br/>· <a href="http://news.cnblogs.com/n/56855/" target="_blank">NDepend 3.0已与Visual Studio集成</a><span style="color:gray">(2010-02-10 16:17)</span><br/>· <a href="http://news.cnblogs.com/n/56854/" target="_blank">Ruby in Steel 1.5发布，去除IronRuby支持</a><span style="color:gray">(2010-02-10 16:14)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/news/tag/Buzz/" target="_blank">Google Buzz相关新闻</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>纯CSS圆角框3－圆角化图片</title><link>http://www.cnblogs.com/binyong/archive/2009/12/02/1614978.html</link><dc:creator>Biny</dc:creator><author>Biny</author><pubDate>Wed, 02 Dec 2009 00:28:00 GMT</pubDate><guid>http://www.cnblogs.com/binyong/archive/2009/12/02/1614978.html</guid><description><![CDATA[<p>阅读: 2755 评论: 22 作者: <a href="http://www.cnblogs.com/binyong/" target="_blank">Biny</a> 发表于 2009-12-02 08:28 <a href="http://www.cnblogs.com/binyong/archive/2009/12/02/1614978.html" target="_blank">原文链接</a></p><p align="center"><strong><span style="font-family: 宋体">
<hr />
</span></strong>
<p align="center"><span style="font-size: 12pt">&nbsp;</span><strong><span style="font-family: 宋体; font-size: 12pt">第三章、圆角化图片</span></strong></p>
<p style="text-align: center; line-height: 16.5pt; text-indent: 24pt;background: white" align="center"><strong><span style="font-family: 宋体; color: black; font-size: 9pt">原创：<a href="http://binyong.cnblogs.com/" target="_blank">冰极峰</a></span>转载请注明出处 2009年12月2日</strong><strong>8:26:38</p>
<p style="text-align: center; line-height: 16.5pt; text-indent: 24pt;background: white" align="center">
<hr />
</strong>
<p style="text-indent: 21pt"><strong>文章导航：</strong></p>
<p style="text-indent: 21pt"><strong>第一章：<a href="http://www.cnblogs.com/binyong/archive/2009/11/30/1613376.html#1711604" target="_blank">基本的圆角框</strong></a></p>
<p style="text-indent: 21pt"><strong>第二章：<a href="http://www.cnblogs.com/binyong/archive/2009/12/01/1614195.html" target="_blank">透明圆角化背景图片</strong></a></strong></p>
<p style="text-indent: 21pt"><strong>第三章：<a href="http://www.cnblogs.com/binyong/archive/2009/12/02/1614978.html" target="_blank">圆角化图片</strong></a>
<p style="text-indent: 21pt"><strong>第四章：<a href="http://www.cnblogs.com/binyong/archive/2009/12/10/1621484.html" target="_blank">CSS圆角框组件 V1.0</a></strong></p>
<hr />
<p>&nbsp;</p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">在前面一篇文章中，我们将一张上下渐变的的图片作为标题的背景，并将它应用了圆角效果。是不是这种圆角框只能用于比较单调的图片呢？我们还能将一些颜色比较丰富的图片也进行透明圆角化吗？</span></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">答案是肯定的，下面看看它的终极功夫。</span></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">还是先看最终效果图吧！</span></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体"></span>&nbsp;</p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">
<div align="center"><img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/binyong/yjq/5.png" width="510" height="361" /></span>&nbsp;</div>
<p style="text-indent: 21pt"></p>
<p style="text-align: center; text-indent: 21pt" align="center"><span style="font-family: 宋体">图一</span></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">看到了吧，这就是用纯</span>CSS<span style="font-family: 宋体">实现的圆角化图片，为了能看到透明化的效果，我特意应用了一个背景图片，你可以下载本模型到你的电脑中，随意伸缩窗口的大小，看看外圆角是否是透明的。</span></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">有了这种效果，你再也不愁给每一张图片作圆角的工作，这种效果在一些图片类的演示页面中经常见到，特别适用那些图片比较多的列表中。怎么样，效果还可以吧！</span></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">好了，我们来看看它的实现机制吧！</span>&nbsp;</p>
<p style="text-indent: 21pt"><strong><span style="font-family: 宋体">实现原理：</span></strong><strong></strong></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">这种效果其实就是我在第二章中变体实现，下面讲一讲主要的关键代码。</span></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">主要变化的还是背景图片的定位，只是这一次与第二章中的有些不同，这次需要考虑到下面的两个圆角的变化。</span></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">先看看上面两个圆角的实现：</span><span style="font-family: 宋体"></p>
<div class="cnblogs_code">
<div><!--<br/ />
<br/ />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />
http://www.CodeHighlighter.com/<br/ />
<br/ />
--><span style="color: #008000">/*</span><span style="color: #008000">图片偏移定位--上面部分</span><span style="color: #008000">*/</span><span style="color: #800000"><br />
.sharp&nbsp;b.b2</span><span style="color: #000000">{</span><span style="color: #ff0000">background-position</span><span style="color: #000000">:</span><span style="color: #0000ff">-4px&nbsp;top</span><span style="color: #000000">;</span><span style="color: #000000">}</span><span style="color: #800000"><br />
.sharp&nbsp;b.b3</span><span style="color: #000000">{</span><span style="color: #ff0000">background-position</span><span style="color: #000000">:</span><span style="color: #0000ff">-2px&nbsp;-1px</span><span style="color: #000000">;</span><span style="color: #000000">}</span><span style="color: #800000"><br />
.sharp&nbsp;b.b4</span><span style="color: #000000">{</span><span style="color: #ff0000">background-position</span><span style="color: #000000">:</span><span style="color: #0000ff">-1px&nbsp;-2px</span><span style="color: #000000">;</span><span style="color: #000000">}</span><span style="color: #800000"><br />
</span></div>
</div>
<p></span><span style="font-family: 宋体">再看看下面两个圆角的样式设置，下面部分和上面部分是相互对应的。</span><span style="font-family: 宋体"></p>
<div class="cnblogs_code">
<div><!--<br/ />
<br/ />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />
http://www.CodeHighlighter.com/<br/ />
<br/ />
--><span style="color: #008000">/*</span><span style="color: #008000">图片偏移定位--下面部分</span><span style="color: #008000">*/</span><span style="color: #800000"><br />
.sharp&nbsp;b.b7</span><span style="color: #000000">{</span><span style="color: #ff0000">background-position</span><span style="color: #000000">:</span><span style="color: #0000ff">-4px&nbsp;bottom</span><span style="color: #000000">;</span><span style="color: #000000">}</span><span style="color: #800000"><br />
.sharp&nbsp;b.b6</span><span style="color: #000000">{</span><span style="color: #ff0000">background-position</span><span style="color: #000000">:</span><span style="color: #0000ff">-2px&nbsp;bottom</span><span style="color: #000000">;</span><span style="color: #000000">}</span><span style="color: #800000"><br />
.sharp&nbsp;b.b5</span><span style="color: #000000">{</span><span style="color: #ff0000">background-position</span><span style="color: #000000">:</span><span style="color: #0000ff">-1px&nbsp;bottom</span><span style="color: #000000">;</span><span style="color: #000000">}</span><span style="color: #800000"><br />
</span></div>
</div>
<p></span><span style="font-family: 宋体">不同的图片调用样式：</span><span style="font-family: 宋体"></p>
<div class="cnblogs_code" onclick="cnblogs_code_show('a629f79c-22c3-4e50-baf7-35ee37a0113f')"><img style="display: none" id="code_img_closed_a629f79c-22c3-4e50-baf7-35ee37a0113f" class="code_img_closed" alt="" src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" /><img id="code_img_opened_a629f79c-22c3-4e50-baf7-35ee37a0113f" class="code_img_opened" onclick="cnblogs_code_hide('a629f79c-22c3-4e50-baf7-35ee37a0113f',event)" src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif"><span class="cnblogs_code_collapse"></span>
<div id="cnblogs_code_open_a629f79c-22c3-4e50-baf7-35ee37a0113f">
<div><!--<br/ />
<br/ />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />
http://www.CodeHighlighter.com/<br/ />
<br/ />
--><span style="color: #008000">/*</span><span style="color: #008000">颜色方案一,绿色风格----------------------------------------</span><span style="color: #008000">*/</span><span style="color: #800000"><br />
</span><span style="color: #008000">/*</span><span style="color: #008000">边框色</span><span style="color: #008000">*/</span><span style="color: #800000"><br />
.color1&nbsp;.b2,.color1&nbsp;.b3,.color1&nbsp;.b4,.color1&nbsp;.b5,.color1&nbsp;.b6,.color1&nbsp;.b7,.color1&nbsp;.content</span><span style="color: #000000">{</span><span style="color: #ff0000">border-color</span><span style="color: #000000">:</span><span style="color: #0000ff">#262626</span><span style="color: #000000">;</span><span style="color: #000000">}</span><span style="color: #800000"><br />
.color1&nbsp;.b1,.color1&nbsp;.b8</span><span style="color: #000000">{</span><span style="color: #ff0000">background</span><span style="color: #000000">:</span><span style="color: #0000ff">#262626</span><span style="color: #000000">;</span><span style="color: #000000">}</span><span style="color: #800000"><br />
</span><span style="color: #008000">/*</span><span style="color: #008000">图片路径</span><span style="color: #008000">*/</span><span style="color: #800000"><br />
.color1&nbsp;.b2,.color1&nbsp;.b3,.color1&nbsp;.b4,.color1&nbsp;h3,.color1&nbsp;.b5,.color1&nbsp;.b6,.color1&nbsp;.b7,.color1&nbsp;.content</span><span style="color: #000000">{</span><span style="color: #ff0000">background</span><span style="color: #000000">:</span><span style="color: #0000ff">url(image/1.jpg)&nbsp;no-repeat</span><span style="color: #000000">;</span><span style="color: #000000">}</span></div>
</div>
</div>
<p></span><span style="font-family: 宋体">前面两句共同构成边线框的颜色值，需要设置成同一个色值，后面的一句设置图片的调用路径。</span></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">三句话就搞定一种颜色方案了。</span>&nbsp;</p>
<p style="text-indent: 21pt"><strong><span style="font-family: 宋体">缺点：</span></strong><strong></strong></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">对于这种用纯</span>CSS<span style="font-family: 宋体">来实现的圆角框，不得不说说它的缺陷。</span></p>
<p style="text-indent: 21pt">1. <span style="font-family: 宋体">语义化不够好，因为其圆角全部由</span>HTML<span style="font-family: 宋体">结构标签堆砌而成，而这些标签在字面上讲没有任何的含义，全是为了样式的表现而存在的，所以造成</span>HTML<span style="font-family: 宋体">代码无端增多，不利于</span>SEO<span style="font-family: 宋体">优化。这也是大家所诟病的地方，也是广大前端工程师不喜欢它的最大原因。</span></p>
<p style="text-indent: 21pt">2. <span style="font-family: 宋体">样式的定义比较复杂，可操作性繁琐，如果没有弄懂原理，会觉得特麻烦</span><span style="font-family: 宋体">。</span></p>
<p style="text-indent: 21pt">3. <span style="font-family: 宋体">边线框宽度只适用于较小的值，无法定义线框的大小，因为一超过</span>1px<span style="font-family: 宋体">的宽度值，就会产生比较直观的锯齿。</span></p>
<p style="text-indent: 21pt">4. <span style="font-family: 宋体">圆角不能调节大小，如果要模拟更圆滑的效果，就需要添加更多的容器，造成结构更加复杂。</span></p>
<p style="text-indent: 21pt">5. <span style="font-family: 宋体">不太适合对图形要求比较高的场合，因为它不够圆滑，如果将它放大会看到一些锯齿。</span></p>
<p style="text-indent: 21pt"><strong><span style="font-family: 宋体">优点：</span></strong></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">说了这么多缺点，也要来说说它的优点：</span></p>
<p style="text-indent: 21pt">1. <span style="font-family: 宋体">兼容性好，这种圆角框通用于全部的浏览器，不存在兼容性问题。</span></p>
<p style="text-indent: 21pt">2. <span style="font-family: 宋体">弹性自适应宽度高度的大小变化，特别适用于流体布局的页面中使用。</span></p>
<p style="text-indent: 21pt">3. <span style="font-family: 宋体">可自定义边框和背景色，随心所欲地改变风格。</span></p>
<p style="text-indent: 21pt">4. <span style="font-family: 宋体">不需要制作圆角图片，节约网络流量，并且也可以减少或降低设计人员的工作量，减少前端人员布局定位的兼容性工作。</span></p>
<p style="text-indent: 21pt"><strong><span style="font-family: 宋体">扩展性：</span></strong><strong></strong></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">如果将它的不足尽最大化地减弱，那么这将是一种不错的效果，我想这些工作就需要</span>JS<span style="font-family: 宋体">来参与了，而这样的话已超出本文标题的范围了。并且这种</span>JS<span style="font-family: 宋体">的圆角框已经有了比较成熟的作品了。</span></p>
<p style="text-indent: 21pt">
<p style="text-indent: 21pt"><span style="font-family: 宋体"></span></p>
<span style="font-family: 宋体">&nbsp;
<p>&nbsp;</p>
<p style="text-align: left; line-height: 16.5pt; text-indent: 24pt;background: white" align="left"><strong><span style="font-family: 宋体; color: black">本模型在以下浏览器中完美通过：</span></strong></p>
<p style="text-align: left; line-height: 16.5pt; text-indent: 24pt;background: white" align="left"><strong><span style="font-family: Verdana; color: red">IE5.5</span></strong><strong><span style="font-family: 宋体; color: red">、</span></strong><strong><span style="font-family: Verdana; color: red">IE6</span></strong><strong><span style="font-family: 宋体; color: red">、</span></strong><strong><span style="font-family: Verdana; color: red">IE7</span></strong><strong><span style="font-family: 宋体; color: red">、</span></strong><strong><span style="font-family: Verdana; color: red">IE8</span></strong><strong><span style="font-family: 宋体; color: red">、</span></strong><strong><span style="font-family: Verdana; color: red">FF3</span></strong><strong><span style="font-family: 宋体; color: red">、</span></strong><strong><span style="font-family: Verdana; color: red">TT</span></strong><strong><span style="font-family: 宋体; color: red">、</span></strong><strong><span style="font-family: Verdana; color: red">Maxthon2.1.5</span></strong><strong><span style="font-family: 宋体; color: red">、</span></strong><strong><span style="font-family: Verdana; color: red">Opera9.6</span></strong><strong><span style="font-family: 宋体; color: red">、</span></strong><strong><span style="font-family: Verdana; color: red">Safari4.0</span></strong><strong><span style="font-family: 宋体; color: red">、</span></strong><strong><span style="font-family: Verdana; color: red">Chrome2.0</span></strong><strong><span style="font-family: 宋体; color: red">。</span></strong></p>
<p style="text-align: left; line-height: 16.5pt; text-indent: 24pt;background: white" align="left"><strong><span style="font-family: 宋体; color: black">点击这儿下载完整的压缩包：</span></strong><strong><span style="font-family: Verdana; color: black"><a title="下载全部模型" href="http://files.cnblogs.com/binyong/3.rar" target="_blank"><span style="color: red; text-decoration: none; text-underline: none">Demo</span></a></span></strong></p>
<p style="text-indent: 21pt"></span>&nbsp;</p><img src="http://www.cnblogs.com/binyong/aggbug/1614978.html?type=1" width="1" height="1" alt=""/><p>评论: 22　<a href="http://www.cnblogs.com/binyong/archive/2009/12/02/1614978.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/binyong/archive/2009/12/02/1614978.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56859/" target="_blank">美调查公司称苹果iPad配件成本最低219美元</a><span style="color:gray">(2010-02-10 17:20)</span><br/>· <a href="http://news.cnblogs.com/n/56858/" target="_blank">摩尔庄园：儿童生意密码</a><span style="color:gray">(2010-02-10 17:15)</span><br/>· <a href="http://news.cnblogs.com/n/56857/" target="_blank">Facebook与美国在线合作 整合AIM动态功能</a><span style="color:gray">(2010-02-10 16:41)</span><br/>· <a href="http://news.cnblogs.com/n/56855/" target="_blank">NDepend 3.0已与Visual Studio集成</a><span style="color:gray">(2010-02-10 16:17)</span><br/>· <a href="http://news.cnblogs.com/n/56854/" target="_blank">Ruby in Steel 1.5发布，去除IronRuby支持</a><span style="color:gray">(2010-02-10 16:14)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/news/tag/Buzz/" target="_blank">Google Buzz相关新闻</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>纯CSS圆角框2－透明圆角化背景图片</title><link>http://www.cnblogs.com/binyong/archive/2009/12/01/1614195.html</link><dc:creator>Biny</dc:creator><author>Biny</author><pubDate>Tue, 01 Dec 2009 00:35:00 GMT</pubDate><guid>http://www.cnblogs.com/binyong/archive/2009/12/01/1614195.html</guid><description><![CDATA[<p>阅读: 4890 评论: 14 作者: <a href="http://www.cnblogs.com/binyong/" target="_blank">Biny</a> 发表于 2009-12-01 08:35 <a href="http://www.cnblogs.com/binyong/archive/2009/12/01/1614195.html" target="_blank">原文链接</a></p>&nbsp;
<hr />
</strong>
<p align="center"><span><strong>&nbsp;</strong></span><span style="font-size: 14pt"><strong>第二章、透明圆角化背景图片</strong></span></p>
<p align="center"><strong><span style="font-family: 宋体"></span></strong><strong><span style="font-family: 宋体">&nbsp;</p>
<p align="center"><strong>原创：<a href="http://binyong.cnblogs.com/" target="_blank">冰极峰</a> 转载请注明出处 2009年12月1日8:33:38</strong></span></strong></p>
<hr />
<p>&nbsp;文章导航：</p>
<p style="text-indent: 21pt"><strong>文章导航：</strong></p>
<p style="text-indent: 21pt"><strong>第一章：<a href="http://www.cnblogs.com/binyong/archive/2009/11/30/1613376.html#1711604" target="_blank">基本的圆角框</strong></a></p>
<p style="text-indent: 21pt"><strong>第二章：<a href="http://www.cnblogs.com/binyong/archive/2009/12/01/1614195.html" target="_blank">透明圆角化背景图片</strong></a></strong></p>
<p style="text-indent: 21pt"><strong>第三章：<a href="http://www.cnblogs.com/binyong/archive/2009/12/02/1614978.html" target="_blank">圆角化图片</strong></a>
<p style="text-indent: 21pt"><strong>第四章：<a href="http://www.cnblogs.com/binyong/archive/2009/12/10/1621484.html" target="_blank">CSS圆角框组件 V1.0</a></strong></p>
<hr />
<p>&nbsp;</p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">在上面的案例中，我只给出最为原始的圆角框模型，它还是存在一些不足之处。比如不能将图片应用到圆角框内。而在本例中，我会在上面的基础上作出一些创新。就是将背景图片也圆角化，好像目前在网络上还没有这样的功能应用，我只见过用</span>js方式来实现的，可以参看我的《<span style="font-family: 宋体"><a href="http://www.cnblogs.com/binyong/archive/2009/03/08/1406521.html" target="_blank"><strong>超圆滑圆角框的半完美解决方案</strong></a></span>》一文中后面几种JS方案。但是纯</span>CSS<span style="font-family: 宋体">方式的实现可是我独家所创，如有雷同，只能说英雄所见略同。呵呵！</span></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">还是先看看最终的效果图，让大家有一个大概的印象。</span></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体"></span>&nbsp;</p>
<p style="text-indent: 21pt"><span style="font-family: 宋体"><img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/binyong/yjq/3.png" width="535" height="559" /></span></p>
<p style="text-indent: 21pt" align="center"><span style="font-family: 宋体">图一</span></p>
<p style="text-indent: 21pt" align="left">像这种小面积布局在网页设计中应用得很普遍，但目前网络流行的作法都是采用图片的方式来实现的，将图片按上中下切成三块内容，然后使用三个同级的DIV或SPAN容器各自填充一张图，但是这种方法有一个最大的毛病：不能自动适应宽度的变化，一般做法都是采用固定宽度的方式，这是由于图片的宽度决定的。</p>
<p style="text-align: left; text-indent: 21pt" align="left">当然对于一些比较有经验的人员来说，可以采用九宫格布局(可参看我的另一篇文章《<span style="font-family: Verdana; font-size: 9pt"><a href="http://www.cnblogs.com/binyong/archive/2009/06/18/1505608.html" target="_blank"><strong style="font-size: 10pt">九宫格基本布局</strong></a></span>》）方式或者滑动门方式来做到自适应宽度的变化，九宫格一般都需要用到八张图片，而滑动门虽然只用一张图片，但为了适应宽度的变化，这张图片一般都做得很大。</p>
<p style="text-align: left; text-indent: 21pt" align="left"><strong><span style="font-family: 宋体">而我现在独创的这种方法可以完全做到适应不同的宽度需要，并且全部兼容所有的浏览器，而所需要的仅仅是一张很小的水平平辅的背景图片而已。</span></strong></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">废话少说，言归正传。</span></p>
<p style="text-align: left; text-indent: 21pt" align="left"><strong><span style="font-family: 宋体">基本原理：</span></strong></p>
<p style="text-align: left; text-indent: 21pt" align="left"><span style="font-family: 宋体">我们都知道图片是方方正正的，不可能做出圆角效果，那么我们如何来做外圆透明的图片呢？其实道理说明了也就是一件很简单的事情，你看过下面的放大示意图后可能就会&#8220;哦&#8221;地一声，原来不过如此&#8230;&#8230;</span></p>
<p style="text-align: left; text-indent: 21pt" align="left"><span style="font-family: 宋体">
<div align="center"><img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/binyong/yjq/4.png" width="464" height="388" /></div>
</span>
<p>&nbsp;</p>
<p style="text-align: center; text-indent: 21pt" align="center"></p>
<p style="text-align: center; text-indent: 21pt" align="center"><span style="font-family: 宋体">图二</span></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">是的，看到这个效果图你会一目了然，可是要想到这个方法，我却浪费了不少脑细胞。呵呵！</span></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">实现这种方法原理很简单：<strong>在每个</strong></span><strong>b</strong><strong><span style="font-family: 宋体">标签中各加载一次同样的图片，并结合背景定位</span></strong><strong>background-position</strong><strong><span style="font-family: 宋体">方式来达到效果。</span></strong><span style="font-family: 宋体">我们知道，同一张图片加载多少次对于性能的影响并不大，因为这张图片已经被电脑缓存到本地，和用</span>css sprites<span style="font-family: 宋体">合并图片一样的道理。</span></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">但是需要注意的是：每个</span>b<span style="font-family: 宋体">标签加载图片的定位是不一样的。</span></p>
<p style="text-indent: 21pt"><strong><span style="font-family: 宋体">背景图片定位原理：</span></strong><strong></strong></p>
<p style="text-indent: 21pt">b1<span style="font-family: 宋体">标签位于第一位，它主要用来描绘上边框线，所以它不需要加载背景图片。</span></p>
<p style="text-indent: 21pt">b2<span style="font-family: 宋体">标签位于第二位，它是第一个需要加载背景图片的，但是不需要图片负偏移，所以直接居左居顶定位就可以了。</span><span style="font-family: 宋体"></p>
<div class="cnblogs_code" onclick="cnblogs_code_collapse($(this))"><img style="display: none" class="code_img_closed" alt="" src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" /><img class="code_img_opened" alt="" src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" /><span class="cnblogs_code_collapse">代码</span>
<div class="cnblogs_code_open">
<div><!--<br/ />
<br/ />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />
http://www.CodeHighlighter.com/<br/ />
<br/ />
--><span style="color: #800000">.b2</span><span style="color: #000000">{</span><span style="color: #ff0000">background-position</span><span style="color: #000000">:</span><span style="color: #0000ff">left&nbsp;top</span><span style="color: #000000">;</span><span style="color: #000000">}</span></div>
</div>
</div>
<p style="text-indent: 21pt"></span>b3<span style="font-family: 宋体">标签位于第三位，它需要加载背景图片，让它的背景图片向上负偏移</span>b2<span style="font-family: 宋体">的高度值就可以，也就是</span>1px<span style="font-family: 宋体">。</span><span style="font-family: 宋体"></p>
<div class="cnblogs_code" onclick="cnblogs_code_collapse($(this))"><img style="display: none" class="code_img_closed" alt="" src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" /><img class="code_img_opened" alt="" src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" /><span class="cnblogs_code_collapse">代码</span>
<div class="cnblogs_code_open">
<div><!--<br/ />
<br/ />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />
http://www.CodeHighlighter.com/<br/ />
<br/ />
--><span style="color: #800000">.b3</span><span style="color: #000000">{</span><span style="color: #ff0000">background-position</span><span style="color: #000000">:</span><span style="color: #0000ff">left&nbsp;-1px</span><span style="color: #000000">;</span><span style="color: #000000">}</span></div>
</div>
</div>
</span>
<p style="text-indent: 21pt">b4<span style="font-family: 宋体">位于第四位，所以它向上负偏移</span>b2+b3<span style="font-family: 宋体">高度值的和，为</span>2px<span style="font-family: 宋体">。</span>&nbsp;</p>
<p style="text-indent: 21pt"></p>
<div class="cnblogs_code"><img style="display: none" id="code_img_closed_e6cab899-f5d4-4208-b151-4020c22484f0" class="code_img_closed" onclick="document.getElementById('cnblogs_code_open_e6cab899-f5d4-4208-b151-4020c22484f0').style.display='block';document.getElementById('code_img_opened_e6cab899-f5d4-4208-b151-4020c22484f0').style.display='inline';this.style.display='none'" src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif"><img id="code_img_opened_e6cab899-f5d4-4208-b151-4020c22484f0" class="code_img_opened" onclick="document.getElementById('cnblogs_code_open_e6cab899-f5d4-4208-b151-4020c22484f0').style.display='none';document.getElementById('code_img_closed_e6cab899-f5d4-4208-b151-4020c22484f0').style.display='inline';this.style.display='none'" src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif"><span class="cnblogs_code_collapse">代码</span>
<div id="cnblogs_code_open_e6cab899-f5d4-4208-b151-4020c22484f0" class="cnblogs_code_open">
<div><!--<br/ />
<br/ />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />
http://www.CodeHighlighter.com/<br/ />
<br/ />
--><span style="color: #800000">.b4</span><span style="color: #000000">{</span><span style="color: #ff0000">background-position</span><span style="color: #000000">:</span><span style="color: #0000ff">left&nbsp;-2px</span><span style="color: #000000">;</span><span style="color: #000000">}</span></div>
</div>
</div>
<p style="text-indent: 21pt">H3<span style="font-family: 宋体">标签位于第五位，所以它的背景图片需要向上负偏移</span>b2+b3+b4<span style="font-family: 宋体">高度值的各，也就是</span>4px<span style="font-family: 宋体">；</span><span style="font-family: 宋体"></p>
<div class="cnblogs_code"><img style="display: none" id="code_img_closed_afbab120-368e-42aa-9220-aa1a65262551" class="code_img_closed" onclick="document.getElementById('cnblogs_code_open_afbab120-368e-42aa-9220-aa1a65262551').style.display='block';document.getElementById('code_img_opened_afbab120-368e-42aa-9220-aa1a65262551').style.display='inline';this.style.display='none'" src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif"><img id="code_img_opened_afbab120-368e-42aa-9220-aa1a65262551" class="code_img_opened" onclick="document.getElementById('cnblogs_code_open_afbab120-368e-42aa-9220-aa1a65262551').style.display='none';document.getElementById('code_img_closed_afbab120-368e-42aa-9220-aa1a65262551').style.display='inline';this.style.display='none'" src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif"><span class="cnblogs_code_collapse">代码</span>
<div id="cnblogs_code_open_afbab120-368e-42aa-9220-aa1a65262551" class="cnblogs_code_open">
<div><!--<br/ />
<br/ />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />
http://www.CodeHighlighter.com/<br/ />
<br/ />
--><span style="color: #800000">h3</span><span style="color: #000000">{</span><span style="color: #ff0000">background-position</span><span style="color: #000000">:</span><span style="color: #0000ff">left&nbsp;-4px</span><span style="color: #000000">;</span><span style="color: #000000">}</span></div>
</div>
</div>
</span>
<p style="text-indent: 21pt"><span style="font-family: 宋体">这样，</span>b2<span style="font-family: 宋体">、</span>b3<span style="font-family: 宋体">、</span>b4<span style="font-family: 宋体">、</span>h3<span style="font-family: 宋体">的图片叠加起来和原始图片上下渐变的效果完全重合，如同一张图片，这样就达到模拟圆角图片的效果。</span></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">怎么样，原理够简单明了吧！</span></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">原理清楚后，要实现起来也就是一件水到渠成的事！</span></p>
<p style="text-indent: 21pt"><strong>HTML</strong><strong><span style="font-family: 宋体">结构层：</span></strong><strong></strong></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">如同我们在第一章中模型所见，保持结构不变。</span></p>
<p style="text-indent: 21pt">&nbsp;</p>
<p style="text-indent: 21pt"><strong>CSS</strong><strong><span style="font-family: 宋体">样式层：（只写关键代码）</span></strong></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">将上面的几句代码进行合并，如下所示：</span><span style="font-family: 宋体"></p>
<div class="cnblogs_code" onclick="cnblogs_code_collapse($(this))"><img style="display: none" class="code_img_closed" alt="" src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" /><img class="code_img_opened" alt="" src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" /><span class="cnblogs_code_collapse">代码</span>
<div class="cnblogs_code_open">
<div><!--<br/ />
<br/ />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />
http://www.CodeHighlighter.com/<br/ />
<br/ />
--><span style="color: #008080">1</span>&nbsp;<span style="color: #800000">.sharp&nbsp;b.b2</span><span style="color: #000000">{</span><span style="color: #ff0000">background-position</span><span style="color: #000000">:</span><span style="color: #0000ff">left&nbsp;top</span><span style="color: #000000">;</span><span style="color: #000000">}</span><span style="color: #800000"><br />
</span><span style="color: #008080">2</span>&nbsp;<span style="color: #800000">.sharp&nbsp;b.b3</span><span style="color: #000000">{</span><span style="color: #ff0000">background-position</span><span style="color: #000000">:</span><span style="color: #0000ff">left&nbsp;-1px</span><span style="color: #000000">;</span><span style="color: #000000">}</span><span style="color: #800000"><br />
</span><span style="color: #008080">3</span>&nbsp;<span style="color: #800000">.sharp&nbsp;b.b4</span><span style="color: #000000">{</span><span style="color: #ff0000">background-position</span><span style="color: #000000">:</span><span style="color: #0000ff">left&nbsp;-2px</span><span style="color: #000000">;</span><span style="color: #000000">}</span><span style="color: #800000"><br />
</span><span style="color: #008080">4</span>&nbsp;<span style="color: #800000">.sharp&nbsp;.content&nbsp;h3</span><span style="color: #000000">{</span><span style="color: #ff0000">background-position</span><span style="color: #000000">:</span><span style="color: #0000ff">left&nbsp;-4px</span><span style="color: #000000">;</span><span style="color: #000000">}</span>&nbsp;<span style="color: #800000"></span></div>
</div>
</div>
</span>
<p style="text-indent: 21pt"><span style="font-family: 宋体">和第一章中同样的道理，我们肯定要在各个不同的块框中有不同的背景图片的变化，也就是说，我们也要实现不同的换肤方案，当一个页面要多次调用同一个圆角框时，也可以让它们有些丰富的变化。实现不同的风格。</span>OK<span style="font-family: 宋体">，没问题，你只需要简单的将下面的样式中的背景图片的路径改变一下就可以了。</span><span style="font-family: 宋体"></p>
<div class="cnblogs_code" onclick="cnblogs_code_collapse($(this))"><img style="display: none" class="code_img_closed" alt="" src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" /><img class="code_img_opened" alt="" src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" /><span class="cnblogs_code_collapse">代码</span>
<div class="cnblogs_code_open">
<div><!--<br/ />
<br/ />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />
http://www.CodeHighlighter.com/<br/ />
<br/ />
--><span style="color: #800000">.color1&nbsp;.b2,.color1&nbsp;.b3,.color1&nbsp;.b4,.color1&nbsp;h3</span><span style="color: #000000">{</span><span style="color: #ff0000">background</span><span style="color: #000000">:</span><span style="color: #0000ff">url(images/bg1.gif)&nbsp;repeat-x</span><span style="color: #000000">;</span><span style="color: #000000">}</span></div>
</div>
</div>
</span>
<p style="text-indent: 21pt"><span style="font-family: 宋体">你可以实现不同的颜色方案，就看你的设计师给你多少张不同图片了。</span></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">一种风格的定制也是一件简单的事情：</span></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体"></p>
<div class="cnblogs_code" onclick="cnblogs_code_collapse($(this))"><img style="display: none" class="code_img_closed" alt="" src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" /><img class="code_img_opened" alt="" src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" /><span class="cnblogs_code_collapse">代码</span>
<div class="cnblogs_code_open">
<div><!--<br/ />
<br/ />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />
http://www.CodeHighlighter.com/<br/ />
<br/ />
--><span style="color: #008080">&nbsp;1</span><img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" /><span style="color: #000000">*颜色方案一,绿色风格----------------------------------------*/<br />
</span><span style="color: #008080">&nbsp;2</span><span style="color: #000000"><img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" /><br />
</span><span style="color: #008080">&nbsp;3</span><span style="color: #000000"><img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" />/*边框色*/<br />
</span><span style="color: #008080">&nbsp;4</span><span style="color: #000000"><img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" />.color1&nbsp;.b2,.color1&nbsp;.b3,.color1&nbsp;.b4,.color1&nbsp;.b5,.color1&nbsp;.b6,.color1&nbsp;.b7,.color1&nbsp;.content{border-color:#A0C044;}<br />
</span><span style="color: #008080">&nbsp;5</span><span style="color: #000000"><img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" />.color1&nbsp;.b1,.color1&nbsp;.b8{background:#A0C044;}<br />
</span><span style="color: #008080">&nbsp;6</span><span style="color: #000000"><img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" />.color1&nbsp;h3{border-bottom:1px&nbsp;#679800&nbsp;solid;}<br />
</span><span style="color: #008080">&nbsp;7</span><span style="color: #000000"><img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" /><br />
</span><span style="color: #008080">&nbsp;8</span><span style="color: #000000"><img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" />/*图片路径*/<br />
</span><span style="color: #008080">&nbsp;9</span><span style="color: #000000"><img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" />.color1&nbsp;.b2,.color1&nbsp;.b3,.color1&nbsp;.b4,.color1&nbsp;h3{background:url(images/bg1.gif)&nbsp;repeat-x;}<br />
</span><span style="color: #008080">10</span><span style="color: #000000"><img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" /><br />
</span><span style="color: #008080">11</span><span style="color: #000000"><img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" />/*文字内容背景色*/<br />
</span><span style="color: #008080">12</span><span style="color: #000000"><img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" />.color1&nbsp;.b5,.color1&nbsp;.b6,.color1&nbsp;.b7{background:#FFF;}</span></div>
</div>
</div>
<p style="text-indent: 21pt">你只需要复制上面的代码，简单修改一下边框色，背景色，图片路径就变成你想要的风格了，是不是很简单呢？然后在你想应用样式的容器上定义这个</span>color1<span style="font-family: 宋体">类名即可。</span></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">在我的演示模型中，我定义了</span>9<span style="font-family: 宋体">种风格的变化，看看有没有适合你需要，直接复制就可以使用了，祝您用得开心！</span></p>
<p style="text-align: left; text-indent: 21pt" align="left"><strong><span style="font-family: 宋体">为了演示效果，本模型的宽度值全部采用百分比实现的，你可以随意伸缩宽度，看看它能否适应弹性的变化。</span></strong></p>
<p align="left">&nbsp;</p>
<p style="text-align: left; text-indent: 21pt" align="left"><strong><span style="font-family: 宋体; color: black">本模型在以下浏览器中完美通过：</span></strong></p>
<p style="text-align: left; line-height: 16.5pt; text-indent: 24pt;background: white" align="left"><strong><span style="font-family: Verdana; color: red">IE5.5</span></strong><strong><span style="font-family: 宋体; color: red">、</span></strong><strong><span style="font-family: Verdana; color: red">IE6</span></strong><strong><span style="font-family: 宋体; color: red">、</span></strong><strong><span style="font-family: Verdana; color: red">IE7</span></strong><strong><span style="font-family: 宋体; color: red">、</span></strong><strong><span style="font-family: Verdana; color: red">IE8</span></strong><strong><span style="font-family: 宋体; color: red">、</span></strong><strong><span style="font-family: Verdana; color: red">FF3</span></strong><strong><span style="font-family: 宋体; color: red">、</span></strong><strong><span style="font-family: Verdana; color: red">TT</span></strong><strong><span style="font-family: 宋体; color: red">、</span></strong><strong><span style="font-family: Verdana; color: red">Maxthon2.1.5</span></strong><strong><span style="font-family: 宋体; color: red">、</span></strong><strong><span style="font-family: Verdana; color: red">Opera9.6</span></strong><strong><span style="font-family: 宋体; color: red">、</span></strong><strong><span style="font-family: Verdana; color: red">Safari4.0</span></strong><strong><span style="font-family: 宋体; color: red">、</span></strong><strong><span style="font-family: Verdana; color: red">Chrome2.0</span></strong><strong><span style="font-family: 宋体; color: red">。</span></strong></p>
<p style="text-align: left; line-height: 16.5pt; text-indent: 24pt;background: white" align="left"><strong><span style="font-family: 宋体; color: black">点击这儿下载完整的压缩包：</span></strong><strong><span style="font-family: Verdana; color: black"><a title="下载全部模型" href="http://files.cnblogs.com/binyong/2.rar" target="_blank"><span style="color: red">Demo</span></a></span></strong></p>
</strong>  <img src="http://www.cnblogs.com/binyong/aggbug/1614195.html?type=1" width="1" height="1" alt=""/><p>评论: 14　<a href="http://www.cnblogs.com/binyong/archive/2009/12/01/1614195.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/binyong/archive/2009/12/01/1614195.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56859/" target="_blank">美调查公司称苹果iPad配件成本最低219美元</a><span style="color:gray">(2010-02-10 17:20)</span><br/>· <a href="http://news.cnblogs.com/n/56858/" target="_blank">摩尔庄园：儿童生意密码</a><span style="color:gray">(2010-02-10 17:15)</span><br/>· <a href="http://news.cnblogs.com/n/56857/" target="_blank">Facebook与美国在线合作 整合AIM动态功能</a><span style="color:gray">(2010-02-10 16:41)</span><br/>· <a href="http://news.cnblogs.com/n/56855/" target="_blank">NDepend 3.0已与Visual Studio集成</a><span style="color:gray">(2010-02-10 16:17)</span><br/>· <a href="http://news.cnblogs.com/n/56854/" target="_blank">Ruby in Steel 1.5发布，去除IronRuby支持</a><span style="color:gray">(2010-02-10 16:14)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/news/tag/Buzz/" target="_blank">Google Buzz相关新闻</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>纯CSS圆角框</title><link>http://www.cnblogs.com/binyong/archive/2009/11/30/1613376.html</link><dc:creator>Biny</dc:creator><author>Biny</author><pubDate>Mon, 30 Nov 2009 03:25:00 GMT</pubDate><guid>http://www.cnblogs.com/binyong/archive/2009/11/30/1613376.html</guid><description><![CDATA[<p>阅读: 5011 评论: 25 作者: <a href="http://www.cnblogs.com/binyong/" target="_blank">Biny</a> 发表于 2009-11-30 11:25 <a href="http://www.cnblogs.com/binyong/archive/2009/11/30/1613376.html" target="_blank">原文链接</a></p><hr />
<p align="center"><strong style="font-size: 14pt">第一章、基本的圆角框 </strong></p>
<p align="center"><strong>原创：<a href="http://binyong.cnblogs.com/" target="_blank">冰极峰</a> 转载请注明出处 2009年11月30日10:19:34</strong></p>
<hr />
<p style="text-indent: 21pt"><strong>文章导航：</strong></p>
<p style="text-indent: 21pt"><strong>第一章：<a href="http://www.cnblogs.com/binyong/archive/2009/11/30/1613376.html#1711604" target="_blank">基本的圆角框</strong></a></p>
<p style="text-indent: 21pt"><strong>第二章：<a href="http://www.cnblogs.com/binyong/archive/2009/12/01/1614195.html" target="_blank">透明圆角化背景图片</strong></a></strong></p>
<p style="text-indent: 21pt"><strong>第三章：<a href="http://www.cnblogs.com/binyong/archive/2009/12/02/1614978.html" target="_blank">圆角化图片</strong></a>
<p style="text-indent: 21pt"><strong>第四章：<a href="http://www.cnblogs.com/binyong/archive/2009/12/10/1621484.html" target="_blank">CSS圆角框组件 V1.0</a></strong></p>
<hr />
<p>&nbsp;</p>
<p><span style="font-family: 宋体">序言：在我的文章《</span><strong><span style="font-family: 宋体"><a href="http://www.cnblogs.com/binyong/archive/2009/03/08/1406521.html" target="_blank"><strong><span style="font-family: 宋体">超圆滑圆角框的半完美解决方案</span></strong></a></span></strong><span style="font-family: 宋体">》中已经总结了七种不同的圆角框解决方案，基本上总结完了目前网络上比较流行的圆角框实现方案。而在我的另一篇文章《</span><strong><span style="font-family: 宋体; color: black"><a href="http://www.cnblogs.com/binyong/archive/2009/03/14/1411789.html" target="_blank">无图片山顶角</a></span></strong><span style="font-family: 宋体">》中又是一个另类的实现方法。</span></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">纯</span>CSS<span style="font-family: 宋体">实现圆角框是一件大家都说烂了的事件，我也写过两篇总结文章，为什么还会有这篇文章呢，事情是这样的。在我们的以前的项目中，实现圆角框往往是用背景图片来实现的，但是，当这些项目发布上线后，在维护过程中，有时需要添加一些新的需求，因为以前的项目中大量采用了圆角图片，并且这些图片全部采用了</span>CSS sprites<span style="font-family: 宋体">方式合并的图，为了不增加更多的额外工作，并且也不想用</span>JS<span style="font-family: 宋体">来添加更多的</span>http<span style="font-family: 宋体">请求，所以需要一些简单的</span>CSS<span style="font-family: 宋体">方案来解决这个问题。而我的个人爱好，也喜欢采用无图片的方式来处理这些效果。总觉得</span>CSS<span style="font-family: 宋体">能完成的工作，为什么不让它来实现呢？</span>&nbsp;</p>
<p style="text-indent: 21pt"><strong><span style="font-family: 宋体">实现原理：</span></strong></p>
<p style="text-indent: 21pt"><strong><span style="font-family: 宋体"></span></strong><span style="font-family: 宋体">纯</span>CSS<span style="font-family: 宋体">方式实现圆角框的原理在网络上已经有很多人详细解说了，下面这个示意图是我将其中的一个圆角进行放大后的效果。</span></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体"></span>&nbsp;</p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">
<div align="center"><img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/binyong/yjq/1.png" width="451" height="321" /></span>&nbsp;&nbsp;</div>
<p style="text-align: center; text-indent: 21pt" align="center"></p>
<p style="text-align: center; text-indent: 21pt" align="center"><span style="font-family: 宋体">图一</span></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">从上面效果图中我们可以看到其实这种圆角框是靠一个个容器堆砌而成的，每一个容器的宽度不同，这个宽度是由</span>margin<span style="font-family: 宋体">外边距来实现的，如：</span>margin:0 5px;<span style="font-family: 宋体">就是左右两侧的外边距</span>5<span style="font-family: 宋体">像素，从上到下有</span>5<span style="font-family: 宋体">条线，其外边距分别为</span>5px<span style="font-family: 宋体">，</span>3px<span style="font-family: 宋体">，</span>2px<span style="font-family: 宋体">，</span>1px<span style="font-family: 宋体">，依次递减。因此根据这个原理我们可以实现简单的</span>html<span style="font-family: 宋体">结构和样式。</span></p>
<p style="text-indent: 21pt"><strong>1</strong><strong><span style="font-family: 宋体">、</span></strong><strong>Html</strong><strong><span style="font-family: 宋体">结构层：</span></strong></p>
<div class="cnblogs_code" onclick="cnblogs_code_collapse($(this))"><img style="display: none" class="code_img_closed" alt="" src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" /><img class="code_img_opened" alt="" src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" /><span class="cnblogs_code_collapse">代码</span>
<div class="cnblogs_code_open">
<div><!--<br/ />
<br/ />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />
http://www.CodeHighlighter.com/<br/ />
<br/ />
--><span style="color: #008080">1</span><img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">div&nbsp;</span><span style="color: #ff0000">class</span><span style="color: #0000ff">="sharp&nbsp;color1"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">2</span><span style="color: #000000"><img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">b&nbsp;</span><span style="color: #ff0000">class</span><span style="color: #0000ff">="b1"</span><span style="color: #0000ff">&gt;&lt;/</span><span style="color: #800000">b</span><span style="color: #0000ff">&gt;&lt;</span><span style="color: #800000">b&nbsp;</span><span style="color: #ff0000">class</span><span style="color: #0000ff">="b2"</span><span style="color: #0000ff">&gt;&lt;/</span><span style="color: #800000">b</span><span style="color: #0000ff">&gt;&lt;</span><span style="color: #800000">b&nbsp;</span><span style="color: #ff0000">class</span><span style="color: #0000ff">="b3"</span><span style="color: #0000ff">&gt;&lt;/</span><span style="color: #800000">b</span><span style="color: #0000ff">&gt;&lt;</span><span style="color: #800000">b&nbsp;</span><span style="color: #ff0000">class</span><span style="color: #0000ff">="b4"</span><span style="color: #0000ff">&gt;&lt;/</span><span style="color: #800000">b</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br />
</span><span style="color: #008080">3</span><span style="color: #000000"><img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">div&nbsp;</span><span style="color: #ff0000">class</span><span style="color: #0000ff">="content"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">文字内容</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">div</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">4</span><span style="color: #000000"><img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">div</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">5</span><span style="color: #000000"><img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">b&nbsp;</span><span style="color: #ff0000">class</span><span style="color: #0000ff">="b5"</span><span style="color: #0000ff">&gt;&lt;/</span><span style="color: #800000">b</span><span style="color: #0000ff">&gt;&lt;</span><span style="color: #800000">b&nbsp;</span><span style="color: #ff0000">class</span><span style="color: #0000ff">="b6"</span><span style="color: #0000ff">&gt;&lt;/</span><span style="color: #800000">b</span><span style="color: #0000ff">&gt;&lt;</span><span style="color: #800000">b&nbsp;</span><span style="color: #ff0000">class</span><span style="color: #0000ff">="b7"</span><span style="color: #0000ff">&gt;&lt;/</span><span style="color: #800000">b</span><span style="color: #0000ff">&gt;&lt;</span><span style="color: #800000">b&nbsp;</span><span style="color: #ff0000">class</span><span style="color: #0000ff">="b8"</span><span style="color: #0000ff">&gt;&lt;/</span><span style="color: #800000">b</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">6</span><span style="color: #000000"><img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">div</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" /></span></div>
</div>
</div>
<p style="text-indent: 21pt">b1~b4<span style="font-family: 宋体">构成上面的左右两个圆角结构体，而</span>b5~b8<span style="font-family: 宋体">则构建了下面左右两个圆角结构体。而</span>content<span style="font-family: 宋体">则是内容主体，将这些全部放在一个大的容器中，并给它的一个类名</span>sharp<span style="font-family: 宋体">，用来设置通用的样式。再给它叠加了一个</span>color1<span style="font-family: 宋体">类名，这个类名用来区别不同的颜色方案，因为可能会有不同颜色的圆角框。</span></p>
<p style="text-indent: 21pt"><strong>2</strong><strong><span style="font-family: 宋体">、</span></strong><strong>CSS</strong><strong><span style="font-family: 宋体">样式：</span></strong><strong></p>
<div class="cnblogs_code" onclick="cnblogs_code_collapse($(this))"><img style="display: none" class="code_img_closed" alt="" src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" /><img class="code_img_opened" alt="" src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" /><span class="cnblogs_code_collapse">代码</span>
<div class="cnblogs_code_open">
<div><!--<br/ />
<br/ />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />
http://www.CodeHighlighter.com/<br/ />
<br/ />
--><span style="color: #008080">1</span><img id="Codehighlighter1_31_91_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_31_91_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_31_91_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_31_91_Closed_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_31_91_Closed_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_31_91_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_31_91_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_31_91_Open_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif"><span style="color: #800000">.b1,.b2,.b3,.b4,.b5,.b6,.b7,.b8</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_31_91_Closed_Text">{<img alt="" src="http://images.cnblogs.com/dot.gif" />}</span><span id="Codehighlighter1_31_91_Open_Text"><span style="color: #000000">{</span><span style="color: #ff0000">height</span><span style="color: #000000">:</span><span style="color: #0000ff">1px</span><span style="color: #000000">;</span><span style="color: #ff0000">&nbsp;font-size</span><span style="color: #000000">:</span><span style="color: #0000ff">1px</span><span style="color: #000000">;</span><span style="color: #ff0000">&nbsp;overflow</span><span style="color: #000000">:</span><span style="color: #0000ff">hidden</span><span style="color: #000000">;</span><span style="color: #ff0000">&nbsp;display</span><span style="color: #000000">:</span><span style="color: #0000ff">block</span><span style="color: #000000">;</span><span style="color: #000000">}</span></span><span style="color: #800000"><br />
</span><span style="color: #008080">2</span><span style="color: #800000"><img id="Codehighlighter1_99_114_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_99_114_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_99_114_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_99_114_Closed_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_99_114_Closed_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_99_114_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_99_114_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_99_114_Open_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif">.b1,.b8</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_99_114_Closed_Text">{<img alt="" src="http://images.cnblogs.com/dot.gif" />}</span><span id="Codehighlighter1_99_114_Open_Text"><span style="color: #000000">{</span><span style="color: #ff0000">margin</span><span style="color: #000000">:</span><span style="color: #0000ff">0&nbsp;5px</span><span style="color: #000000">;</span><span style="color: #000000">}</span></span><span style="color: #800000"><br />
</span><span style="color: #008080">3</span><span style="color: #800000"><img id="Codehighlighter1_122_183_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_122_183_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_122_183_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_122_183_Closed_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_122_183_Closed_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_122_183_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_122_183_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_122_183_Open_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif">.b2,.b7</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_122_183_Closed_Text">{<img alt="" src="http://images.cnblogs.com/dot.gif" />}</span><span id="Codehighlighter1_122_183_Open_Text"><span style="color: #000000">{</span><span style="color: #ff0000">margin</span><span style="color: #000000">:</span><span style="color: #0000ff">0&nbsp;3px</span><span style="color: #000000">;</span><span style="color: #ff0000">border-right</span><span style="color: #000000">:</span><span style="color: #0000ff">2px&nbsp;solid</span><span style="color: #000000">;</span><span style="color: #ff0000">&nbsp;border-left</span><span style="color: #000000">:</span><span style="color: #0000ff">2px&nbsp;solid</span><span style="color: #000000">;</span><span style="color: #000000">}</span></span><span style="color: #800000"><br />
</span><span style="color: #008080">4</span><span style="color: #800000"><img id="Codehighlighter1_191_252_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_191_252_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_191_252_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_191_252_Closed_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_191_252_Closed_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_191_252_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_191_252_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_191_252_Open_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif">.b3,.b6</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_191_252_Closed_Text">{<img alt="" src="http://images.cnblogs.com/dot.gif" />}</span><span id="Codehighlighter1_191_252_Open_Text"><span style="color: #000000">{</span><span style="color: #ff0000">margin</span><span style="color: #000000">:</span><span style="color: #0000ff">0&nbsp;2px</span><span style="color: #000000">;</span><span style="color: #ff0000">border-right</span><span style="color: #000000">:</span><span style="color: #0000ff">1px&nbsp;solid</span><span style="color: #000000">;</span><span style="color: #ff0000">&nbsp;border-left</span><span style="color: #000000">:</span><span style="color: #0000ff">1px&nbsp;solid</span><span style="color: #000000">;</span><span style="color: #000000">}</span></span><span style="color: #800000"><br />
</span><span style="color: #008080">5</span><span style="color: #800000"><img id="Codehighlighter1_260_333_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_260_333_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_260_333_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_260_333_Closed_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_260_333_Closed_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_260_333_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_260_333_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_260_333_Open_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif">.b4,.b5</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_260_333_Closed_Text">{<img alt="" src="http://images.cnblogs.com/dot.gif" />}</span><span id="Codehighlighter1_260_333_Open_Text"><span style="color: #000000">{</span><span style="color: #ff0000">margin</span><span style="color: #000000">:</span><span style="color: #0000ff">0&nbsp;1px</span><span style="color: #000000">;</span><span style="color: #ff0000">border-right</span><span style="color: #000000">:</span><span style="color: #0000ff">1px&nbsp;solid</span><span style="color: #000000">;</span><span style="color: #ff0000">&nbsp;border-left</span><span style="color: #000000">:</span><span style="color: #0000ff">1px&nbsp;solid</span><span style="color: #000000">;</span><span style="color: #ff0000">&nbsp;height</span><span style="color: #000000">:</span><span style="color: #0000ff">2px</span><span style="color: #000000">;</span><span style="color: #000000">}</span></span><span style="color: #800000">&nbsp;</span></div>
</div>
</div>
</strong>
<p style="text-indent: 21pt"><span style="font-family: 宋体">将每个</span>b<span style="font-family: 宋体">标签都设置为块状结构，并定义其高度为</span>1<span style="font-family: 宋体">像素，超出部分溢出隐藏。从上面样式中我们已经看到</span>margin<span style="font-family: 宋体">值的设置，是从大到小减少的。而</span>b1<span style="font-family: 宋体">和</span>b8<span style="font-family: 宋体">的设置是一样，已经将它们合并在一起了，同样的原理，</span>b2<span style="font-family: 宋体">和</span>b7<span style="font-family: 宋体">、</span>b3<span style="font-family: 宋体">和</span>b6<span style="font-family: 宋体">、</span>b4<span style="font-family: 宋体">和</span>b5<span style="font-family: 宋体">都是一样的设置。这是因为上面两个圆和下面的两个圆是一样，只是顺序是相对的，所以将它合并设置在一起。有利于减少</span>CSS<span style="font-family: 宋体">样式代码的字符大小。后面三句和第二句有点不同的地方是多设置了左右边框的样式，但是在这儿并没有设置边框的颜色，这是为什么呢，因为这个边框颜色是我们需要适时变化，所以将它们分离出来，在下面的代码中单独定义。</span></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">接下我们设置内容区的样式：</span><span style="font-family: 宋体">&nbsp;</p>
<div class="cnblogs_code" onclick="cnblogs_code_collapse($(this))"><img style="display: none" class="code_img_closed" alt="" src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" /><img class="code_img_opened" alt="" src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" /><span class="cnblogs_code_collapse">代码</span>
<div class="cnblogs_code_open">
<div><!--<br/ />
<br/ />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />
http://www.CodeHighlighter.com/<br/ />
<br/ />
--><span style="color: #800000">.content&nbsp;</span><span style="color: #000000">{</span><span style="color: #ff0000">border-right</span><span style="color: #000000">:</span><span style="color: #0000ff">1px&nbsp;solid</span><span style="color: #000000">;</span><span style="color: #ff0000">border-left</span><span style="color: #000000">:</span><span style="color: #0000ff">1px&nbsp;solid</span><span style="color: #000000">;</span><span style="color: #ff0000">overflow</span><span style="color: #000000">:</span><span style="color: #0000ff">hidden</span><span style="color: #000000">;</span><span style="color: #000000">}</span><span style="color: #800000"><br />
</span></div>
</div>
</div>
</span>
<p style="text-indent: 21pt"><span style="font-family: 宋体">也是只设置左右边框线，但是不设置颜色值，它和上面八个</span>b<span style="font-family: 宋体">标签一起构成圆角框的外边框轮廓。</span></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">往往在一个页面中存在多个圆角框，而每个圆角框有可能其边框颜色各不相同，有没有可能针对不同的设计制作不同的换肤方案呢，答案是有的。在我的这个应用中，可以换不同的皮肤颜色，并且设置颜色方案也并不是一件很难的事情。下面看看我是如何将它们应用到不同的颜色的。</span></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">在上面的样式设计中，我已经给颜色方案留下了可以扩展的空间。我将所有的涉及到边框色的类名全部集中在一起，用群选择符给它们设置一个边框的颜色就可以了。如下所示：</span><span style="font-family: 宋体"></p>
<div class="cnblogs_code" onclick="cnblogs_code_collapse($(this))"><img style="display: none" class="code_img_closed" alt="" src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" /><img class="code_img_opened" alt="" src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" /><span class="cnblogs_code_collapse">代码</span>
<div class="cnblogs_code_open">
<div><!--<br/ />
<br/ />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />
http://www.CodeHighlighter.com/<br/ />
<br/ />
--><span style="color: #008080">1</span><img id="Codehighlighter1_88_111_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_88_111_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_88_111_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_88_111_Closed_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_88_111_Closed_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_88_111_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_88_111_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_88_111_Open_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif"><span style="color: #800000">.color1&nbsp;.b2,.color1&nbsp;.b3,.color1&nbsp;.b4,.color1&nbsp;.b5,.color1&nbsp;.b6,.color1&nbsp;.b7,.color1&nbsp;.content</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_88_111_Closed_Text">{<img alt="" src="http://images.cnblogs.com/dot.gif" />}</span><span id="Codehighlighter1_88_111_Open_Text"><span style="color: #000000">{</span><span style="color: #ff0000">border-color</span><span style="color: #000000">:</span><span style="color: #0000ff">#96C2F1</span><span style="color: #000000">;</span><span style="color: #000000">}</span></span><span style="color: #800000"><br />
</span><span style="color: #008080">2</span><span style="color: #800000"><img id="Codehighlighter1_135_156_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_135_156_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_135_156_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_135_156_Closed_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_135_156_Closed_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_135_156_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_135_156_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_135_156_Open_Text').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif">.color1&nbsp;.b1,.color1&nbsp;.b8</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_135_156_Closed_Text">{<img alt="" src="http://images.cnblogs.com/dot.gif" />}</span><span id="Codehighlighter1_135_156_Open_Text"><span style="color: #000000">{</span><span style="color: #ff0000">background</span><span style="color: #000000">:</span><span style="color: #0000ff">#96C2F1</span><span style="color: #000000">;</span><span style="color: #000000">}</span></span><span style="color: #800000"><img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" /></span></div>
</div>
</div>
</span>
<p style="text-indent: 21pt"><span style="font-family: 宋体">注意：需要将这两句的颜色值设置为一样的，第二句中虽说是设置的</span>background<span style="font-family: 宋体">背景色，但它同样是上下边框线的颜色，这一点一定要记住。因为</span>b1<span style="font-family: 宋体">和</span>b8<span style="font-family: 宋体">并没有设置</span>border<span style="font-family: 宋体">，但它的高度值为</span>1px<span style="font-family: 宋体">，所以用它的背景色就达到了模拟上下边框的颜色了。</span></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">现在已经将一个圆角框描述出来了，但是有一个问题要注意，就是内容区的背景色，因为这儿是存载文字主体的地方。所以还需要加入下面这句话，也是群集选择符来设置圆角内的所有背景色。</span><span style="font-family: 宋体"></p>
<div class="cnblogs_code" onclick="cnblogs_code_collapse($(this))"><img style="display: none" class="code_img_closed" alt="" src="http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" /><img class="code_img_opened" alt="" src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" /><span class="cnblogs_code_collapse">代码</span>
<div class="cnblogs_code_open">
<div><!--<br/ />
<br/ />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />
http://www.CodeHighlighter.com/<br/ />
<br/ />
--><span style="color: #800000">.color1&nbsp;.b2,.color1&nbsp;.b3,.color1&nbsp;.b4,.color1&nbsp;.b5,.color1&nbsp;.b6,.color1&nbsp;.b7,.color1&nbsp;.content</span><span style="color: #000000">{</span><span style="color: #ff0000">background</span><span style="color: #000000">:</span><span style="color: #0000ff">#EFF7FF</span><span style="color: #000000">;</span><span style="color: #000000">}</span><span style="color: #800000"><br />
</span></div>
</div>
</div>
</span>
<p style="text-indent: 21pt"><span style="font-family: 宋体">这儿除了</span>b1<span style="font-family: 宋体">和</span>b8<span style="font-family: 宋体">外，其它的标签都包含进来了，并且包括</span>content<span style="font-family: 宋体">容器，将它们的背景色全部设置一个颜色，这样除了线框外的所有地方都成为一种颜色了。在这儿我也用到包含选择符，给它们都加了一个</span>color1<span style="font-family: 宋体">，这是颜色方案</span>1<span style="font-family: 宋体">的类名，依照这个原理可以设置不同的换肤方案。</span></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">好了，我们将上面的所有代码集中起来，就完成一个纯</span>CSS<span style="font-family: 宋体">圆角框的实例模型，在源码中，我设置了六套颜色方案，其它的颜色方案就看你的了。</span></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">下面是源码演示后的截图：</span></p>
<p style="text-indent: 21pt"><span style="font-family: 宋体">
<div align="center"><img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/binyong/yjq/2.png" width="512" height="447" /></span>&nbsp;</div>
<p align="center"></p>
<p align="center"><span style="font-family: 宋体">图二</span></p>
<p align="left"><span>&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-family: 宋体">为了演示效果，本模型的宽度值全部采用百分比实现的，你可以随意伸缩宽度，看看它能否适应弹性的变化。</span></p>
<p style="text-align: left; line-height: 16.5pt; text-indent: 24pt;background: white" align="left"><strong><span style="font-family: 宋体; color: black">本模型在以下浏览器中完美通过：</span></strong></p>
<p style="text-align: left; line-height: 16.5pt; text-indent: 24pt;background: white" align="left"><strong><span style="font-family: Verdana; color: red">IE5.5</span></strong><strong><span style="font-family: 宋体; color: red">、</span></strong><strong><span style="font-family: Verdana; color: red">IE6</span></strong><strong><span style="font-family: 宋体; color: red">、</span></strong><strong><span style="font-family: Verdana; color: red">IE7</span></strong><strong><span style="font-family: 宋体; color: red">、</span></strong><strong><span style="font-family: Verdana; color: red">IE8</span></strong><strong><span style="font-family: 宋体; color: red">、</span></strong><strong><span style="font-family: Verdana; color: red">FF3</span></strong><strong><span style="font-family: 宋体; color: red">、</span></strong><strong><span style="font-family: Verdana; color: red">TT</span></strong><strong><span style="font-family: 宋体; color: red">、</span></strong><strong><span style="font-family: Verdana; color: red">Maxthon2.1.5</span></strong><strong><span style="font-family: 宋体; color: red">、</span></strong><strong><span style="font-family: Verdana; color: red">Opera9.6</span></strong><strong><span style="font-family: 宋体; color: red">、</span></strong><strong><span style="font-family: Verdana; color: red">Safari4.0</span></strong><strong><span style="font-family: 宋体; color: red">、</span></strong><strong><span style="font-family: Verdana; color: red">Chrome2.0</span></strong><strong><span style="font-family: 宋体; color: red">。</span></strong></p>
<p style="text-align: left; line-height: 16.5pt; text-indent: 24pt;background: white" align="left"><strong><span style="font-family: 宋体; color: black">点击这儿下载完整的压缩包：</span></strong><strong><span style="font-family: Verdana; color: black"><a title="下载全部模型" href="http://files.cnblogs.com/binyong/1.rar" target="_blank"><span style="color: red; text-decoration: none; text-underline: none">Demo</span></a></span></strong></p><img src="http://www.cnblogs.com/binyong/aggbug/1613376.html?type=1" width="1" height="1" alt=""/><p>评论: 25　<a href="http://www.cnblogs.com/binyong/archive/2009/11/30/1613376.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/binyong/archive/2009/11/30/1613376.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56859/" target="_blank">美调查公司称苹果iPad配件成本最低219美元</a><span style="color:gray">(2010-02-10 17:20)</span><br/>· <a href="http://news.cnblogs.com/n/56858/" target="_blank">摩尔庄园：儿童生意密码</a><span style="color:gray">(2010-02-10 17:15)</span><br/>· <a href="http://news.cnblogs.com/n/56857/" target="_blank">Facebook与美国在线合作 整合AIM动态功能</a><span style="color:gray">(2010-02-10 16:41)</span><br/>· <a href="http://news.cnblogs.com/n/56855/" target="_blank">NDepend 3.0已与Visual Studio集成</a><span style="color:gray">(2010-02-10 16:17)</span><br/>· <a href="http://news.cnblogs.com/n/56854/" target="_blank">Ruby in Steel 1.5发布，去除IronRuby支持</a><span style="color:gray">(2010-02-10 16:14)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/news/tag/Buzz/" target="_blank">Google Buzz相关新闻</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>不用Cookie的仿刷新二级高亮菜单</title><link>http://www.cnblogs.com/binyong/archive/2009/07/27/1531441.html</link><dc:creator>Biny</dc:creator><author>Biny</author><pubDate>Mon, 27 Jul 2009 00:36:00 GMT</pubDate><guid>http://www.cnblogs.com/binyong/archive/2009/07/27/1531441.html</guid><description><![CDATA[<p>阅读: 2906 评论: 13 作者: <a href="http://www.cnblogs.com/binyong/" target="_blank">Biny</a> 发表于 2009-07-27 08:36 <a href="http://www.cnblogs.com/binyong/archive/2009/07/27/1531441.html" target="_blank">原文链接</a></p><p align="center">
<hr />
<p>&nbsp;</p>
<p align="center"><strong>原创：<a href="http://www.cnblogs.com/binyong/" target="_blank">冰极峰</a>&nbsp;&nbsp;&nbsp;&nbsp; 转载请注明出处&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2009年7月27日&nbsp; 8:33:48</strong></p>
<hr />
<p>菜单高亮效果是每个网页经常采用的设计方式，它能有效地让用户知道自己当前所在的栏目。这也是我经常采用的方式，一般的网页至少都有两级菜单，第一个是顶部的总导航条菜单，另一个是左侧的分类导航菜单。一般要求在一级菜单高亮下二级菜单也能记录当前状态。</p>
<p>对于一个包含顶部菜单的页头区域如果固定不变的，也就是它不用每次都重新加载，这种情况下用纯CSS或JS方式可以很容易地实现，但今天我要谈的不是这种，<strong>今天说的是一级菜单和二级菜单在每个页面中都是动态加载的</strong>，也就是它们是作为用户控件的方式载入的。这种情况下要想记录菜单的高亮状态是一件比较困难的事情。</p>
<p>当然，你可能会说，用cookie可以记录每个页面加载时上次记录的高亮状态，是的，它确实可以记录，但是这种方式在一些复杂的包含许多子页面的应用中，会给用户造成许多困扰和麻烦。比如在cookie生存周期内，重新打开这个项目时，此时cookie的生存周期还没有完全结束，它还记录着上次保存的状态，而这时页面地址已经发生了变化，那么当前高亮的菜单所指向的就不是用户所希望看到的页面。实践证明，这个cookie的生存周期无论你设置多长都不能完美解决用户恶意刷新页面的状况。这确实是一件糟糕的事情！</p>
<p>那么有没有一种较好的办法来解决这种状况呢？</p>
<p>答案是有的。我们知道要解决这个问题，<strong>最理想的办法是在每个页面加载时，根据页面的url地址显式地设置当前菜单的高亮样式。</strong>这能完美地解决此类问题，并且这种方式无论用户如何恶意点击刷新按钮，高亮状态依旧保持不变。 知道了原理，要实现起来就容易多了。</p>
<p>【<strong>结构层</strong>】</p>
<p>一级菜单结构层：</p>
<div class="cnblogs_code"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff">&lt;</span><span style="color: #800000">ul&nbsp;</span><span style="color: #ff0000">id</span><span style="color: #0000ff">="menu"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">li</span><span style="color: #0000ff">&gt;&lt;</span><span style="color: #800000">a&nbsp;</span><span style="color: #ff0000">href</span><span style="color: #0000ff">="default.html"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">首页</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">a</span><span style="color: #0000ff">&gt;&lt;/</span><span style="color: #800000">li</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">li</span><span style="color: #0000ff">&gt;&lt;</span><span style="color: #800000">a&nbsp;</span><span style="color: #ff0000">href</span><span style="color: #0000ff">="clothing.html"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">服装用品</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">a</span><span style="color: #0000ff">&gt;&lt;/</span><span style="color: #800000">li</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">li</span><span style="color: #0000ff">&gt;&lt;</span><span style="color: #800000">a&nbsp;</span><span style="color: #ff0000">href</span><span style="color: #0000ff">="house.html"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">家居用品</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">a</span><span style="color: #0000ff">&gt;&lt;/</span><span style="color: #800000">li</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">li</span><span style="color: #0000ff">&gt;&lt;</span><span style="color: #800000">a&nbsp;</span><span style="color: #ff0000">href</span><span style="color: #0000ff">="cosmetic.html"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">化妆用品</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">a</span><span style="color: #0000ff">&gt;&lt;/</span><span style="color: #800000">li</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">ul</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span></div>
<p>可以看到在这个一级菜单中，其链接地址一般是没有参数值的。 二级菜单的结构层：</p>
<div class="cnblogs_code"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff">&lt;</span><span style="color: #800000">ul&nbsp;</span><span style="color: #ff0000">id</span><span style="color: #0000ff">="othermenu"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">li</span><span style="color: #0000ff">&gt;&lt;</span><span style="color: #800000">a&nbsp;</span><span style="color: #ff0000">href</span><span style="color: #0000ff">="house.html?pId=2&amp;sId=1"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">日常用品</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">a</span><span style="color: #0000ff">&gt;&lt;/</span><span style="color: #800000">li</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">li</span><span style="color: #0000ff">&gt;&lt;</span><span style="color: #800000">a&nbsp;</span><span style="color: #ff0000">href</span><span style="color: #0000ff">="house.html?pId=2&amp;sId=2"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">小型家具</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">a</span><span style="color: #0000ff">&gt;&lt;/</span><span style="color: #800000">li</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">li</span><span style="color: #0000ff">&gt;&lt;</span><span style="color: #800000">a&nbsp;</span><span style="color: #ff0000">href</span><span style="color: #0000ff">="house.html?pId=2&amp;sId=3"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">电器配件</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">a</span><span style="color: #0000ff">&gt;&lt;/</span><span style="color: #800000">li</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">li</span><span style="color: #0000ff">&gt;&lt;</span><span style="color: #800000">a&nbsp;</span><span style="color: #ff0000">href</span><span style="color: #0000ff">="house.html?pId=2&amp;sId=4"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">床品套件</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">a</span><span style="color: #0000ff">&gt;&lt;/</span><span style="color: #800000">li</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">li</span><span style="color: #0000ff">&gt;&lt;</span><span style="color: #800000">a&nbsp;</span><span style="color: #ff0000">href</span><span style="color: #0000ff">="house.html?pId=2&amp;sId=5"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">婚庆床品</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">a</span><span style="color: #0000ff">&gt;&lt;/</span><span style="color: #800000">li</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">li</span><span style="color: #0000ff">&gt;&lt;</span><span style="color: #800000">a&nbsp;</span><span style="color: #ff0000">href</span><span style="color: #0000ff">="house.html?pId=2&amp;sId=6"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">儿童床品</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">a</span><span style="color: #0000ff">&gt;&lt;/</span><span style="color: #800000">li</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">li</span><span style="color: #0000ff">&gt;&lt;</span><span style="color: #800000">a&nbsp;</span><span style="color: #ff0000">href</span><span style="color: #0000ff">="house.html?pId=2&amp;sId=7"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">工艺摆设</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">a</span><span style="color: #0000ff">&gt;&lt;/</span><span style="color: #800000">li</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">li</span><span style="color: #0000ff">&gt;&lt;</span><span style="color: #800000">a&nbsp;</span><span style="color: #ff0000">href</span><span style="color: #0000ff">="house.html?pId=2&amp;sId=8"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">清洁工具</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">a</span><span style="color: #0000ff">&gt;&lt;/</span><span style="color: #800000">li</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">li</span><span style="color: #0000ff">&gt;&lt;</span><span style="color: #800000">a&nbsp;</span><span style="color: #ff0000">href</span><span style="color: #0000ff">="house.html?pId=2&amp;sId=9"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">家居清洁</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">a</span><span style="color: #0000ff">&gt;&lt;/</span><span style="color: #800000">li</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">ul</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span></div>
<p>与一级菜单不同的是，我们将二级菜单中的链接地址加入两个参数值，pId参数指向的是顶部一级菜单的的序号，而sId则是菜单自己的顺序号。我们将这两个菜单的总容器ul都设置了两个不同中的ID，它们需要在JS中调用，所以千万不能少。</p>
<p>【<strong>样式层</strong>】</p>
<p>关于样式，其实都没有什么特别的地方，你可以随心所意地设置成你想要的样式，只是需要注意的地方是，我们需要单独设置菜单高亮的三种状态样式，以供JS动态调用。</p>
<div class="cnblogs_code"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008000">/*</span><span style="color: #008000">一级菜单的三种样式设置</span><span style="color: #008000">*/</span><span style="color: #800000"><br />
#menu&nbsp;li&nbsp;a.normal</span><span style="color: #000000">{</span><span style="color: #ff0000">background</span><span style="color: #000000">:</span><span style="color: #0000ff">#fff</span><span style="color: #000000">;</span><span style="color: #000000">}</span><span style="color: #800000">//普通样式<br />
#menu&nbsp;li&nbsp;a.over</span><span style="color: #000000">{</span><span style="color: #ff0000">background</span><span style="color: #000000">:</span><span style="color: #0000ff">#00ff00</span><span style="color: #000000">;</span><span style="color: #000000">}</span><span style="color: #800000">&nbsp;//翻滚样式<br />
#menu&nbsp;li&nbsp;a.cur</span><span style="color: #000000">{</span><span style="color: #ff0000">background</span><span style="color: #000000">:</span><span style="color: #0000ff">#ff0000</span><span style="color: #000000">;</span><span style="color: #ff0000">color</span><span style="color: #000000">:</span><span style="color: #0000ff">#fff</span><span style="color: #000000">;</span><span style="color: #000000">}</span><span style="color: #800000">&nbsp;//高亮样式<br />
</span><span style="color: #008000">/*</span><span style="color: #008000">二级菜单的三种样式设置</span><span style="color: #008000">*/</span><span style="color: #800000"><br />
#othermenu&nbsp;li&nbsp;a.normal</span><span style="color: #000000">{</span><span style="color: #ff0000">background</span><span style="color: #000000">:</span><span style="color: #0000ff">#fff</span><span style="color: #000000">;</span><span style="color: #000000">}</span><span style="color: #800000">&nbsp;//普通样式<br />
#othermenu&nbsp;li&nbsp;a.over</span><span style="color: #000000">{</span><span style="color: #ff0000">background</span><span style="color: #000000">:</span><span style="color: #0000ff">#AA7F00</span><span style="color: #000000">;</span><span style="color: #ff0000">color</span><span style="color: #000000">:</span><span style="color: #0000ff">#fff</span><span style="color: #000000">;</span><span style="color: #000000">}</span><span style="color: #800000">&nbsp;//翻滚样式<br />
#othermenu&nbsp;li&nbsp;a.cur</span><span style="color: #000000">{</span><span style="color: #ff0000">background</span><span style="color: #000000">:</span><span style="color: #0000ff">#7F0000</span><span style="color: #000000">;</span><span style="color: #ff0000">color</span><span style="color: #000000">:</span><span style="color: #0000ff">#fff</span><span style="color: #000000">;</span><span style="color: #000000">}</span><span style="color: #800000">&nbsp;//高亮样式<br />
</span></div>
<p>【<strong>行为层</strong>】</p>
<p>因为要在行为层中控制菜单的三种状态，所以对于A链接标签，我们就不使用hover伪类来达到菜单的三种动态行为了，我们可以用onmouseover、onmouseout和onclick来模仿伪类的三种行为，这样好便于js的动态调整。并且为了达到行为、样式和结构的三层分离，我们也不用在A标签的html中去加上动态的行为控制代码，这不是一种良好的制作习惯。因此我们需要在页面的加载函数上做点文章，这就需要使用到onload函数，当页面一加载完后就动态绑定a标签的三种行为状态。</p>
<p>在页面一加载完成后，我们首先获取当前的页面url字符串，再根据这个字符串和一二级菜单中的A标签的href地址进行对比，如果存在相同项，则高亮此菜单项的样式。</p>
<p>详细的注释说明我都在下面的函数中一一标注出来，在此就不一一细述了。关键函数代码如下<br />
</p>
<div class="cnblogs_code"><img id="Code_Closed_Image_171552" onclick="this.style.display='none'; document.getElementById('Code_Closed_Text_171552').style.display='none'; document.getElementById('Code_Open_Image_171552').style.display='inline'; document.getElementById('Code_Open_Text_171552').style.display='inline';" height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" width="11" align="top"><img id="Code_Open_Image_171552" style="display: none" onclick="this.style.display='none'; document.getElementById('Code_Open_Text_171552').style.display='none'; getElementById('Code_Closed_Image_171552').style.display='inline'; getElementById('Code_Closed_Text_171552').style.display='inline';" height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" width="11" align="top"><span class="cnblogs_code_Collapse" id="Code_Closed_Text_171552">Code</span><span id="Code_Open_Text_171552" style="display: none"><br />
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><span style="color: #008000">//</span><span style="color: #008000">根据URL地址的参数或字符串高亮当前菜单。</span><span style="color: #008000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #000000"><br />
<img id="Codehighlighter1_71_2621_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_71_2621_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_71_2621_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_71_2621_Closed_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top"><img id="Codehighlighter1_71_2621_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_71_2621_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_71_2621_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_71_2621_Open_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top"></span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;hightLightMenu(firstMenuID,twoMenuID)</span><span id="Codehighlighter1_71_2621_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_71_2621_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;strUrl,strHref,subNavs,strLast,strParentID,strSelfID,parentID,selfID,strID;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;Navs</span><span style="color: #000000">=</span><span style="color: #000000">document.getElementById(firstMenuID).getElementsByTagName(</span><span style="color: #000000">"</span><span style="color: #000000">a</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;如果链接没有参数，或者URL链接中不存在我们要获取的参数，则返回数组中的序号</span><span style="color: #008000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000"><br />
<img id="Codehighlighter1_349_1632_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_349_1632_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_349_1632_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_349_1632_Closed_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_349_1632_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_349_1632_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_349_1632_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_349_1632_Open_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(location.href.indexOf(</span><span style="color: #000000">"</span><span style="color: #000000">?</span><span style="color: #000000">"</span><span style="color: #000000">)</span><span style="color: #000000">==-</span><span style="color: #000000">1</span><span style="color: #000000">)</span><span id="Codehighlighter1_349_1632_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_349_1632_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;strUrl</span><span style="color: #000000">=</span><span style="color: #000000">location.href.substring(location.href.lastIndexOf(</span><span style="color: #000000">"</span><span style="color: #000000">/</span><span style="color: #000000">"</span><span style="color: #000000">)</span><span style="color: #000000">+</span><span style="color: #000000">1</span><span style="color: #000000">);</span><span style="color: #008000">//</span><span style="color: #008000">取得URL页面名称&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">一级菜单高亮&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000"><br />
<img id="Codehighlighter1_520_1238_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_520_1238_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_520_1238_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_520_1238_Closed_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_520_1238_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_520_1238_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_520_1238_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_520_1238_Open_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;&nbsp;i&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;Navs.length;&nbsp;i</span><span style="color: #000000">++</span><span style="color: #000000">)&nbsp;</span><span id="Codehighlighter1_520_1238_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_520_1238_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">在IE6,IE7中strHref获得的是全路径，而在IE8和ff中获得的是页面名称，为了兼容，需要将它的字符串进行拆分</span><span style="color: #008000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strHref</span><span style="color: #000000">=</span><span style="color: #000000">Navs[i].getAttribute(</span><span style="color: #000000">"</span><span style="color: #000000">href</span><span style="color: #000000">"</span><span style="color: #000000">).substring(Navs[i].getAttribute(</span><span style="color: #000000">"</span><span style="color: #000000">href</span><span style="color: #000000">"</span><span style="color: #000000">).lastIndexOf(</span><span style="color: #000000">'</span><span style="color: #000000">/</span><span style="color: #000000">'</span><span style="color: #000000">)</span><span style="color: #000000">+</span><span style="color: #000000">1</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img id="Codehighlighter1_760_866_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_760_866_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_760_866_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_760_866_Closed_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_760_866_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_760_866_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_760_866_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_760_866_Open_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(strUrl</span><span style="color: #000000">==</span><span style="color: #000000">strHref)</span><span id="Codehighlighter1_760_866_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_760_866_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">高亮当前菜单项&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;addClass(Navs[i],</span><span style="color: #000000">"</span><span style="color: #000000">cur</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img id="Codehighlighter1_883_1211_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_883_1211_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_883_1211_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_883_1211_Closed_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_883_1211_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_883_1211_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_883_1211_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_883_1211_Open_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span id="Codehighlighter1_883_1211_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_883_1211_Open_Text"><span style="color: #000000">{</span><span style="color: #008000">//</span><span style="color: #008000">如果是其它项，则绑定鼠标两态事件&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000"><br />
<img id="Codehighlighter1_953_1170_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_953_1170_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_953_1170_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_953_1170_Closed_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_953_1170_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_953_1170_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_953_1170_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_953_1170_Open_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(</span><span style="color: #0000ff">function</span><span style="color: #000000">(i)</span><span id="Codehighlighter1_953_1170_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_953_1170_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;obj</span><span style="color: #000000">=</span><span style="color: #000000">Navs[i];&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img id="Codehighlighter1_1063_1076_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_1063_1076_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_1063_1076_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_1063_1076_Closed_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_1063_1076_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_1063_1076_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_1063_1076_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_1063_1076_Open_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;addEventHandler(obj,</span><span style="color: #000000">"</span><span style="color: #000000">mouseover</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #0000ff">function</span><span style="color: #000000">()</span><span id="Codehighlighter1_1063_1076_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_1063_1076_Open_Text"><span style="color: #000000">{overMe(obj)}</span></span><span style="color: #000000">);<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img id="Codehighlighter1_1139_1151_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_1139_1151_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_1139_1151_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_1139_1151_Closed_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_1139_1151_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_1139_1151_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_1139_1151_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_1139_1151_Open_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;addEventHandler(obj,</span><span style="color: #000000">"</span><span style="color: #000000">mouseout</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #0000ff">function</span><span style="color: #000000">()</span><span id="Codehighlighter1_1139_1151_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_1139_1151_Open_Text"><span style="color: #000000">{outme(obj)}</span></span><span style="color: #000000">);<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">)(i)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">二级菜单高亮</span><span style="color: #008000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000"><br />
<img id="Codehighlighter1_1318_1625_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_1318_1625_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_1318_1625_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_1318_1625_Closed_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_1318_1625_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_1318_1625_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_1318_1625_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_1318_1625_Open_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(document.getElementById(twoMenuID)&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">)&nbsp;</span><span id="Codehighlighter1_1318_1625_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_1318_1625_Open_Text"><span style="color: #000000">{</span><span style="color: #008000">//</span><span style="color: #008000">判断是否存在二级菜单&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">有可能二级菜单不存在，如首页只有一级菜单，所以当菜单id存在时，则<img alt="" src="http://www.cnblogs.com/Images/dot.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;subNavs&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;document.getElementById(</span><span style="color: #000000">"</span><span style="color: #000000">othermenu</span><span style="color: #000000">"</span><span style="color: #000000">).getElementsByTagName(</span><span style="color: #000000">'</span><span style="color: #000000">a</span><span style="color: #000000">'</span><span style="color: #000000">);<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img id="Codehighlighter1_1534_1615_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_1534_1615_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_1534_1615_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_1534_1615_Closed_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_1534_1615_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_1534_1615_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_1534_1615_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_1534_1615_Open_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;n&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;&nbsp;n&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;subNavs.length;&nbsp;n</span><span style="color: #000000">++</span><span style="color: #000000">)&nbsp;</span><span id="Codehighlighter1_1534_1615_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_1534_1615_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hightlight(subNavs,n,</span><span style="color: #000000">0</span><span style="color: #000000">);</span><span style="color: #008000">//</span><span style="color: #008000">默认高亮第一个菜单项&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img id="Codehighlighter1_1642_2612_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_1642_2612_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_1642_2612_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_1642_2612_Closed_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_1642_2612_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_1642_2612_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_1642_2612_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_1642_2612_Open_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span id="Codehighlighter1_1642_2612_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_1642_2612_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">如果url中带有参数的页面，则<img alt="" src="http://www.cnblogs.com/Images/dot.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strLast&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;location.href.substring(location.href.indexOf(</span><span style="color: #000000">"</span><span style="color: #000000">?</span><span style="color: #000000">"</span><span style="color: #000000">)</span><span style="color: #000000">+</span><span style="color: #000000">1</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strParentID</span><span style="color: #000000">=</span><span style="color: #000000">strLast.substring(</span><span style="color: #000000">0</span><span style="color: #000000">,strLast.indexOf(</span><span style="color: #000000">"</span><span style="color: #000000">&amp;</span><span style="color: #000000">"</span><span style="color: #000000">));<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strSelfID</span><span style="color: #000000">=</span><span style="color: #000000">strLast.substring(strLast.indexOf(</span><span style="color: #000000">"</span><span style="color: #000000">&amp;</span><span style="color: #000000">"</span><span style="color: #000000">)</span><span style="color: #000000">+</span><span style="color: #000000">1</span><span style="color: #000000">);&nbsp;<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;parentID</span><span style="color: #000000">=</span><span style="color: #000000">strParentID.substring(strParentID.indexOf(</span><span style="color: #000000">"</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">)</span><span style="color: #000000">+</span><span style="color: #000000">1</span><span style="color: #000000">);</span><span style="color: #008000">//</span><span style="color: #008000">获得第一个参数，这是一级菜单的id</span><span style="color: #008000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;selfID</span><span style="color: #000000">=</span><span style="color: #000000">strSelfID.substring(strSelfID.indexOf(</span><span style="color: #000000">"</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">)</span><span style="color: #000000">+</span><span style="color: #000000">1</span><span style="color: #000000">);</span><span style="color: #008000">//</span><span style="color: #008000">获得第二个参数，这是二级菜单的id&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">一级菜单高亮&nbsp;&nbsp;</span><span style="color: #008000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000"><br />
<img id="Codehighlighter1_2127_2243_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_2127_2243_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_2127_2243_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_2127_2243_Closed_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_2127_2243_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_2127_2243_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_2127_2243_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_2127_2243_Open_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;&nbsp;i&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;Navs.length;&nbsp;i</span><span style="color: #000000">++</span><span style="color: #000000">)&nbsp;</span><span id="Codehighlighter1_2127_2243_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_2127_2243_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hightlight(Navs,i,parentID);&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;&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;<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">二级菜单高亮</span><span style="color: #008000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000"><br />
<img id="Codehighlighter1_2317_2605_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_2317_2605_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_2317_2605_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_2317_2605_Closed_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_2317_2605_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_2317_2605_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_2317_2605_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_2317_2605_Open_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(document.getElementById(twoMenuID)&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">)&nbsp;</span><span id="Codehighlighter1_2317_2605_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_2317_2605_Open_Text"><span style="color: #000000">{</span><span style="color: #008000">//</span><span style="color: #008000">判断是否存在二级菜单&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;subNavs&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;document.getElementById(twoMenuID).getElementsByTagName(</span><span style="color: #000000">'</span><span style="color: #000000">a</span><span style="color: #000000">'</span><span style="color: #000000">);<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img id="Codehighlighter1_2478_2595_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_2478_2595_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_2478_2595_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_2478_2595_Closed_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_2478_2595_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_2478_2595_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_2478_2595_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_2478_2595_Open_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;n&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;&nbsp;n&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;subNavs.length;&nbsp;n</span><span style="color: #000000">++</span><span style="color: #000000">)&nbsp;</span><span id="Codehighlighter1_2478_2595_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_2478_2595_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strID</span><span style="color: #000000">=</span><span style="color: #000000">selfID&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">1</span><span style="color: #000000">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hightlight(subNavs,n,strID);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #008000">//</span><span style="color: #008000">高亮函数</span><span style="color: #008000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #000000"><br />
<img id="Codehighlighter1_2685_3076_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_2685_3076_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_2685_3076_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_2685_3076_Closed_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top"><img id="Codehighlighter1_2685_3076_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_2685_3076_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_2685_3076_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_2685_3076_Open_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top"></span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;hightlight(elementArray,inumber,curMenuIndex)</span><span id="Codehighlighter1_2685_3076_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_2685_3076_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img id="Codehighlighter1_2721_2791_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_2721_2791_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_2721_2791_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_2721_2791_Closed_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_2721_2791_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_2721_2791_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_2721_2791_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_2721_2791_Open_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(inumber&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;curMenuIndex)&nbsp;</span><span id="Codehighlighter1_2721_2791_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_2721_2791_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;addClass(elementArray[inumber],</span><span style="color: #000000">"</span><span style="color: #000000">cur</span><span style="color: #000000">"</span><span style="color: #000000">);</span><span style="color: #008000">//</span><span style="color: #008000">高亮当前菜单样式</span><span style="color: #008000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img id="Codehighlighter1_2802_3070_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_2802_3070_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_2802_3070_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_2802_3070_Closed_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_2802_3070_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_2802_3070_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_2802_3070_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_2802_3070_Open_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;</span><span id="Codehighlighter1_2802_3070_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_2802_3070_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img id="Codehighlighter1_2830_3053_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_2830_3053_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_2830_3053_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_2830_3053_Closed_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_2830_3053_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_2830_3053_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_2830_3053_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_2830_3053_Open_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(</span><span style="color: #0000ff">function</span><span style="color: #000000">(inumber)</span><span id="Codehighlighter1_2830_3053_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_2830_3053_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;obj&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;elementArray[inumber];<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img id="Codehighlighter1_2933_2946_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_2933_2946_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_2933_2946_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_2933_2946_Closed_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_2933_2946_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_2933_2946_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_2933_2946_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_2933_2946_Open_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;addEventHandler(obj,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">mouseover</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">()</span><span id="Codehighlighter1_2933_2946_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_2933_2946_Open_Text"><span style="color: #000000">{overMe(obj)}</span></span><span style="color: #000000">);</span><span style="color: #008000">//</span><span style="color: #008000">增加鼠标移上去时的事件</span><span style="color: #008000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000"><br />
<img id="Codehighlighter1_3017_3029_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_3017_3029_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_3017_3029_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_3017_3029_Closed_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_3017_3029_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_3017_3029_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_3017_3029_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_3017_3029_Open_Text').style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;addEventHandler(obj,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">mouseout</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">()</span><span id="Codehighlighter1_3017_3029_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_3017_3029_Open_Text"><span style="color: #000000">{outme(obj)}</span></span><span style="color: #000000">);</span><span style="color: #008000">//</span><span style="color: #008000">增加鼠标移走时的事件</span><span style="color: #008000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">)(inumber)<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span></span></div>
<p>经过如上一番设置，一个通用、兼容的高亮函数就诞生了，我们看看它的效果截图：</p>
<div style="margin: 0px auto; width: 459px"><img height="398" alt="" src="http://images.cnblogs.com/cnblogs_com/binyong/highlight/12.jpg" width="459" border="0" /> </div>
<p><strong style="color: red">本案例的高亮函数在如下浏览器中测试通过：</strong></p>
<p><strong style="color: red">IE5.5,IE6,IE7,IE8,FF3,TT,Maxthon,Chrome,Safari4.0,opera</strong></p>
<p>因为子页面较多，请下载本案例打包文件到本地测试：<span style="font-weight: bold; color: red"><a title="下载模型" href="http://files.cnblogs.com/binyong/二级高亮菜单函数.rar" target="_blank"><span style="color: red">下载Demo</span></a></span></p><img src="http://www.cnblogs.com/binyong/aggbug/1531441.html?type=1" width="1" height="1" alt=""/><p>评论: 13　<a href="http://www.cnblogs.com/binyong/archive/2009/07/27/1531441.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/binyong/archive/2009/07/27/1531441.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56859/" target="_blank">美调查公司称苹果iPad配件成本最低219美元</a><span style="color:gray">(2010-02-10 17:20)</span><br/>· <a href="http://news.cnblogs.com/n/56858/" target="_blank">摩尔庄园：儿童生意密码</a><span style="color:gray">(2010-02-10 17:15)</span><br/>· <a href="http://news.cnblogs.com/n/56857/" target="_blank">Facebook与美国在线合作 整合AIM动态功能</a><span style="color:gray">(2010-02-10 16:41)</span><br/>· <a href="http://news.cnblogs.com/n/56855/" target="_blank">NDepend 3.0已与Visual Studio集成</a><span style="color:gray">(2010-02-10 16:17)</span><br/>· <a href="http://news.cnblogs.com/n/56854/" target="_blank">Ruby in Steel 1.5发布，去除IronRuby支持</a><span style="color:gray">(2010-02-10 16:14)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/news/tag/Buzz/" target="_blank">Google Buzz相关新闻</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>【冰极峰教程系列之五】：无hack并支持透明圆角框的全兼容九宫格布局</title><link>http://www.cnblogs.com/binyong/archive/2009/07/19/1526748.html</link><dc:creator>Biny</dc:creator><author>Biny</author><pubDate>Sun, 19 Jul 2009 15:34:00 GMT</pubDate><guid>http://www.cnblogs.com/binyong/archive/2009/07/19/1526748.html</guid><description><![CDATA[<p>阅读: 2337 评论: 12 作者: <a href="http://www.cnblogs.com/binyong/" target="_blank">Biny</a> 发表于 2009-07-19 23:34 <a href="http://www.cnblogs.com/binyong/archive/2009/07/19/1526748.html" target="_blank">原文链接</a></p><hr />
<p align="center">原创：冰极峰 转载请注明出处 时间：2009年7月19日 23:33:05</p>
<hr />
<p><a href="http://www.cnblogs.com/binyong/archive/2009/06/18/1505608.html" target="_blank"><strong>冰极峰教程系列之一：九宫格基本布局</strong></a></p>
<p><a href="http://www.cnblogs.com/binyong/archive/2009/06/22/1507997.html" target="_blank"><strong>冰极峰教程系列之二：牢不可破的九宫格布局</strong></a></p>
<p><a href="http://www.cnblogs.com/binyong/archive/2009/06/24/1508289.html" target="_blank"><strong>冰极峰教程系列之三：三层分离的完美九宫格</strong></a></p>
<p><a href="http://www.cnblogs.com/binyong/archive/2009/06/29/1512909.html" target="_blank"><strong>冰极峰教程系列之四：九宫格应用案例--极酷网页播放器设计</strong></a></p>
<p><a href="http://www.cnblogs.com/binyong/archive/2009/07/19/1526748.html" target="_blank"><strong>冰极峰教程系列之五：无hack并支持透明圆角框的全兼容九宫格布局</strong></a></p>
<p>前言：在前面四篇文章中，我介绍了九宫格的原理及一个应用案例，本来已经告一段落了，但是那个布局还是有一定的局限性的。其最大的局限是不能应用四角圆角外面是透明的图片，而作为一个界面布局方式，如果不能应用透明的外圆角，那么这种布局的可扩展性就会大受影响，不能最大化限度地得以推广。本文就是要从根本上解决这个问题。</p>
<p>我知道这个问题的根源在于：<strong>中间的左右边框列垂直同高产生的，因为它们的父级容器是box这个总容器，而不是一个独立的容器，而底部的左右两个角容器是向上负偏移到它们的上面的，遮挡住了背景色。所以当圆角容器中的图片采用半透明或透明的图片时，其透明部分就会显示出左右两侧边框的图片背景出来。</strong></p>
<p>在制作前面的《<strong><a><strong>牢不可破的九宫格布局</strong></a></strong>》的模型时，我就已经发现了这个问题，当时制作圆角图片也是采用的透明的圆角图片，可是后来发现这个问题后，为了减少麻烦，我又将透明的圆角片的透明部分加上一个和总容器相同的背景色，来避免了这个问题。但这个方法最终不是解决的终极办法，在我们的日常工作中，采用半透明的圆角来定制界面是很有必要的，因此在那篇文章中仅仅只是逃避了问题，而没有从根本上解决问题。在文章发布之后，终于有细心的朋友在试用之后，提出这个问题，哈哈，看看终于是无法偷懒来回避这个问题了。</p>
<p>知道了问题的根源后，要解决它也是一件简单的事情。</p>
<p>因为我这篇文章是建立在《<a href="http://www.cnblogs.com/binyong/archive/2009/06/22/1507997.html" target="_blank"><strong>牢不可破的九宫格布局</strong></a>》这篇文章的基础上的，如果还没有看过那篇文章的朋友，不妨先看了它后再来看这篇文章。这将有助于你的消化！</p>
<p>看来，要解决这个问题，我需要将中间部分作一些结构上的修改。因为我希望它的左右边框容器是和内容区是垂直同高的，也就是当内容区的文字内容的高度发生变化时，其左右边框的高度跟着同步调整其高度。这就是一个典型的三列同高布局。但与平时看到的三列布局有点不同的是，我希望中间的内容区的宽度填满整个中间的宽度，但它不是100%的宽度，而是100%减去左右两列边框的宽度，而这个宽度并不是一个百分比，它们都是有固定像素值的。这需要运用到我在上一篇文章中提到的方法来进行的解决。</p>
<p>为此我需要改变一下原来的结构：</p>
<p><strong>【结构层】</strong></p>
<p>我给中间的左中右三个容器增加一个父级容器，并给它定义一个类名middle，那么，现在的中间区域的结构应该是这样的：</p>
<div class="cnblogs_code"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff">&lt;</span><span style="color: #800000">div&nbsp;</span><span style="color: #ff0000">class</span><span style="color: #0000ff">="middle"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">span&nbsp;</span><span style="color: #ff0000">class</span><span style="color: #0000ff">="m_l"</span><span style="color: #0000ff">&gt;&lt;/</span><span style="color: #800000">span</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">span&nbsp;</span><span style="color: #ff0000">class</span><span style="color: #0000ff">="m_r"</span><span style="color: #0000ff">&gt;&lt;/</span><span style="color: #800000">span</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">div&nbsp;</span><span style="color: #ff0000">class</span><span style="color: #0000ff">="context"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">p</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">内容区</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">p</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">div</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">div</span><span style="color: #0000ff">&gt;</span></div>
<p><strong>【样式层】</strong></p>
<p>我们再定义一下middle的样式，我们将原来的box的overflow:hidden;取消，将它加在middle容器上，让超出的部分截出隐藏。</p>
<div class="cnblogs_code"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #800000">.box</span><span style="color: #000000">{</span><span style="color: #ff0000">width</span><span style="color: #000000">:</span><span style="color: #0000ff">50%</span><span style="color: #000000">;</span><span style="color: #ff0000">margin</span><span style="color: #000000">:</span><span style="color: #0000ff">50px&nbsp;auto&nbsp;0</span><span style="color: #000000">;</span><span style="color: #ff0000">background</span><span style="color: #000000">:</span><span style="color: #0000ff">#fff</span><span style="color: #000000">;</span><span style="color: #000000">}</span><span style="color: #800000"><br />
.middle</span><span style="color: #000000">{</span><span style="color: #ff0000">overflow</span><span style="color: #000000">:</span><span style="color: #0000ff">hidden</span><span style="color: #000000">;</span><span style="color: #ff0000">&nbsp;zoom</span><span style="color: #000000">:</span><span style="color: #0000ff">1</span><span style="color: #000000">;</span><span style="color: #000000">}</span><span style="color: #800000"> <br />
</span></div>
<p>这时需要特别指出的是，如果只是将middle这个容器设置为overflow:hidden的话，那么这个模型可以在IE6以上的所有浏览器中通过，但对于IE6来说，问题依然存在（你可以将此句删除，然后在IE6测试看看。）。最后加上zoom:1才能完美地解决这个问题。</p>
<p>基础模型的效果图如下：</p>
<p align="center"></p>
<div align="center"><img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/binyong/jiou/jiougongge6.gif" width="377" height="333" /></div>
<div align="center">图一</div>
<p>&nbsp;</p>
<p>此基础案例也包括在下面的下载压缩包中。你可以下载到本机进行测试。</p>
<p><strong>【案例应用】</strong></p>
<p>为了更直观地测试透明圆角框效果，我在body中加了一张上下渐变的水平平铺的背景图片，并且出于简化模型的需要，我将圆角框的图片的外圆角改成了透明的gif图片（<strong>PS：你也可以将它换成png-24半透明的圆角图片，当然就要注意IE6的兼容性问题，需要JS代码来支持。支持代码在下面的播放器的案例中已经应用了，你略加修改就可以使用。</strong>）。你可以参照下面的实例来设计图片，在应用你自己的设计前，你需要修改样式表中图片的宽高值。</p>
<p>案例模型的效果截图如下所示：</p>
<p align="center"></p>
<div align="center"><img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/binyong/jiou/jiougongge7.gif" width="450" /></div>
<div align="center">图二</div>
<p>&nbsp;</p>
<p>在上面的效果图中，可以看到在一个渐变背景下，其圆角框是透明的。你也以点击下面的&#8220;宽屏&#8221;、&#8220;全屏&#8221;按钮来测试当窗口放大时其透明圆角图片的完美应用。</p>
<p><strong>本模型在以下浏览器中完美通过：</strong></p>
<p><strong style="color: red">IE5.5、IE6、IE7、IE8、FF3、TT、Maxthon2.1.5、Opera9.6、Safari4.0、Chrome2.0。</strong></p>
<p><strong>点击这儿下载完整的压缩包：<a style="color: #ff0000" title="下载全部模型" href="http://files.cnblogs.com/binyong/five.rar">Demo</a></strong></p><img src="http://www.cnblogs.com/binyong/aggbug/1526748.html?type=1" width="1" height="1" alt=""/><p>评论: 12　<a href="http://www.cnblogs.com/binyong/archive/2009/07/19/1526748.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/binyong/archive/2009/07/19/1526748.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56859/" target="_blank">美调查公司称苹果iPad配件成本最低219美元</a><span style="color:gray">(2010-02-10 17:20)</span><br/>· <a href="http://news.cnblogs.com/n/56858/" target="_blank">摩尔庄园：儿童生意密码</a><span style="color:gray">(2010-02-10 17:15)</span><br/>· <a href="http://news.cnblogs.com/n/56857/" target="_blank">Facebook与美国在线合作 整合AIM动态功能</a><span style="color:gray">(2010-02-10 16:41)</span><br/>· <a href="http://news.cnblogs.com/n/56855/" target="_blank">NDepend 3.0已与Visual Studio集成</a><span style="color:gray">(2010-02-10 16:17)</span><br/>· <a href="http://news.cnblogs.com/n/56854/" target="_blank">Ruby in Steel 1.5发布，去除IronRuby支持</a><span style="color:gray">(2010-02-10 16:14)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/news/tag/Buzz/" target="_blank">Google Buzz相关新闻</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>【冰极峰教程系列之四】：九宫格应用案例--极酷网页播放器</title><link>http://www.cnblogs.com/binyong/archive/2009/06/29/1512909.html</link><dc:creator>Biny</dc:creator><author>Biny</author><pubDate>Mon, 29 Jun 2009 00:44:00 GMT</pubDate><guid>http://www.cnblogs.com/binyong/archive/2009/06/29/1512909.html</guid><description><![CDATA[<p>阅读: 3687 评论: 17 作者: <a href="http://www.cnblogs.com/binyong/" target="_blank">Biny</a> 发表于 2009-06-29 08:44 <a href="http://www.cnblogs.com/binyong/archive/2009/06/29/1512909.html" target="_blank">原文链接</a></p><hr />
<p align="center"><strong style="font-size: 12px">原创：<a href="http://www.cnblogs.com/binyong/" target="_blank">冰极峰</a> 转载请注明出处 时间：2009年6月29日 8:42:38</strong></p>
<hr />
<p><strong><a href="http://www.cnblogs.com/binyong/archive/2009/06/18/1505608.html" target="_blank">冰极峰教程系列之一：九宫格基本布局</a></strong></p>
<p><strong><a href="http://www.cnblogs.com/binyong/archive/2009/06/22/1507997.html" target="_blank">冰极峰教程系列之二：牢不可破的九宫格布局</a></strong></p>
<p><strong><a href="http://www.cnblogs.com/binyong/archive/2009/06/24/1508289.html" target="_blank">冰极峰教程系列之三：三层分离的完美九宫格</a></strong></p>
<p><strong><a href="http://www.cnblogs.com/binyong/archive/2009/06/29/1512909.html" target="_blank">冰极峰教程系列之四：九宫格应用案例--极酷网页播放器</a></strong></p>
<p><a href="http://www.cnblogs.com/binyong/archive/2009/07/19/1526748.html" target="_blank"><strong>冰极峰教程系列之五：无hack并支持透明圆角框的全兼容九宫格布局</strong></a></p>
<hr />
<p>&nbsp;</p>
<p style="text-indent: 17.95pt"><span style="font-family: 宋体">在前面的三篇系列文章中，我对九宫格布局作了详细的介绍。先从一个基本布局入手，将在制作过程中遇到的问题逐一进行了讲解。这三篇文章都是基本原理的讲解，没有一个有力的应用案例来证明这种原理是否正确，可能有些朋友已经有点急不可烦，也有网友要求我能提供案例。因此，在这一篇文章中，我将介绍一个九宫格案例</span>&#8212;<span style="font-family: 宋体">极酷的播放器。</span></p>
<p style="text-indent: 17.95pt"><span style="font-family: 宋体">在我的第三篇文章《<a href="http://www.cnblogs.com/binyong/archive/2009/06/24/1508289.html" target="_blank"><strong>三层分离的完美九宫格</strong></a>》中，我介绍了用</span>JS<span style="font-family: 宋体">封装</span>html<span style="font-family: 宋体">标签，以便于减少冗余的结构体，但这种方式也是有缺陷的，如果用户禁用了</span>JS<span style="font-family: 宋体">，将造成结构完全显示不出来，当然对于当今的上网条件来说，这应该不是一个大问题，但纵观国外的的一些网页设计，都是有这种考虑的必要的。这就需要优雅降级和功能弱化，但这样带来的结果和不应用</span>JS<span style="font-family: 宋体">封装是一样的。所以，鱼和熊掌不可兼得也。哎，这些都是题外话，还是来看看我们的一个极酷播放器是如何设计出来的吧！</span></p>
<p style="text-indent: 17.95pt"><span style="font-family: 宋体">先入为主，大家都想先看看结果，好，先秀出截图：</span></p>
<p style="text-indent: 17.95pt"><span style="font-family: 宋体">
<div align="center">
<div align="center"><img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/binyong/jiou/jiougongge3.gif" width="450" height="310" /></div>
</div>
</span>
<p>&nbsp;</p>
<p style="text-align: center; text-indent: 17.95pt" align="center"></p>
<p style="text-align: center; text-indent: 17.95pt" align="center"><span style="font-family: 宋体">图一</span></p>
<p style="text-indent: 17.95pt"><span style="font-family: 宋体">一般对于这样一个有丰富色彩的播放器来说，都是要求其宽高值是可以动态调整，因此这样的图形用九宫格来做是非常适合的选择。</span></p>
<p style="text-indent: 17.95pt"><span style="font-family: 宋体">当然原理我也不再重述了，请参考我的系列文章中的《<strong><a href="http://www.cnblogs.com/binyong/archive/2009/06/22/1507997.html" target="_blank">牢不可破的九宫格布局</a></strong>》，这个应用案例就是针对它来实现的。当然在制作中还是有些技巧可以帮我们更好地的完成任务。比如</span>css sprites<span style="font-family: 宋体">技术（可以查看我的另一篇文章《</span><strong><a href="http://www.cnblogs.com/binyong/archive/2009/02/08/1386450.html" target="_blank">css sprites图片背景优化技术</a></strong>》），它能有利地减少图片的请求数，一般对于九宫格布局的应用来讲，其图片是比较多的，因为它至少需要八张图片分别来装饰四个角落和四条边。所以怎样减少图片数量，对于设计人员来说是一件不得不考虑的事情。</p>
<p style="text-indent: 17.95pt"><span style="font-family: 宋体">在本例中我将四角的图片合并成了一张图片，它们看起应该就是下面这个样子：</span></p>
<p style="text-indent: 17.95pt"><span style="font-family: 宋体">
<div align="center"><img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/binyong/jiou/jiougongge4.gif" width="169" height="389" /></div>
</span>
<p>&nbsp;</p>
<p style="text-align: center; text-indent: 17.95pt" align="center"></p>
<p style="text-align: center; text-indent: 17.95pt" align="center"><span style="font-family: 宋体">图二</span></p>
<p style="text-indent: 17.95pt"><span style="font-family: 宋体">在上图中我为了让大家看得仔细一点，几张图片的交界处用辅助线画了出来，我们应用图片定位原理将它们分别固定在四个角落上。它们在样式表中是如下方式来定义的：</span><span style="font-family: 宋体"></span></p>
<div class="cnblogs_code"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #800000">.t_l</span><span style="color: #000000">{</span><span style="color: #ff0000">&nbsp;background</span><span style="color: #000000">:</span><span style="color: #0000ff">url(../image/round.gif)&nbsp;no-repeat&nbsp;left&nbsp;top</span><span style="color: #000000">;</span><span style="color: #000000">}</span><span style="color: #008000">/*</span><span style="color: #008000">左上角</span><span style="color: #008000">*/</span><span style="color: #800000"><br />
.t_r</span><span style="color: #000000">{</span><span style="color: #ff0000">background</span><span style="color: #000000">:</span><span style="color: #0000ff">url(../image/round.gif)&nbsp;no-repeat&nbsp;right&nbsp;top</span><span style="color: #000000">;</span><span style="color: #000000">}</span><span style="color: #008000">/*</span><span style="color: #008000">右上角</span><span style="color: #008000">*/</span><span style="color: #800000"><br />
.b_l</span><span style="color: #000000">{</span><span style="color: #ff0000">background</span><span style="color: #000000">:</span><span style="color: #0000ff">url(../image/round.gif)&nbsp;no-repeat&nbsp;left&nbsp;bottom</span><span style="color: #000000">;</span><span style="color: #000000">}</span><span style="color: #008000">/*</span><span style="color: #008000">左下角</span><span style="color: #008000">*/</span><span style="color: #800000"><br />
.b_r</span><span style="color: #000000">{</span><span style="color: #ff0000">&nbsp;background</span><span style="color: #000000">:</span><span style="color: #0000ff">url(../image/round.gif)&nbsp;no-repeat&nbsp;right&nbsp;bottom</span><span style="color: #000000">;</span><span style="color: #000000">}</span><span style="color: #008000">/*</span><span style="color: #008000">右下角</span><span style="color: #008000">*/</span><span style="color: #800000">&nbsp;</span></div>
<p style="text-indent: 17.95pt"><span style="font-family: 宋体">我们再将左右边框合并成一张图片，如下图所示：</span></p>
<p style="text-indent: 17.95pt"><span style="font-family: 宋体">
<div align="center"><img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/binyong/jiou/jiougongge5.gif" width="227" height="158" /></div>
</span>
<p>&nbsp;</p>
<p style="text-align: center; text-indent: 17.95pt" align="center"></p>
<p style="text-align: center; text-indent: 17.95pt" align="center"><span style="font-family: 宋体">图三</span></p>
<p style="text-indent: 17.95pt"><span style="font-family: 宋体">左右边框是需要纵向垂直平铺的，所以一定要注意它们的宽度值，这需要精确定位：</span></p>
<p style="text-indent: 17.95pt"><span style="font-family: 宋体"></span></p>
<div class="cnblogs_code"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #800000">.m_l</span><span style="color: #000000">{</span><span style="color: #ff0000">width</span><span style="color: #000000">:</span><span style="color: #0000ff">15px</span><span style="color: #000000">;</span><span style="color: #ff0000">background</span><span style="color: #000000">:</span><span style="color: #0000ff">url(../image/l_rborder.gif)&nbsp;repeat-y&nbsp;left&nbsp;top</span><span style="color: #000000">;</span><span style="color: #000000">}</span><span style="color: #800000">&nbsp;</span><span style="color: #008000">/*</span><span style="color: #008000">左边框</span><span style="color: #008000">*/</span><span style="color: #800000">&nbsp;<br />
.m_r</span><span style="color: #000000">{</span><span style="color: #ff0000">&nbsp;width</span><span style="color: #000000">:</span><span style="color: #0000ff">15px</span><span style="color: #000000">;</span><span style="color: #ff0000">background</span><span style="color: #000000">:</span><span style="color: #0000ff">url(../image/l_rborder.gif)&nbsp;repeat-y&nbsp;right&nbsp;top</span><span style="color: #000000">;</span><span style="color: #000000">}</span><span style="color: #800000">&nbsp;</span><span style="color: #008000">/*</span><span style="color: #008000">右边框</span><span style="color: #008000">*/</span><span style="color: #800000"><br />
</span></div>
<p style="text-indent: 17.95pt">对于上下边框图片，我们也采用合并的方法，有一点需要注意，这两张图片是一张很宽的图片，其宽度值达到2000px<span style="font-family: 宋体">，我是想让它们能在更宽的屏幕上能够通用，它们具有一个左右渐变的背景色，其中间色彩比两侧浅，所以我将两侧的背景进行了延伸，这样我可以用</span>background-position<span style="font-family: 宋体">的</span>center<span style="font-family: 宋体">值来进行居中定位，就可以将图片中间始终定位在容器的中间。</span></p>
<p style="text-indent: 17.95pt"></p>
<div class="cnblogs_code"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #800000">.t_m</span><span style="color: #000000">{</span><span style="color: #ff0000">background</span><span style="color: #000000">:</span><span style="color: #0000ff">url(../image/u_dborder.gif)&nbsp;no-repeat&nbsp;center&nbsp;top</span><span style="color: #000000">;</span><span style="color: #ff0000">&nbsp;</span><span style="color: #000000">}</span><span style="color: #008000">/*</span><span style="color: #008000">上边框</span><span style="color: #008000">*/</span><span style="color: #800000"><br />
.b_m_m</span><span style="color: #000000">{</span><span style="color: #ff0000">background</span><span style="color: #000000">:</span><span style="color: #0000ff">url(../image/u_dborder.gif)&nbsp;no-repeat&nbsp;center&nbsp;bottom</span><span style="color: #000000">;</span><span style="color: #000000">}</span><span style="color: #800000">&nbsp;</span><span style="color: #008000">/*</span><span style="color: #008000">下边框</span><span style="color: #008000">*/</span><span style="color: #800000"><br />
<br />
</span></div>
<p style="text-indent: 17.95pt"><span style="font-family: 宋体">在本案例中，比较烦杂的地方是底部区域中的一些控制按钮，这个按钮都是采用浮动，相对定位加绝对定位来进行精确设置的。具体代码就不一一列举了，要了解详情请查看源代码。我只针对这里面的两个拖动栏的制作作一下说明。</span></p>
<p style="text-indent: 17.95pt"><span style="font-family: 宋体">我们可以看到在本案例中有两个进度栏，一个是进度栏，一个是调整音量栏，其实它们的制作方法是一样的。</span></p>
<p style="text-indent: 17.95pt"><span style="font-family: 宋体">其结构是如下：</span><span style="font-family: 宋体"></span></p>
<div class="cnblogs_code"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff">&lt;</span><span style="color: #800000">div&nbsp;</span><span style="color: #ff0000">class</span><span style="color: #0000ff">="progressbar"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">div&nbsp;</span><span style="color: #ff0000">class</span><span style="color: #0000ff">="leftbar"</span><span style="color: #ff0000">&nbsp;id</span><span style="color: #0000ff">="progressbar"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">span&nbsp;</span><span style="color: #ff0000">class</span><span style="color: #0000ff">="rightbar"</span><span style="color: #ff0000">&nbsp;id</span><span style="color: #0000ff">="idBar"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">b&nbsp;</span><span style="color: #ff0000">class</span><span style="color: #0000ff">="drawbar"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">进度拖动栏</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">b</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">span</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">div</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">div</span><span style="color: #0000ff">&gt;</span></div>
<p style="text-indent: 17.95pt"><span style="font-family: 宋体">其样式如下：</span><br />
</p>
<p style="text-indent: 17.95pt"></p>
<div class="cnblogs_code"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #800000">.progressbar</span><span style="color: #000000">{</span><span style="color: #ff0000">float</span><span style="color: #000000">:</span><span style="color: #0000ff">left</span><span style="color: #000000">;</span><span style="color: #ff0000">width</span><span style="color: #000000">:</span><span style="color: #0000ff">95%</span><span style="color: #000000">;</span><span style="color: #ff0000">height</span><span style="color: #000000">:</span><span style="color: #0000ff">5px</span><span style="color: #000000">;</span><span style="color: #ff0000">margin-top</span><span style="color: #000000">:</span><span style="color: #0000ff">3px</span><span style="color: #000000">;</span><span style="color: #ff0000">margin-bottom</span><span style="color: #000000">:</span><span style="color: #0000ff">5px</span><span style="color: #000000">;</span><span style="color: #ff0000">&nbsp;position</span><span style="color: #000000">:</span><span style="color: #0000ff">relative</span><span style="color: #000000">;</span><span style="color: #000000">}</span><span style="color: #800000"><br />
.leftbar</span><span style="color: #000000">{</span><span style="color: #ff0000">width</span><span style="color: #000000">:</span><span style="color: #0000ff">100%</span><span style="color: #000000">;</span><span style="color: #ff0000">height</span><span style="color: #000000">:</span><span style="color: #0000ff">5px</span><span style="color: #000000">;</span><span style="color: #ff0000">font-size</span><span style="color: #000000">:</span><span style="color: #0000ff">0%</span><span style="color: #000000">;</span><span style="color: #ff0000">background</span><span style="color: #000000">:</span><span style="color: #0000ff">url(../image/splitbar.gif)&nbsp;repeat-x&nbsp;left&nbsp;bottom</span><span style="color: #000000">;</span><span style="color: #000000">}</span><span style="color: #800000"><br />
.rightbar</span><span style="color: #000000">{</span><span style="color: #ff0000">float</span><span style="color: #000000">:</span><span style="color: #0000ff">right</span><span style="color: #000000">;</span><span style="color: #ff0000">width</span><span style="color: #000000">:</span><span style="color: #0000ff">50%</span><span style="color: #000000">;</span><span style="color: #ff0000">position</span><span style="color: #000000">:</span><span style="color: #0000ff">relative</span><span style="color: #000000">;</span><span style="color: #ff0000">height</span><span style="color: #000000">:</span><span style="color: #0000ff">5px</span><span style="color: #000000">;</span><span style="color: #ff0000">font-size</span><span style="color: #000000">:</span><span style="color: #0000ff">0%</span><span style="color: #000000">;</span><span style="color: #ff0000">background</span><span style="color: #000000">:</span><span style="color: #0000ff">url(../image/splitbar.gif)&nbsp;repeat-x&nbsp;left&nbsp;top</span><span style="color: #000000">;</span><span style="color: #000000">}</span><span style="color: #800000"><br />
.drawbar</span><span style="color: #000000">{</span><span style="color: #ff0000">display</span><span style="color: #000000">:</span><span style="color: #0000ff">block</span><span style="color: #000000">;</span><span style="color: #ff0000">width</span><span style="color: #000000">:</span><span style="color: #0000ff">11px</span><span style="color: #000000">;</span><span style="color: #ff0000">height</span><span style="color: #000000">:</span><span style="color: #0000ff">11px</span><span style="color: #000000">;</span><span style="color: #ff0000">position</span><span style="color: #000000">:</span><span style="color: #0000ff">absolute</span><span style="color: #000000">;</span><span style="color: #ff0000">top</span><span style="color: #000000">:</span><span style="color: #0000ff">-3px</span><span style="color: #000000">;</span><span style="color: #ff0000">left</span><span style="color: #000000">:</span><span style="color: #0000ff">0</span><span style="color: #000000">;</span><span style="color: #ff0000">background</span><span style="color: #000000">:</span><span style="color: #0000ff">url(../image/bar.gif)&nbsp;no-repeat&nbsp;left&nbsp;top</span><span style="color: #000000">;</span><span style="color: #ff0000">text-indent</span><span style="color: #000000">:</span><span style="color: #0000ff">-9999px</span><span style="color: #000000">;</span><span style="color: #000000">}</span><span style="color: #800000"><br />
</span></div>
<p style="text-indent: 17.95pt">Leftbar<span style="font-family: 宋体">这个</span>div<span style="font-family: 宋体">是左侧绿色的进度槽，它的宽度其实是</span>100%<span style="font-family: 宋体">，它在下面，它的上面是</span>rightbar<span style="font-family: 宋体">这个</span>div<span style="font-family: 宋体">，为了演示，我将它的宽度设置为</span>50%<span style="font-family: 宋体">，并将它设置为向右浮动，因为它是</span>Leftbar<span style="font-family: 宋体">的子容器，所以它会遮盖住</span>Leftbar<span style="font-family: 宋体">的右边</span>50%<span style="font-family: 宋体">的宽度，并将背景图设置为一个灰色图片，这样就有了点进度在</span>50%<span style="font-family: 宋体">的样子了，然后我在</span>rightbar<span style="font-family: 宋体">中再加了一个子容器，它是用来加载那个绿色拖动栏的小图标的。我们将它设置为绝对定位，让它浮在</span>rightbar<span style="font-family: 宋体">这个父容器的上面，因为这个小图标的高度比</span>rightbar<span style="font-family: 宋体">高，所以将它向上偏移了</span>3<span style="font-family: 宋体">像素，让它看起上下是垂直居中的样子。这样一个拖动栏就算制作成功，当然因为还没有加入</span>js<span style="font-family: 宋体">功能的原因，所以目前它还不能拖动，为了以后</span>js<span style="font-family: 宋体">功能的完善，我在这儿为这两个容器加入了一个</span>ID<span style="font-family: 宋体">，作为</span>js<span style="font-family: 宋体">代码的钩子。</span></p>
<p style="text-indent: 17.95pt"><span style="font-family: 宋体">至于音量进度栏，其设置方式是一样的，只是它少了一个拖动图片罢了。</span></p>
<p style="text-indent: 17.95pt"><span style="font-family: 宋体">然后我们再给&#8220;全屏&#8221;和&#8220;宽屏&#8221;这两个按钮加入了一点</span>js<span style="font-family: 宋体">代码，让它能演示这种布局在宽高值变化时的状态。</span></p>
<p>Ok<span style="font-family: 宋体">，一个比较漂亮的播放器基本布局就算完成了，当然它目前只是一个花架子，你可以加入播放功能来完善它。</span> <br />
</p>
<p style="text-indent: 18pt"><strong><span style="font-family: 宋体">本模型为了演示九宫格的强大自适应功能，只对右下角的三个按钮加入了</span>js</strong><strong><span style="font-family: 宋体">功能，你可以点击这几个按钮来演示九宫格在宽高值放大的情况下的完美表现。</span></strong></p>
<p style="text-indent: 15.8pt"><strong><span style="font-family: 宋体">本模型在以下浏览器中测试通过：</span></strong></p>
<p style="text-indent: 15.8pt"><strong><span style="color: red">IE6</span></strong><strong><span style="font-family: 宋体; color: red">、</span><span style="color: red">IE7</span></strong><strong><span style="font-family: 宋体; color: red">、</span><span style="color: red">IE8</span></strong><strong><span style="font-family: 宋体; color: red">、</span><span style="color: red">FF3</span></strong><strong><span style="font-family: 宋体; color: red">、</span><span style="color: red">TT</span></strong><strong><span style="font-family: 宋体; color: red">、</span><span style="color: red">Maxthon2.1.5</span></strong><strong><span style="font-family: 宋体; color: red">、</span><span style="color: red">Opera9.6</span></strong><strong><span style="font-family: 宋体; color: red">、</span><span style="color: red">Safari4.0</span></strong><strong><span style="font-family: 宋体; color: red">、</span><span style="color: red">Chrome2.0</span></strong><strong><span style="font-family: 宋体; color: red">。</span></strong></p>
<p style="text-indent: 15.8pt"><strong><span style="font-family: 宋体; color: red">点击这儿下载本演示模型的压缩包：</span></strong><a href="http://files.cnblogs.com/binyong/player.rar" target="_blank"><strong><span style="font-family: 宋体; color: red"></span><span style="color: #0000ff">下载Demo</span></strong></a><strong>&nbsp;</strong></p>
<p style="text-indent: 15.8pt"><strong><span style="font-family: 宋体">总结：</span></strong></p>
<p style="text-indent: 15.8pt"><strong><span style="font-family: 宋体">本系列文章在这一篇后就暂时告一段落，尘埃落定之际，我们应该反思一下，它的应用是否就仅局限于此呢，</span>NO</strong><strong><span style="font-family: 宋体">！九宫格布局可以应用的地方是很多的，比如现在的网页设计中，对于一个个区域版块，我们都可以应用它，这种布局设计特别适用于图形设计要求比较高的地方。当然对于这种布局的制作可能花费的时间比一个普通的设计要多得多，针对具体环境具体运用了。</span></strong></p>
<p style="text-indent: 15.8pt"><strong><span style="font-family: 宋体">后记：</span></strong></p>
<p style="text-indent: 15.8pt"><strong><span style="font-family: 宋体">本系列教程试图通过由浅入深的方式将这种布局设计带给大家，古人常说：<span style="color: red">授人以鱼，不如授人以渔。</span>希望大家能融会贯通，将它发扬光大，当然因本人水平有限，如果有讲解不妥之处，敬请原谅，也希望大家雅正</span>!</strong></p>
<p style="text-indent: 15.8pt"><strong><span style="font-family: 宋体">如果在本教程中有什么疑问，可以直接在我的博客上提出来，或</span></strong><strong><span style="font-family: 宋体">电邮</span></strong><strong><span style="font-family: 宋体">我。谢谢！</span></strong><strong>&nbsp;</strong></p>
<p style="text-indent: 15.8pt" align="right"><strong><span style="font-family: 宋体">冰极峰博客地址：</span><a href="http://www.cnblogs.com/binyong/">http://www.cnblogs.com/binyong/</a></strong><strong>&nbsp;</strong></p>
<p align="right"><strong>（本系列完）</strong> </p><img src="http://www.cnblogs.com/binyong/aggbug/1512909.html?type=1" width="1" height="1" alt=""/><p>评论: 17　<a href="http://www.cnblogs.com/binyong/archive/2009/06/29/1512909.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/binyong/archive/2009/06/29/1512909.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56859/" target="_blank">美调查公司称苹果iPad配件成本最低219美元</a><span style="color:gray">(2010-02-10 17:20)</span><br/>· <a href="http://news.cnblogs.com/n/56858/" target="_blank">摩尔庄园：儿童生意密码</a><span style="color:gray">(2010-02-10 17:15)</span><br/>· <a href="http://news.cnblogs.com/n/56857/" target="_blank">Facebook与美国在线合作 整合AIM动态功能</a><span style="color:gray">(2010-02-10 16:41)</span><br/>· <a href="http://news.cnblogs.com/n/56855/" target="_blank">NDepend 3.0已与Visual Studio集成</a><span style="color:gray">(2010-02-10 16:17)</span><br/>· <a href="http://news.cnblogs.com/n/56854/" target="_blank">Ruby in Steel 1.5发布，去除IronRuby支持</a><span style="color:gray">(2010-02-10 16:14)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/news/tag/Buzz/" target="_blank">Google Buzz相关新闻</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>【冰极峰教程系列之三】：三层分离的完美九宫格</title><link>http://www.cnblogs.com/binyong/archive/2009/06/24/1508289.html</link><dc:creator>Biny</dc:creator><author>Biny</author><pubDate>Wed, 24 Jun 2009 00:47:00 GMT</pubDate><guid>http://www.cnblogs.com/binyong/archive/2009/06/24/1508289.html</guid><description><![CDATA[<p>阅读: 2781 评论: 10 作者: <a href="http://www.cnblogs.com/binyong/" target="_blank">Biny</a> 发表于 2009-06-24 08:47 <a href="http://www.cnblogs.com/binyong/archive/2009/06/24/1508289.html" target="_blank">原文链接</a></p><hr />
<p style="background: white none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; margin-bottom: 7.5pt; text-indent: 24pt; line-height: 19.5pt;" align="center"><strong><span style="font-size: 9pt; color: black; font-family: 宋体;">原创：<a href="http://www.cnblogs.com/binyong/">冰极峰</a></span></strong><strong> </strong><strong><span style="font-size: 9pt; color: black; font-family: 宋体;">转载请注明出处</span></strong><strong> </strong><strong><span style="font-size: 9pt; color: black; font-family: 宋体;">时间：2009年6月24日</span></strong><strong><span style="font-size: 9pt; color: black; font-family: Verdana;"> 8:40:41</span></strong></p>
<hr />
<p><strong><a href="http://www.cnblogs.com/binyong/archive/2009/06/18/1505608.html" target="_blank">冰极峰教程系列之一：九宫格基本布局</a></strong></p>
<p><strong><a href="http://www.cnblogs.com/binyong/archive/2009/06/22/1507997.html" target="_blank">冰极峰教程系列之二：牢不可破的九宫格布局</a></strong></p>
<p>
<strong><a href="http://www.cnblogs.com/binyong/archive/2009/06/24/1508289.html" target="_blank">冰极峰教程系列之三：三层分离的完美九宫格</a></strong></p>
<p>
<strong><a href="http://www.cnblogs.com/binyong/archive/2009/06/29/1512909.html" target="_blank">冰极峰教程系列之四：九宫格应用案例--极酷网页播放器设计</a></strong></p>
<p><a href="http://www.cnblogs.com/binyong/archive/2009/07/19/1526748.html" target="_blank"><strong>冰极峰教程系列之五：无hack并支持透明圆角框的全兼容九宫格布局</strong></a></p>
<hr />
<p>&nbsp;</p>
<p style="text-indent: 17.95pt;"><span style="font-family: 宋体;">在我的前一篇教程《<strong><a href="http://www.cnblogs.com/binyong/archive/2009/06/22/1507997.html"><strong>牢不可破的九宫格布局</strong></a></strong>》中，我介绍了一种比较完美的九宫格布局方法，它能完全弹性地调整自己的宽高，从而实现比较灵活的布局风格。</span></p>
<p style="text-indent: 17.95pt;"><span style="font-family: 宋体;">然而为了弹性功能完美地体现出来，所付出的代价还是很沉重的，从结构上看，其结构是比较臃肿的，但是每个节点又是必不可少的，无法精简，否则会导致其灵活性不够。</span></p>
<p style="text-indent: 17.95pt;"><span style="font-family: 宋体;">在实战运用中，可能好多设计师并不喜欢这种布局结构，嫌其结构冗余。</span></p>
<p style="text-indent: 17.95pt;"><span style="font-family: 宋体;">一个完美的九宫格设计应该是一种三层分离的结构，我想达到的理想的九宫格应该是这样的：</span></p>
<p style="margin-left: 35.95pt; text-indent: -18pt;"><span>1、&nbsp;</span><span style="font-family: 宋体;">只需要应用一个</span>class<span style="font-family: 宋体;">样式给想应用九宫格布局的容器，就能自动创建这种布局。结构应该足够精简，只用很少的结构就能实现丰富的颜色风格。</span></p>
<p style="margin-left: 35.95pt; text-indent: -18pt;"><span>2、&nbsp;</span><span style="font-family: 宋体;">能够将这种布局样式应用于一个页面的多个容器中。</span></p>
<p style="margin-left: 35.95pt; text-indent: -18pt;"><span>3、&nbsp;</span><span style="font-family: 宋体;">三层分离的设计，能提供丰富的颜色皮肤方案，便于将不同的样式应用于多个风格迥异的盒子上。</span></p>
<p style="margin-left: 35.95pt; text-indent: -18pt;"><span>4、&nbsp;</span><span style="font-family: 宋体;">要足够健壮，能兼容大多数浏览器。</span></p>
<p style="text-indent: 17.95pt;"><span style="font-family: 宋体;">因此，在这一篇文章中，我会将这种布局尽量向着这种理想化的境界靠近，让它更宜于应用在各个方面。</span></p>
<p style="text-indent: 17.95pt;"><span style="font-family: 宋体;">对于一、二点，又想要保持其灵活性，又想要达到精简的效果，就是说想&#8220;鱼和熊掌兼得&#8221;，除了应用</span>js<span style="font-family: 宋体;">封装外，并无其它的办法。你可以说这是一种&#8220;掩耳盗铃&#8221;的做法，是的，我不得不承认，这种用</span>JS<span style="font-family: 宋体;">封装的办法，从本质上说并没有精简其结构，只不过将其结构都用动态的方式来创建，但对冗余的</span>html<span style="font-family: 宋体;">结构确实有立竿见影的效果，一下子就将所有冗余的结构化于无形之中。</span></p>
<p style="text-indent: 17.95pt;"><span style="font-family: 宋体;">我们还是从三层分离的做法中了解如何改进我们的九宫格吧。</span>&nbsp;</p>
<p><strong><span style="font-family: 宋体;">【结构层】</span></strong></p>
<p style="text-indent: 17.95pt;"><span style="font-family: 宋体;">这是我们要尽量精简的重点区域，我们用</span>js<span style="font-family: 宋体;">的方式来动态创建其结构，所以现在的结构应该是如下的最最原始的结构了：</span><span style="font-family: 宋体;"></span></p>
<div class="cnblogs_code"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">div&nbsp;</span><span style="color: #ff0000;">class</span><span style="color: #0000ff;">="box"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">第一个九宫格盒子</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">div</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">div&nbsp;</span><span style="color: #ff0000;">class</span><span style="color: #0000ff;">="box"</span><span style="color: #ff0000;">&nbsp;id</span><span style="color: #0000ff;">=&#8220;one&#8221;</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">第二个九宫格盒子</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">div</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">div&nbsp;</span><span style="color: #ff0000;">class</span><span style="color: #0000ff;">="box"</span><span style="color: #ff0000;">&nbsp;id</span><span style="color: #0000ff;">=&#8220;two&#8221;</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">第三个九宫格盒子</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">div</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
</span></div>
<p style="text-indent: 17.95pt;"><span style="font-family: 宋体;">我唯一作了一点修改的是，将每一个盒子加了一个不同的</span>ID<span style="font-family: 宋体;">，这为以后创建不同的颜色方式留下一个供样式表调用的钩子。通过这个</span>ID<span style="font-family: 宋体;">在样式表中创建不同的图片或颜色风格。</span></p>
<p style="text-indent: 17.95pt;"><span style="font-family: 宋体;">我们应该只需要给</span>div<span style="font-family: 宋体;">容器添加一个</span>class=&#8221;box&#8221;<span style="font-family: 宋体;">，就会将九宫格布局成功地创建出来。这样是够简洁的了吧！</span>&nbsp;</p>
<p><strong><span style="font-family: 宋体;">【样式层】</span></strong></p>
<p style="text-indent: 17.95pt;"><span style="font-family: 宋体;">刚才在结构层中我们埋下了定制样式的突破点（那个不同的</span>id<span style="font-family: 宋体;">），那么在写样式时就显得得心应手了。我们将所有的九个需要改变风格的地方的样式进行覆盖性重置，就能得到不同的风格样式。</span><span style="font-family: 宋体;"></span></p>
<div class="cnblogs_code"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #800000;">&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/*</span><span style="color: #008000;">颜色方案一</span><span style="color: #008000;">*/</span><span style="color: #800000;"><br />
&nbsp;&nbsp;&nbsp;#one&nbsp;.t_l</span><span style="color: #000000;">{</span><span style="color: #ff0000;">background</span><span style="color: #000000;">:</span><span style="color: #0000ff;">blue</span><span style="color: #000000;">;</span><span style="color: #000000;">}</span><span style="color: #800000;"><br />
&nbsp;&nbsp;&nbsp;#one&nbsp;.t_r</span><span style="color: #000000;">{</span><span style="color: #ff0000;">background</span><span style="color: #000000;">:</span><span style="color: #0000ff;">blue</span><span style="color: #000000;">;</span><span style="color: #000000;">}</span><span style="color: #800000;"><br />
&nbsp;&nbsp;&nbsp;#one&nbsp;.t_m</span><span style="color: #000000;">{</span><span style="color: #ff0000;">background</span><span style="color: #000000;">:</span><span style="color: #0000ff;">orange</span><span style="color: #000000;">;</span><span style="color: #000000;">}</span><span style="color: #800000;"><br />
&nbsp;&nbsp;&nbsp;#one&nbsp;.m_l</span><span style="color: #000000;">{</span><span style="color: #ff0000;">background</span><span style="color: #000000;">:</span><span style="color: #0000ff;">orange</span><span style="color: #000000;">;</span><span style="color: #000000;">}</span><span style="color: #800000;"><br />
&nbsp;&nbsp;&nbsp;#one&nbsp;.m_r</span><span style="color: #000000;">{</span><span style="color: #ff0000;">background</span><span style="color: #000000;">:</span><span style="color: #0000ff;">orange</span><span style="color: #000000;">;</span><span style="color: #000000;">}</span><span style="color: #800000;"><br />
&nbsp;&nbsp;&nbsp;#one&nbsp;.b_l</span><span style="color: #000000;">{</span><span style="color: #ff0000;">background</span><span style="color: #000000;">:</span><span style="color: #0000ff;">blue</span><span style="color: #000000;">;</span><span style="color: #000000;">}</span><span style="color: #800000;"><br />
&nbsp;&nbsp;&nbsp;#one&nbsp;.b_r</span><span style="color: #000000;">{</span><span style="color: #ff0000;">background</span><span style="color: #000000;">:</span><span style="color: #0000ff;">blue</span><span style="color: #000000;">;</span><span style="color: #000000;">}</span><span style="color: #800000;"><br />
&nbsp;&nbsp;&nbsp;#one&nbsp;.b_m&nbsp;span</span><span style="color: #000000;">{</span><span style="color: #ff0000;">background</span><span style="color: #000000;">:</span><span style="color: #0000ff;">orange</span><span style="color: #000000;">;</span><span style="color: #000000;">}</span><span style="color: #800000;"><br />
&nbsp;&nbsp;&nbsp;#one&nbsp;.context</span><span style="color: #000000;">{</span><span style="color: #ff0000;">background</span><span style="color: #000000;">:</span><span style="color: #0000ff;">#666</span><span style="color: #000000;">;</span><span style="color: #000000;">}</span><span style="color: #800000;">&nbsp;&nbsp;&nbsp;<br />
<br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/*</span><span style="color: #008000;">颜色方案二</span><span style="color: #008000;">*/</span><span style="color: #800000;"><br />
&nbsp;&nbsp;&nbsp;#two&nbsp;.t_l</span><span style="color: #000000;">{</span><span style="color: #ff0000;">background</span><span style="color: #000000;">:</span><span style="color: #0000ff;">red</span><span style="color: #000000;">;</span><span style="color: #000000;">}</span><span style="color: #800000;"><br />
&nbsp;&nbsp;&nbsp;#two&nbsp;.t_r</span><span style="color: #000000;">{</span><span style="color: #ff0000;">background</span><span style="color: #000000;">:</span><span style="color: #0000ff;">red</span><span style="color: #000000;">;</span><span style="color: #000000;">}</span><span style="color: #800000;"><br />
&nbsp;&nbsp;&nbsp;#two&nbsp;.t_m</span><span style="color: #000000;">{</span><span style="color: #ff0000;">background</span><span style="color: #000000;">:</span><span style="color: #0000ff;">black</span><span style="color: #000000;">;</span><span style="color: #000000;">}</span><span style="color: #800000;"><br />
&nbsp;&nbsp;&nbsp;#two&nbsp;.m_l</span><span style="color: #000000;">{</span><span style="color: #ff0000;">background</span><span style="color: #000000;">:</span><span style="color: #0000ff;">black</span><span style="color: #000000;">;</span><span style="color: #000000;">}</span><span style="color: #800000;"><br />
&nbsp;&nbsp;&nbsp;#two&nbsp;.m_r</span><span style="color: #000000;">{</span><span style="color: #ff0000;">background</span><span style="color: #000000;">:</span><span style="color: #0000ff;">black</span><span style="color: #000000;">;</span><span style="color: #000000;">}</span><span style="color: #800000;"><br />
&nbsp;&nbsp;&nbsp;#two&nbsp;.b_l</span><span style="color: #000000;">{</span><span style="color: #ff0000;">background</span><span style="color: #000000;">:</span><span style="color: #0000ff;">red</span><span style="color: #000000;">;</span><span style="color: #000000;">}</span><span style="color: #800000;"><br />
&nbsp;&nbsp;&nbsp;#two&nbsp;.b_r</span><span style="color: #000000;">{</span><span style="color: #ff0000;">background</span><span style="color: #000000;">:</span><span style="color: #0000ff;">red</span><span style="color: #000000;">;</span><span style="color: #000000;">}</span><span style="color: #800000;"><br />
&nbsp;&nbsp;&nbsp;#two&nbsp;.b_m&nbsp;span</span><span style="color: #000000;">{</span><span style="color: #ff0000;">background</span><span style="color: #000000;">:</span><span style="color: #0000ff;">black</span><span style="color: #000000;">;</span><span style="color: #000000;">}</span><span style="color: #800000;"><br />
&nbsp;&nbsp;&nbsp;#two&nbsp;.context</span><span style="color: #000000;">{</span><span style="color: #ff0000;">background</span><span style="color: #000000;">:</span><span style="color: #0000ff;">#999</span><span style="color: #000000;">;</span><span style="color: #000000;">}</span></div>
<p style="text-indent: 17.95pt;"><span style="font-family: 宋体;">当然你可以将不同的图片应用于</span>background<span style="font-family: 宋体;">上作为其背景，我只是为了演示方便而调用了颜色值而已，具体的界面风格就看你的设计功夫了。</span></p>
<p><strong><span style="font-family: 宋体;">【行为层】</span></strong></p>
<p style="text-indent: 17.95pt;"><span style="font-family: 宋体;">我们在结构层中已经将所有用于创建九宫格的结构全部删除了，那么在我们就要在行为层（</span>js<span style="font-family: 宋体;">）中动态的创建它。</span></p>
<p style="text-indent: 17.95pt;"><span style="font-family: 宋体;">在这里我们会遇到一个问题：我们想将所有应用了</span>class="box"<span style="font-family: 宋体;">的</span>div<span style="font-family: 宋体;">都用循环的方式遍历出来，以便于我们只需要一个</span>class<span style="font-family: 宋体;">就可以自动应用这种九宫格样式，可是在</span>js<span style="font-family: 宋体;">的</span>dom<span style="font-family: 宋体;">方法中并没有一个已经存在的函数，就像&#8220;</span>getElementsByTagName<span style="font-family: 宋体;">&#8221;一样通过一个标签名称来获得一个对象数组的方法，我想在这儿我们最想要的是一个如同&#8220;</span>getElementsByClassName<span style="font-family: 宋体;">&#8221;（从字面的意思上是指：根据一个</span>class<span style="font-family: 宋体;">类名获得一个对象的数组）的方法了。</span></p>
<p style="text-indent: 17.95pt;"><span style="font-family: 宋体;">因此在我们的</span>js<span style="font-family: 宋体;">中就需要写一个这样的自定义方法：为了更贴近地表达的我们的意思，我们就将它取名为&#8220;</span>getElementsByClassName<span style="font-family: 宋体;">&#8221;。</span></p>
<p style="text-indent: 17.95pt;"><span style="font-family: 宋体;">这个方法就是传递一个</span>class<span style="font-family: 宋体;">类名，然后获得一个应用了这个</span>class<span style="font-family: 宋体;">的容器的对象数组。</span><span style="font-family: 宋体;"></span></p>
<div class="cnblogs_code"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">document.getElementsByClassName&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">function</span><span style="color: #000000;">(theName){<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">var</span><span style="color: #000000;">&nbsp;j&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">var</span><span style="color: #000000;">&nbsp;array&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;[];<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(</span><span style="color: #0000ff;">var</span><span style="color: #000000;">&nbsp;i&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;(e&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;document.getElementsByTagName(</span><span style="color: #000000;">"</span><span style="color: #000000;">*</span><span style="color: #000000;">"</span><span style="color: #000000;">)[i]);&nbsp;i</span><span style="color: #000000;">++</span><span style="color: #000000;">){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(e.className&nbsp;</span><span style="color: #000000;">==</span><span style="color: #000000;">&nbsp;theName){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array[j]&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;e;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;j</span><span style="color: #000000;">++</span><span style="color: #000000;">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;array;<br />
}<br />
</span></div>
<p style="text-indent: 17.95pt;"><span style="font-family: 宋体;">获得了所有应用了这个</span>class<span style="font-family: 宋体;">的</span>div<span style="font-family: 宋体;">容器的对象数组后，我们就可以利用</span>for<span style="font-family: 宋体;">循环遍历每个对象，然后分别给它内部装填我们刚才删除的九宫格结构。因此我们再创建一个函数，用来动态生成结构体：</span><span style="font-family: 宋体;"></span></p>
<div class="cnblogs_code"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008000;">//</span><span style="color: #008000;">根据类名加载九宫格样式</span><span style="color: #008000;"><br />
</span><span style="color: #0000ff;">function</span><span style="color: #000000;">&nbsp;creatDiv(){<br />
divs&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;document.getElementsByClassName(</span><span style="color: #000000;">'</span><span style="color: #000000;">box</span><span style="color: #000000;">'</span><span style="color: #000000;">);<br />
</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">var</span><span style="color: #000000;">&nbsp;i&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;&nbsp;i&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">&nbsp;divs.length;&nbsp;i</span><span style="color: #000000;">++</span><span style="color: #000000;">)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">var</span><span style="color: #000000;">&nbsp;strhtml&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;divs[i].innerHTML;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">将结构体封装在这个变量中</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">var</span><span style="color: #000000;">&nbsp;indiv&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">&lt;div&nbsp;class='top'&gt;&lt;span&nbsp;class='t_m'&gt;&lt;/span&gt;&lt;/div&gt;&lt;span&nbsp;class='t_l'&gt;&lt;/span&gt;&lt;span&nbsp;class='t_r'&gt;&lt;/span&gt;&lt;span&nbsp;class='m_l'&gt;&lt;/span&gt;&lt;span&nbsp;class='m_r'&gt;&lt;/span&gt;&lt;div&nbsp;class='context'&nbsp;id='m_m_</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;i&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">'&gt;&lt;/div&gt;&lt;div&nbsp;class='b_m'&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span&nbsp;class='b_l'&gt;&lt;/span&gt;&lt;span&nbsp;class='b_r'&gt;&lt;/span&gt;</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;divs[i].innerHTML</span><span style="color: #000000;">=</span><span style="color: #000000;">indiv;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">var</span><span style="color: #000000;">&nbsp;dd1&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;document.getElementById(</span><span style="color: #000000;">"</span><span style="color: #000000;">m_m_</span><span style="color: #000000;">"</span><span style="color: #000000;">+</span><span style="color: #000000;">i);<br />
&nbsp;&nbsp;&nbsp;&nbsp;dd1.innerHTML</span><span style="color: #000000;">=</span><span style="color: #000000;">strhtml;<br />
}<br />
}<br />
<br />
</span></div>
<p style="text-indent: 17.95pt;"><span style="font-family: 宋体;">然后我们利用</span>window.onload<span style="font-family: 宋体;">函数在窗体一加载时就加载这个</span>creatDiv<span style="font-family: 宋体;">（）方法。</span></p>
<p style="text-indent: 17.95pt;">window.onload=creatDiv;<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></p>
<p style="text-indent: 17.95pt;"><span style="font-family: 宋体;">这样在整个页面加载成功后，会自动将所有应用了</span>class=&#8221;box&#8221;<span style="font-family: 宋体;">的</span>div<span style="font-family: 宋体;">容器加载成九宫格的结构样式。</span></p>
<p style="text-indent: 17.95pt;"><span style="font-family: 宋体;">经过上述的一番改头换面的修改后，一个更健壮，三层分离的完美九宫格就被我们打造出来了。这种布局可以应用到很多地方，并且因为其强大的自适应功能和灵活多变的风格更受广大朋友的喜爱。下面是演示效果截图：</span></p>
<p style="text-indent: 17.95pt;"><span style="font-family: 宋体;">
<div align="center"><img alt="" src="http://images.cnblogs.com/cnblogs_com/binyong/jiou/jiougongge2.gif" border="0" width="379" height="551" /></div>
</span>
</p>
<p>&nbsp;</p>
<p style="text-indent: 17.95pt;" align="center"></p>
<p style="text-indent: 15.8pt;"><strong><span style="font-family: 宋体;">本模型在以下浏览器中测试通过：</span></strong></p>
<p style="text-indent: 15.8pt;"><strong><span style="color: red;">IE5.5</span></strong><strong><span style="color: red; font-family: 宋体;">、</span><span style="color: red;">IE6</span></strong><strong><span style="color: red; font-family: 宋体;">、</span><span style="color: red;">IE7</span></strong><strong><span style="color: red; font-family: 宋体;">、</span><span style="color: red;">IE8</span></strong><strong><span style="color: red; font-family: 宋体;">、</span><span style="color: red;">FF3</span></strong><strong><span style="color: red; font-family: 宋体;">、</span><span style="color: red;">TT</span></strong><strong><span style="color: red; font-family: 宋体;">、</span><span style="color: red;">Maxthon2.1.5</span></strong><strong><span style="color: red; font-family: 宋体;">、</span><span style="color: red;">Opera9.6</span></strong><strong><span style="color: red; font-family: 宋体;">、</span><span style="color: red;">Safari4.0</span></strong><strong><span style="color: red; font-family: 宋体;">、</span><span style="color: red;">Chrome2.0</span></strong><strong><span style="color: red; font-family: 宋体;">。</span></strong>&nbsp;</p>
<p style="text-indent: 15.8pt;"><strong>（PS：因博客园屏蔽页面中的js文件，请下载下面的文件到本地观看。）</strong></p>
<p style="font-weight: bold; color: red;">下载：<a href="http://files.cnblogs.com/binyong/jscreat.rar"><strong>演示Demo</strong></a></p><img src="http://www.cnblogs.com/binyong/aggbug/1508289.html?type=1" width="1" height="1" alt=""/><p>评论: 10　<a href="http://www.cnblogs.com/binyong/archive/2009/06/24/1508289.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/binyong/archive/2009/06/24/1508289.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56859/" target="_blank">美调查公司称苹果iPad配件成本最低219美元</a><span style="color:gray">(2010-02-10 17:20)</span><br/>· <a href="http://news.cnblogs.com/n/56858/" target="_blank">摩尔庄园：儿童生意密码</a><span style="color:gray">(2010-02-10 17:15)</span><br/>· <a href="http://news.cnblogs.com/n/56857/" target="_blank">Facebook与美国在线合作 整合AIM动态功能</a><span style="color:gray">(2010-02-10 16:41)</span><br/>· <a href="http://news.cnblogs.com/n/56855/" target="_blank">NDepend 3.0已与Visual Studio集成</a><span style="color:gray">(2010-02-10 16:17)</span><br/>· <a href="http://news.cnblogs.com/n/56854/" target="_blank">Ruby in Steel 1.5发布，去除IronRuby支持</a><span style="color:gray">(2010-02-10 16:14)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/news/tag/Buzz/" target="_blank">Google Buzz相关新闻</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>【冰极峰教程系列之二】：牢不可破的九宫格布局</title><link>http://www.cnblogs.com/binyong/archive/2009/06/22/1507997.html</link><dc:creator>Biny</dc:creator><author>Biny</author><pubDate>Mon, 22 Jun 2009 00:41:00 GMT</pubDate><guid>http://www.cnblogs.com/binyong/archive/2009/06/22/1507997.html</guid><description><![CDATA[<p>阅读: 2919 评论: 18 作者: <a href="http://www.cnblogs.com/binyong/" target="_blank">Biny</a> 发表于 2009-06-22 08:41 <a href="http://www.cnblogs.com/binyong/archive/2009/06/22/1507997.html" target="_blank">原文链接</a></p><br />
<hr size="2" width="100%" />
<p style="background: white none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; margin-bottom: 7.5pt; text-indent: 24pt; line-height: 19.5pt; text-align: center;" align="center"><strong><span style="font-size: 9pt; color: black; font-family: 宋体;">原创：冰极峰</span></strong><strong> </strong><strong><span style="font-size: 9pt; color: black; font-family: 宋体;">转载请注明出处</span></strong><strong> </strong><strong><span style="font-size: 9pt; color: black; font-family: 宋体;">时间：2009年6月22日 8:40:16</span></strong>
</p>
<hr />
<p><strong><a href="http://www.cnblogs.com/binyong/archive/2009/06/18/1505608.html" target="_blank">冰极峰教程系列之一：九宫格基本布局</a></strong></p>
<p><strong><a href="http://www.cnblogs.com/binyong/archive/2009/06/22/1507997.html" target="_blank">冰极峰教程系列之二：牢不可破的九宫格布局</a></strong></p>
<p><strong><a href="http://www.cnblogs.com/binyong/archive/2009/06/24/1508289.html" target="_blank">冰极峰教程系列之三：三层分离的完美九宫格</a></strong></p>
<p><strong><a href="http://www.cnblogs.com/binyong/archive/2009/06/29/1512909.html" target="_blank">冰极峰教程系列之四：九宫格应用案例--极酷网页播放器设计</a></strong></p>
<p><a href="http://www.cnblogs.com/binyong/archive/2009/07/19/1526748.html" target="_blank"><strong>冰极峰教程系列之五：无hack并支持透明圆角框的全兼容九宫格布局</strong></a></p>
<hr />
<p>&nbsp;</p>
<p style="text-indent: 15.75pt;"><span style="font-family: 宋体;"><strong>在我的前一篇教程《<strong></strong></strong></span><strong><a href="http://www.cnblogs.com/binyong/archive/2009/06/18/1505608.html" target="_blank"><span style="font-family: 宋体;"><strong>九宫格基本布局</strong></span><span style="font-family: 宋体;"></span></a><span style="font-family: 宋体;">》中，我介绍了用<strong>相对定位加绝对定位的方法</strong>来制作九宫格的基本布局。这是一种比较符合人们惯性思维的方法，好像制作过程中一切都是顺理成章的事情，然而因为</span>IE6<span style="font-family: 宋体;">让人恶心的奇偶性</span>BUG<span style="font-family: 宋体;">，使得这种布局方法要想通用变得有点遥不可及，因为国内大多数用户还是用着</span>IE6<span style="font-family: 宋体;">，我们不能因此而丢掉这部分用户。</span></strong></p>
<p style="text-indent: 15.75pt;"><span style="font-family: 宋体;"><strong>这个</strong></span><strong>BUG<span style="font-family: 宋体;">目前是无药可治，也没有什么</span>Hack<span style="font-family: 宋体;">技巧能运用，唯一能用的方式就是绕开它。也就是说我要定位这九宫格的四个角容器的位置，绝对定位的方法是不能采用的了，这不吝是一个重大的打击，这将完全推翻我前一篇文章中用到的方法，我们只好另起炉灶了。</span></strong></p>
<p style="text-indent: 15.75pt;"><span style="font-family: 宋体;"><strong>那么还有那些技术能够拯救这个</strong></span><strong>BUG<span style="font-family: 宋体;">于水深火热之中呢？我们知道如果用左右浮动的方法能够准确地将元素对象发生偏移，并且这种方法也能避免</span>IE6<span style="font-family: 宋体;">的奇偶性</span>BUG<span style="font-family: 宋体;">。</span>OK<span style="font-family: 宋体;">，我们就用它了。</span> <br />
</strong></p>
<p style="text-indent: 10.35pt;"><strong><strong><span style="font-family: 宋体;">【布局的重点和难点】</span></strong></strong></p>
<p style="text-indent: 15.75pt;"><span style="font-family: 宋体;"><strong>我们还是按照表格的结构来构建我们新模型的结构体，然而这次会相对于前一篇文章的结构有所改变。在这个模型中我们要关注的重点和难点是以下这两点：</strong></span></p>
<p style="margin-left: 15.75pt;"><strong>1<span style="font-family: 宋体;">、</span> <strong>t_m</strong><strong><span style="font-family: 宋体;">和</span>b_m</strong><strong><span style="font-family: 宋体;">这两个中间容器的宽度值必须是一个百分比的值</span></strong><span style="font-family: 宋体;">，否则不能保证整个九宫格的左右动态伸展，它<strong>决不能为某个固定的像素值</strong>。其宽度等于总容器宽度减去两侧角容器宽度之和的百分比值。其计算公式为：</span></strong></p>
<p style="margin-left: 15.75pt;"><strong><strong>t_m</strong><strong><span style="font-family: 宋体;">（或</span>b_m</strong><strong><span style="font-family: 宋体;">）的宽度</span>=</strong><strong><span style="font-family: 宋体;">（总容器宽度</span>-</strong><strong><span style="font-family: 宋体;">（左上角容器宽</span>+</strong><strong><span style="font-family: 宋体;">右上角容器宽度））</span>/</strong><strong><span style="font-family: 宋体;">总容器宽度</span></strong></strong></p>
<p style="margin-left: 15.75pt;"><span style="font-family: 宋体;"><strong>也就是说</strong></span><strong>t_m<span style="font-family: 宋体;">或</span>b_m<span style="font-family: 宋体;">的宽度不是</span>100%<span style="font-family: 宋体;">，然而</span>t_l<span style="font-family: 宋体;">和</span>t_r<span style="font-family: 宋体;">这两个容器的宽度在实际案例中一般是一张图片的宽度，所以它一般都是一个固定宽度值，这样在一个同行的三个容器中，左右两侧宽度是固定值，而中间又要求是百分比，并且这三个容器的总宽度加起来应该是</span>100%<span style="font-family: 宋体;">，这该怎么办呢？</span></strong></p>
<p style="margin-left: 15.75pt;"><span style="font-family: 宋体;"><strong>这里我们采用一种比较稳妥的办法来让中间容器能达到理想的宽度百分比：</strong></span></p>
<p style="margin-left: 15.75pt;"><span style="font-family: 宋体;"><strong>我们可以用一个</strong></span><strong>DIV<span style="font-family: 宋体;">容器，设置它的</span><span>padding:0 10px;</span><span style="font-family: 宋体;">不设置它的宽度，默认状况下，它的宽度就是</span>100%<span style="font-family: 宋体;">的。因为设置了左右的</span>padding<span style="font-family: 宋体;">值，则其内部的宽度就是我们要的</span>t_m<span style="font-family: 宋体;">的理想宽度值，因此我们再给它内部定义一个容器，这个子容器宽度设置为</span>100%<span style="font-family: 宋体;">。这个子容器的背景色就可以设置为左右水平平铺的背景图片。这个子容器就是我们要用到的上顶边容器。它满足了我们对宽度值的特殊要求。</span></strong></p>
<p><span style="font-family: 宋体;"><strong>　 因此这个</strong></span><strong>t_m<span style="font-family: 宋体;">的结构就可以做成如下的结构：</span>&nbsp;&nbsp;&nbsp; <br />
</strong></p>
<div class="cnblogs_code"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;"><strong>&lt;</strong></span><span style="color: #800000;"><strong>div&nbsp;</strong></span><span style="color: #ff0000;"><strong>class</strong></span><span style="color: #0000ff;"><strong>="top"</strong></span><span style="color: #0000ff;"><strong>&gt;&lt;</strong></span><span style="color: #800000;"><strong>span&nbsp;</strong></span><span style="color: #ff0000;"><strong>class</strong></span><span style="color: #0000ff;"><strong>="t_m"</strong></span><span style="color: #0000ff;"><strong>&gt;&lt;/</strong></span><span style="color: #800000;"><strong>span</strong></span><span style="color: #0000ff;"><strong>&gt;&lt;/</strong></span><span style="color: #800000;"><strong>div</strong></span><span style="color: #0000ff;"><strong>&gt;</strong></span><span style="color: #000000;"><strong><br />
</strong></span></div>
<strong><br />
</strong>
<p style="margin-left: 15.75pt;"><span style="font-family: 宋体;"><strong>然而这样定义会导致另外一个问题，这个问题在</strong></span><strong>IE7<span style="font-family: 宋体;">以下的浏览器的都存在，因为我们定义了</span>padding<span style="font-family: 宋体;">，会在下面的中间的主体层中也同时产生左右侧的内补丁，这里有点不明白的是：为什么会对</span>IE7<span style="font-family: 宋体;">产生影响？</span></strong></p>
<p><span style="font-family: 宋体;"><strong>&nbsp;&nbsp;&nbsp;&nbsp; 因此其补救方法是在这儿针对</strong></span><strong>IE6<span style="font-family: 宋体;">和</span>IE7<span style="font-family: 宋体;">应用一个</span>HACK<span style="font-family: 宋体;">技巧：</span><br />
</strong></p>
<div class="cnblogs_code"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #800000;"><strong>.b_l</strong></span><span style="color: #000000;"><strong>{</strong></span><span style="color: #ff0000;"><strong>margin-left</strong></span><span style="color: #000000;"><strong>:</strong></span><span style="color: #0000ff;"><strong>0px</strong></span><span style="color: #000000;"><strong>;</strong></span><span style="color: #ff0000;"><strong>+margin-left</strong></span><span style="color: #000000;"><strong>:</strong></span><span style="color: #0000ff;"><strong>-10px</strong></span><span style="color: #000000;"><strong>;</strong></span><span style="color: #ff0000;"><strong>_margin-left</strong></span><span style="color: #000000;"><strong>:</strong></span><span style="color: #0000ff;"><strong>-10px</strong></span><span style="color: #000000;"><strong>;</strong></span><span style="color: #000000;"><strong>}</strong></span><span style="color: #800000;"><strong><br />
.b_r</strong></span><span style="color: #000000;"><strong>{</strong></span><span style="color: #ff0000;"><strong>margin-right</strong></span><span style="color: #000000;"><strong>:</strong></span><span style="color: #0000ff;"><strong>0px</strong></span><span style="color: #000000;"><strong>;</strong></span><span style="color: #ff0000;"><strong>+margin-right</strong></span><span style="color: #000000;"><strong>:</strong></span><span style="color: #0000ff;"><strong>-10px</strong></span><span style="color: #000000;"><strong>;</strong></span><span style="color: #ff0000;"><strong>_margin-right</strong></span><span style="color: #000000;"><strong>:</strong></span><span style="color: #0000ff;"><strong>-10px</strong></span><span style="color: #000000;"><strong>;</strong></span><span style="color: #000000;"><strong>}</strong></span></div>
<p style="margin-left: 15.75pt;"><span style="font-family: 宋体;"><strong>这句话是针对三种浏览器设置不同的偏移值，将</strong></span><strong>b_l<span style="font-family: 宋体;">和</span>b_r<span style="font-family: 宋体;">向左右偏移到指定的位置。</span></strong></p>
<p style="margin-left: 15.75pt;"><strong>2<span style="font-family: 宋体;">、</span> <strong>b_l</strong><strong><span style="font-family: 宋体;">和</span>b_r</strong><strong><span style="font-family: 宋体;">这两个容器的高度值必须相同</span></strong><span style="font-family: 宋体;">，以使它们可以一直垂直向下平铺背景色。这样，当中间主体内容区（</span>context<span style="font-family: 宋体;">）中内容的高度发生改变时，其两侧的背景色能一直和主体内容区（</span>context<span style="font-family: 宋体;">）保持同一高度。也就是说它们能根据内容主体的高度而自由地拉伸自己的高度值。</span></strong></p>
<p><span style="font-family: 宋体;"><strong>我们可以采用在平时工作中经常用到的<strong>多列同高</strong>的方法来处理这个问题。这个方法就是采用<strong>内补丁和负外补丁相结合</strong>的方式来达到多列同高：</strong></span><strong> <br />
</strong></p>
<div class="cnblogs_code"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #800000;"><strong>.m_l,.m_r</strong></span><span style="color: #000000;"><strong>{</strong></span><span style="color: #ff0000;"><strong>padding-bottom</strong></span><span style="color: #000000;"><strong>:</strong></span><span style="color: #0000ff;"><strong>30000px</strong></span><span style="color: #000000;"><strong>;</strong></span><span style="color: #ff0000;"><strong>margin-bottom</strong></span><span style="color: #000000;"><strong>:</strong></span><span style="color: #0000ff;"><strong>-30000px</strong></span><span style="color: #000000;"><strong>;</strong></span><span style="color: #000000;"><strong>}</strong></span></div>
<p style="margin-left: 15.75pt;"><span style="font-family: 宋体;"><strong>我们将</strong></span><strong>m_l<span style="font-family: 宋体;">和</span>m_r<span style="font-family: 宋体;">的下内补丁</span>padding-bottom<span style="font-family: 宋体;">的值设置为一个相对比较大的值，比如我将它们设置为</span>30000px<span style="font-family: 宋体;">（你可以将它设置为你想要的值），相信一般的情况下，是不会超过这个高度值了。然后将下外补丁（</span>margin-bottom<span style="font-family: 宋体;">）设置为和下内补丁（</span>padding-bottom<span style="font-family: 宋体;">）值相同的负值，将它拉回到原来的位置上，并将总容器（</span>box<span style="font-family: 宋体;">）设置</span>overflow:hidden;<span style="font-family: 宋体;">，截除多余的高度，就可以保证两列同高。</span></strong></p>
<p><span style="font-family: 宋体;"><strong>　 将上面两个难点问题解决后，余下的事情就是简单而愉快的事情了！</strong></span></p>
<p style="text-indent: 10.35pt;"><strong><strong><span style="font-family: 宋体;">&nbsp;【结构层】</span></strong></strong></p>
<p><span><strong>&nbsp;&nbsp;&nbsp;&nbsp; </strong></span><span style="font-family: 宋体;"><strong>现在我们将结构层在前一个案例的基础上作了一下调整，因此就成了下面这样一种结构了：</strong></span></p>
<div class="cnblogs_code"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;"><strong>&lt;</strong></span><span style="color: #800000;"><strong>div&nbsp;</strong></span><span style="color: #ff0000;"><strong>class</strong></span><span style="color: #0000ff;"><strong>="box"</strong></span><span style="color: #0000ff;"><strong>&gt;</strong></span><span style="color: #000000;"><strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;</strong></span><span style="color: #008000;"><strong>&lt;!--</strong></span><span style="color: #008000;"><strong>第一行&#8212;顶部*/</strong></span><span style="color: #008000;"><strong>--&gt;</strong></span><span style="color: #000000;"><strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;</strong></span><span style="color: #0000ff;"><strong>&lt;</strong></span><span style="color: #800000;"><strong>div&nbsp;</strong></span><span style="color: #ff0000;"><strong>class</strong></span><span style="color: #0000ff;"><strong>="top"</strong></span><span style="color: #0000ff;"><strong>&gt;&lt;</strong></span><span style="color: #800000;"><strong>span&nbsp;</strong></span><span style="color: #ff0000;"><strong>class</strong></span><span style="color: #0000ff;"><strong>="t_m"</strong></span><span style="color: #0000ff;"><strong>&gt;&lt;/</strong></span><span style="color: #800000;"><strong>span</strong></span><span style="color: #0000ff;"><strong>&gt;&lt;/</strong></span><span style="color: #800000;"><strong>div</strong></span><span style="color: #0000ff;"><strong>&gt;</strong></span><span style="color: #000000;"><strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;</strong></span><span style="color: #0000ff;"><strong>&lt;</strong></span><span style="color: #800000;"><strong>span&nbsp;</strong></span><span style="color: #ff0000;"><strong>class</strong></span><span style="color: #0000ff;"><strong>="t_l"</strong></span><span style="color: #0000ff;"><strong>&gt;&lt;/</strong></span><span style="color: #800000;"><strong>span</strong></span><span style="color: #0000ff;"><strong>&gt;</strong></span><span style="color: #000000;"><strong>&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</strong></span><span style="color: #0000ff;"><strong>&lt;</strong></span><span style="color: #800000;"><strong>span&nbsp;</strong></span><span style="color: #ff0000;"><strong>class</strong></span><span style="color: #0000ff;"><strong>="t_r"</strong></span><span style="color: #0000ff;"><strong>&gt;&lt;/</strong></span><span style="color: #800000;"><strong>span</strong></span><span style="color: #0000ff;"><strong>&gt;</strong></span><span style="color: #000000;"><strong><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</strong></span><span style="color: #008000;"><strong>&lt;!--</strong></span><span style="color: #008000;"><strong>第二行&#8212;中间内容区*/</strong></span><span style="color: #008000;"><strong>--&gt;</strong></span><span style="color: #000000;"><strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;</strong></span><span style="color: #0000ff;"><strong>&lt;</strong></span><span style="color: #800000;"><strong>span&nbsp;</strong></span><span style="color: #ff0000;"><strong>class</strong></span><span style="color: #0000ff;"><strong>="m_l"</strong></span><span style="color: #0000ff;"><strong>&gt;&lt;/</strong></span><span style="color: #800000;"><strong>span</strong></span><span style="color: #0000ff;"><strong>&gt;</strong></span><span style="color: #000000;"><strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;</strong></span><span style="color: #0000ff;"><strong>&lt;</strong></span><span style="color: #800000;"><strong>span&nbsp;</strong></span><span style="color: #ff0000;"><strong>class</strong></span><span style="color: #0000ff;"><strong>="m_r"</strong></span><span style="color: #0000ff;"><strong>&gt;&lt;/</strong></span><span style="color: #800000;"><strong>span</strong></span><span style="color: #0000ff;"><strong>&gt;</strong></span><span style="color: #000000;"><strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;</strong></span><span style="color: #0000ff;"><strong>&lt;</strong></span><span style="color: #800000;"><strong>div&nbsp;</strong></span><span style="color: #ff0000;"><strong>class</strong></span><span style="color: #0000ff;"><strong>="context"</strong></span><span style="color: #0000ff;"><strong>&gt;</strong></span><span style="color: #000000;"><strong>内容主体区域</strong></span><span style="color: #0000ff;"><strong>&lt;/</strong></span><span style="color: #800000;"><strong>div</strong></span><span style="color: #0000ff;"><strong>&gt;</strong></span><span style="color: #000000;"><strong><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</strong></span><span style="color: #008000;"><strong>&lt;!--</strong></span><span style="color: #008000;"><strong>第三行&#8212;底部*/</strong></span><span style="color: #008000;"><strong>--&gt;</strong></span><span style="color: #000000;"><strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;</strong></span><span style="color: #0000ff;"><strong>&lt;</strong></span><span style="color: #800000;"><strong>div&nbsp;</strong></span><span style="color: #ff0000;"><strong>class</strong></span><span style="color: #0000ff;"><strong>="b_m"</strong></span><span style="color: #0000ff;"><strong>&gt;&lt;</strong></span><span style="color: #800000;"><strong>span</strong></span><span style="color: #0000ff;"><strong>&gt;&lt;/</strong></span><span style="color: #800000;"><strong>span</strong></span><span style="color: #0000ff;"><strong>&gt;&lt;/</strong></span><span style="color: #800000;"><strong>div</strong></span><span style="color: #0000ff;"><strong>&gt;</strong></span><span style="color: #000000;"><strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;</strong></span><span style="color: #0000ff;"><strong>&lt;</strong></span><span style="color: #800000;"><strong>span&nbsp;</strong></span><span style="color: #ff0000;"><strong>class</strong></span><span style="color: #0000ff;"><strong>="b_l"</strong></span><span style="color: #0000ff;"><strong>&gt;&lt;/</strong></span><span style="color: #800000;"><strong>span</strong></span><span style="color: #0000ff;"><strong>&gt;</strong></span><span style="color: #000000;"><strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;</strong></span><span style="color: #0000ff;"><strong>&lt;</strong></span><span style="color: #800000;"><strong>span&nbsp;</strong></span><span style="color: #ff0000;"><strong>class</strong></span><span style="color: #0000ff;"><strong>="b_r"</strong></span><span style="color: #0000ff;"><strong>&gt;&lt;/</strong></span><span style="color: #800000;"><strong>span</strong></span><span style="color: #0000ff;"><strong>&gt;</strong></span><span style="color: #000000;"><strong><br />
</strong></span><span style="color: #0000ff;"><strong>&lt;/</strong></span><span style="color: #800000;"><strong>div</strong></span><span style="color: #0000ff;"><strong>&gt;</strong></span></div>
<strong>&nbsp;&nbsp;&nbsp; <strong><span style="font-family: 宋体;">【样式层】</span></strong>
</strong>
<p><span style="font-family: 宋体;"><strong>&nbsp;&nbsp;&nbsp;&nbsp; 下面是主要的样式设置：</strong></span><span><strong>&nbsp; <br />
</strong></span></p>
<div class="cnblogs_code"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #800000;"><strong>&nbsp;&nbsp;&nbsp;</strong></span><span style="color: #008000;"><strong>/*</strong></span><span style="color: #008000;"><strong>总容器</strong></span><span style="color: #008000;"><strong>*/</strong></span><span style="color: #800000;"><strong><br />
<br />
&nbsp;&nbsp;&nbsp;.box</strong></span><span style="color: #000000;"><strong>{</strong></span><span style="color: #ff0000;"><strong>overflow</strong></span><span style="color: #000000;"><strong>:</strong></span><span style="color: #0000ff;"><strong>hidden</strong></span><span style="color: #000000;"><strong>;</strong></span><span style="color: #ff0000;"><strong>width</strong></span><span style="color: #000000;"><strong>:</strong></span><span style="color: #0000ff;"><strong>50%</strong></span><span style="color: #000000;"><strong>;</strong></span><span style="color: #ff0000;"><strong>margin</strong></span><span style="color: #000000;"><strong>:</strong></span><span style="color: #0000ff;"><strong>50px&nbsp;auto&nbsp;0</strong></span><span style="color: #000000;"><strong>;</strong></span><span style="color: #ff0000;"><strong>background</strong></span><span style="color: #000000;"><strong>:</strong></span><span style="color: #0000ff;"><strong>#fff</strong></span><span style="color: #000000;"><strong>;</strong></span><span style="color: #000000;"><strong>}</strong></span><span style="color: #800000;"><strong><br />
&nbsp;&nbsp;&nbsp;.box&nbsp;span</strong></span><span style="color: #000000;"><strong>{</strong></span><span style="color: #ff0000;"><strong>display</strong></span><span style="color: #000000;"><strong>:</strong></span><span style="color: #0000ff;"><strong>block</strong></span><span style="color: #000000;"><strong>;</strong></span><span style="color: #000000;"><strong>}</strong></span><span style="color: #800000;"><strong>&nbsp;&nbsp;<br />
<br />
&nbsp;&nbsp;&nbsp;</strong></span><span style="color: #008000;"><strong>/*</strong></span><span style="color: #008000;"><strong>顶部样式</strong></span><span style="color: #008000;"><strong>*/</strong></span><span style="color: #800000;"><strong><br />
&nbsp;&nbsp;&nbsp;.top</strong></span><span style="color: #000000;"><strong>{</strong></span><span style="color: #ff0000;"><strong>height</strong></span><span style="color: #000000;"><strong>:</strong></span><span style="color: #0000ff;"><strong>10px</strong></span><span style="color: #000000;"><strong>;</strong></span><span style="color: #ff0000;"><strong>padding</strong></span><span style="color: #000000;"><strong>:</strong></span><span style="color: #0000ff;"><strong>0&nbsp;10px</strong></span><span style="color: #000000;"><strong>;</strong></span><span style="color: #000000;"><strong>}</strong></span><span style="color: #800000;"><strong><br />
&nbsp;&nbsp;&nbsp;.t_l,.t_r</strong></span><span style="color: #000000;"><strong>{</strong></span><span style="color: #ff0000;"><strong>width</strong></span><span style="color: #000000;"><strong>:</strong></span><span style="color: #0000ff;"><strong>10px</strong></span><span style="color: #000000;"><strong>;</strong></span><span style="color: #ff0000;"><strong>height</strong></span><span style="color: #000000;"><strong>:</strong></span><span style="color: #0000ff;"><strong>10px</strong></span><span style="color: #000000;"><strong>;</strong></span><span style="color: #ff0000;"><strong>font-size</strong></span><span style="color: #000000;"><strong>:</strong></span><span style="color: #0000ff;"><strong>0%</strong></span><span style="color: #000000;"><strong>;</strong></span><span style="color: #ff0000;"><strong>margin-top</strong></span><span style="color: #000000;"><strong>:</strong></span><span style="color: #0000ff;"><strong>-10px</strong></span><span style="color: #000000;"><strong>;</strong></span><span style="color: #000000;"><strong>}</strong></span><span style="color: #800000;"><strong><br />
&nbsp;&nbsp;&nbsp;.t_l</strong></span><span style="color: #000000;"><strong>{</strong></span><span style="color: #ff0000;"><strong>float</strong></span><span style="color: #000000;"><strong>:</strong></span><span style="color: #0000ff;"><strong>left</strong></span><span style="color: #000000;"><strong>;</strong></span><span style="color: #ff0000;"><strong>background</strong></span><span style="color: #000000;"><strong>:</strong></span><span style="color: #0000ff;"><strong>#ff0000</strong></span><span style="color: #000000;"><strong>;</strong></span><span style="color: #000000;"><strong>}</strong></span><span style="color: #008000;"><strong>/*</strong></span><span style="color: #008000;"><strong>左上角</strong></span><span style="color: #008000;"><strong>*/</strong></span><span style="color: #800000;"><strong><br />
&nbsp;&nbsp;&nbsp;.t_r</strong></span><span style="color: #000000;"><strong>{</strong></span><span style="color: #ff0000;"><strong>float</strong></span><span style="color: #000000;"><strong>:</strong></span><span style="color: #0000ff;"><strong>right</strong></span><span style="color: #000000;"><strong>;</strong></span><span style="color: #ff0000;"><strong>background</strong></span><span style="color: #000000;"><strong>:</strong></span><span style="color: #0000ff;"><strong>#ff0000</strong></span><span style="color: #000000;"><strong>;</strong></span><span style="color: #000000;"><strong>}</strong></span><span style="color: #008000;"><strong>/*</strong></span><span style="color: #008000;"><strong>右上角</strong></span><span style="color: #008000;"><strong>*/</strong></span><span style="color: #800000;"><strong><br />
&nbsp;&nbsp;&nbsp;.t_m</strong></span><span style="color: #000000;"><strong>{</strong></span><span style="color: #ff0000;"><strong>height</strong></span><span style="color: #000000;"><strong>:</strong></span><span style="color: #0000ff;"><strong>10px</strong></span><span style="color: #000000;"><strong>;</strong></span><span style="color: #ff0000;"><strong>font-size</strong></span><span style="color: #000000;"><strong>:</strong></span><span style="color: #0000ff;"><strong>0%</strong></span><span style="color: #000000;"><strong>;</strong></span><span style="color: #ff0000;"><strong>width</strong></span><span style="color: #000000;"><strong>:</strong></span><span style="color: #0000ff;"><strong>100%</strong></span><span style="color: #000000;"><strong>;</strong></span><span style="color: #ff0000;"><strong>background</strong></span><span style="color: #000000;"><strong>:</strong></span><span style="color: #0000ff;"><strong>#7F0000</strong></span><span style="color: #000000;"><strong>;</strong></span><span style="color: #000000;"><strong>}</strong></span><span style="color: #008000;"><strong>/*</strong></span><span style="color: #008000;"><strong>这是可左右伸展的区域，两例留出空白便于放置左右角容器</strong></span><span style="color: #008000;"><strong>*/</strong></span><span style="color: #800000;"><strong>&nbsp;&nbsp;<br />
<br />
&nbsp;&nbsp;&nbsp;</strong></span><span style="color: #008000;"><strong>/*</strong></span><span style="color: #008000;"><strong>中间样式</strong></span><span style="color: #008000;"><strong>*/</strong></span><span style="color: #800000;"><strong><br />
&nbsp;&nbsp;&nbsp;.m_l,.m_r</strong></span><span style="color: #000000;"><strong>{</strong></span><span style="color: #ff0000;"><strong>width</strong></span><span style="color: #000000;"><strong>:</strong></span><span style="color: #0000ff;"><strong>10px</strong></span><span style="color: #000000;"><strong>;</strong></span><span style="color: #ff0000;"><strong>padding-bottom</strong></span><span style="color: #000000;"><strong>:</strong></span><span style="color: #0000ff;"><strong>30000px</strong></span><span style="color: #000000;"><strong>;</strong></span><span style="color: #ff0000;"><strong>margin-bottom</strong></span><span style="color: #000000;"><strong>:</strong></span><span style="color: #0000ff;"><strong>-30000px</strong></span><span style="color: #000000;"><strong>;</strong></span><span style="color: #000000;"><strong>}</strong></span><span style="color: #008000;"><strong>/*</strong></span><span style="color: #008000;"><strong>两列等高</strong></span><span style="color: #008000;"><strong>*/</strong></span><span style="color: #800000;"><strong><br />
&nbsp;&nbsp;&nbsp;.m_l</strong></span><span style="color: #000000;"><strong>{</strong></span><span style="color: #ff0000;"><strong>float</strong></span><span style="color: #000000;"><strong>:</strong></span><span style="color: #0000ff;"><strong>left</strong></span><span style="color: #000000;"><strong>;</strong></span><span style="color: #ff0000;"><strong>margin-left</strong></span><span style="color: #000000;"><strong>:</strong></span><span style="color: #0000ff;"><strong>0px</strong></span><span style="color: #000000;"><strong>;</strong></span><span style="color: #ff0000;"><strong>+margin-left</strong></span><span style="color: #000000;"><strong>:</strong></span><span style="color: #0000ff;"><strong>-10px</strong></span><span style="color: #000000;"><strong>;</strong></span><span style="color: #ff0000;"><strong>_margin-left</strong></span><span style="color: #000000;"><strong>:</strong></span><span style="color: #0000ff;"><strong>-10px</strong></span><span style="color: #000000;"><strong>;</strong></span><span style="color: #ff0000;"><strong>background</strong></span><span style="color: #000000;"><strong>:</strong></span><span style="color: #0000ff;"><strong>#7F0000</strong></span><span style="color: #000000;"><strong>;</strong></span><span style="color: #000000;"><strong>}</strong></span><span style="color: #800000;"><strong>&nbsp;</strong></span><span style="color: #008000;"><strong>/*</strong></span><span style="color: #008000;"><strong>左边框</strong></span><span style="color: #008000;"><strong>*/</strong></span><span style="color: #800000;"><strong>&nbsp;<br />
&nbsp;&nbsp;&nbsp;.m_r</strong></span><span style="color: #000000;"><strong>{</strong></span><span style="color: #ff0000;"><strong>float</strong></span><span style="color: #000000;"><strong>:</strong></span><span style="color: #0000ff;"><strong>right</strong></span><span style="color: #000000;"><strong>;</strong></span><span style="color: #ff0000;"><strong>margin-right</strong></span><span style="color: #000000;"><strong>:</strong></span><span style="color: #0000ff;"><strong>0px</strong></span><span style="color: #000000;"><strong>;</strong></span><span style="color: #ff0000;"><strong>+margin-right</strong></span><span style="color: #000000;"><strong>:</strong></span><span style="color: #0000ff;"><strong>-10px</strong></span><span style="color: #000000;"><strong>;</strong></span><span style="color: #ff0000;"><strong>_margin-right</strong></span><span style="color: #000000;"><strong>:</strong></span><span style="color: #0000ff;"><strong>-10px</strong></span><span style="color: #000000;"><strong>;</strong></span><span style="color: #ff0000;"><strong>background</strong></span><span style="color: #000000;"><strong>:</strong></span><span style="color: #0000ff;"><strong>#7F0000</strong></span><span style="color: #000000;"><strong>;</strong></span><span style="color: #000000;"><strong>}</strong></span><span style="color: #800000;"><strong>&nbsp;</strong></span><span style="color: #008000;"><strong>/*</strong></span><span style="color: #008000;"><strong>右边框</strong></span><span style="color: #008000;"><strong>*/</strong></span><span style="color: #800000;"><strong>&nbsp;<br />
<br />
&nbsp;&nbsp;&nbsp;</strong></span><span style="color: #008000;"><strong>/*</strong></span><span style="color: #008000;"><strong>底部样式</strong></span><span style="color: #008000;"><strong>*/</strong></span><span style="color: #800000;"><strong><br />
&nbsp;&nbsp;&nbsp;.b_m</strong></span><span style="color: #000000;"><strong>{</strong></span><span style="color: #ff0000;"><strong>padding</strong></span><span style="color: #000000;"><strong>:</strong></span><span style="color: #0000ff;"><strong>0&nbsp;10px</strong></span><span style="color: #000000;"><strong>;</strong></span><span style="color: #ff0000;"><strong>height</strong></span><span style="color: #000000;"><strong>:</strong></span><span style="color: #0000ff;"><strong>10px</strong></span><span style="color: #000000;"><strong>;</strong></span><span style="color: #000000;"><strong>}</strong></span><span style="color: #008000;"><strong>/*</strong></span><span style="color: #008000;"><strong>这是可左右伸展的区域，两例留出空白便于放置左右列同高容器</strong></span><span style="color: #008000;"><strong>*/</strong></span><span style="color: #800000;"><strong><br />
&nbsp;&nbsp;&nbsp;.b_m&nbsp;span</strong></span><span style="color: #000000;"><strong>{</strong></span><span style="color: #ff0000;"><strong>width</strong></span><span style="color: #000000;"><strong>:</strong></span><span style="color: #0000ff;"><strong>100%</strong></span><span style="color: #000000;"><strong>;</strong></span><span style="color: #ff0000;"><strong>height</strong></span><span style="color: #000000;"><strong>:</strong></span><span style="color: #0000ff;"><strong>10px</strong></span><span style="color: #000000;"><strong>;</strong></span><span style="color: #ff0000;"><strong>font-size</strong></span><span style="color: #000000;"><strong>:</strong></span><span style="color: #0000ff;"><strong>0%</strong></span><span style="color: #000000;"><strong>;</strong></span><span style="color: #ff0000;"><strong>background</strong></span><span style="color: #000000;"><strong>:</strong></span><span style="color: #0000ff;"><strong>#7F0000</strong></span><span style="color: #000000;"><strong>;</strong></span><span style="color: #000000;"><strong>}</strong></span><span style="color: #800000;"><strong><br />
&nbsp;&nbsp;&nbsp;.b_l,.b_r</strong></span><span style="color: #000000;"><strong>{</strong></span><span style="color: #ff0000;"><strong>height</strong></span><span style="color: #000000;"><strong>:</strong></span><span style="color: #0000ff;"><strong>10px</strong></span><span style="color: #000000;"><strong>;</strong></span><span style="color: #ff0000;"><strong>font-size</strong></span><span style="color: #000000;"><strong>:</strong></span><span style="color: #0000ff;"><strong>0%</strong></span><span style="color: #000000;"><strong>;</strong></span><span style="color: #ff0000;"><strong>width</strong></span><span style="color: #000000;"><strong>:</strong></span><span style="color: #0000ff;"><strong>10px</strong></span><span style="color: #000000;"><strong>;</strong></span><span style="color: #ff0000;"><strong>margin-top</strong></span><span style="color: #000000;"><strong>:</strong></span><span style="color: #0000ff;"><strong>-10px</strong></span><span style="color: #000000;"><strong>;</strong></span><span style="color: #000000;"><strong>}</strong></span><span style="color: #800000;"><strong><br />
&nbsp;&nbsp;&nbsp;.b_l</strong></span><span style="color: #000000;"><strong>{</strong></span><span style="color: #ff0000;"><strong>float</strong></span><span style="color: #000000;"><strong>:</strong></span><span style="color: #0000ff;"><strong>left</strong></span><span style="color: #000000;"><strong>;</strong></span><span style="color: #ff0000;"><strong>background</strong></span><span style="color: #000000;"><strong>:</strong></span><span style="color: #0000ff;"><strong>#ff0000</strong></span><span style="color: #000000;"><strong>;</strong></span><span style="color: #000000;"><strong>}</strong></span><span style="color: #008000;"><strong>/*</strong></span><span style="color: #008000;"><strong>左下角</strong></span><span style="color: #008000;"><strong>*/</strong></span><span style="color: #800000;"><strong><br />
&nbsp;&nbsp;&nbsp;.b_r</strong></span><span style="color: #000000;"><strong>{</strong></span><span style="color: #ff0000;"><strong>float</strong></span><span style="color: #000000;"><strong>:</strong></span><span style="color: #0000ff;"><strong>right</strong></span><span style="color: #000000;"><strong>;</strong></span><span style="color: #ff0000;"><strong>background</strong></span><span style="color: #000000;"><strong>:</strong></span><span style="color: #0000ff;"><strong>#ff0000</strong></span><span style="color: #000000;"><strong>;</strong></span><span style="color: #000000;"><strong>}</strong></span><span style="color: #008000;"><strong>/*</strong></span><span style="color: #008000;"><strong>右下角</strong></span><span style="color: #008000;"><strong>*/</strong></span><span style="color: #800000;"><strong> <br />
</strong></span></div>
<p style="text-indent: 17.95pt;"><span style="font-family: 宋体;"><strong>经过上述设置后，我们的九宫格就算完成了，它是&#8220;<strong>牢不可破</strong>&#8221;的，会随着内容主体的宽高动态地向各个方向自由伸展。在此模型中，为了演示的效果，我将总容器的宽度设置了一个百分比</strong></span><strong>50%<span style="font-family: 宋体;">，你可以根据你的实际需要调整它的大小，其内部会随着它的宽度值自动填充整个区域，不会撑破父容器。如下图所示：</span></strong></p>
<p style="text-indent: 17.95pt; text-align: center;" align="center"><strong><img alt="" src="http://images.cnblogs.com/cnblogs_com/binyong/jiou/jiougongge1.gif" /> </strong></p>
<p style="text-indent: 17.95pt;"><span style="font-family: 宋体;"><strong>你可以用八张图片来制作一个漂亮的九宫格盒子。看看它的完美表现。</strong></span><strong> <br />
</strong></p>
<p style="text-indent: 15.8pt;"><strong><strong><span style="font-family: 宋体;">本模型在以下浏览器中测试通过：</span></strong></strong></p>
<p style="text-indent: 15.8pt;"><strong><strong><span style="color: red;">IE5.5</span></strong><strong><span style="color: red; font-family: 宋体;">、</span><span style="color: red;">IE6</span></strong><strong><span style="color: red; font-family: 宋体;">、</span><span style="color: red;">IE7</span></strong><strong><span style="color: red; font-family: 宋体;">、</span><span style="color: red;">IE8</span></strong><strong><span style="color: red; font-family: 宋体;">、</span><span style="color: red;">FF3</span></strong><strong><span style="color: red; font-family: 宋体;">、</span><span style="color: red;">TT</span></strong><strong><span style="color: red; font-family: 宋体;">、</span><span style="color: red;">Maxthon2.1.5</span></strong><strong><span style="color: red; font-family: 宋体;">、</span><span style="color: red;">Opera9.6</span></strong><strong><span style="color: red; font-family: 宋体;">、</span><span style="color: red;">Safari4.0</span></strong><strong><span style="color: red; font-family: 宋体;">、</span><span style="color: red;">Chrome2.0</span></strong><strong><span style="color: red; font-family: 宋体;">。</span></strong></strong></p>
<textarea class="codetext" rows="12">&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&gt;
&lt;title&gt;牢不可破的九宫格布局（http://www.cnblogs.com/binyong）&lt;/title&gt;
&lt;style type="text/css"&gt;
/*
布局名称：牢不可破的九宫格
作者：冰极峰
博客地址：http://www.cnblogs.com/binyong
*/
*{margin:0;padding:0;font-size:12px;}
body{text-align:center;color:#fff;}/*ie5.5不支持margin的居中对齐*/
/*总容器*/
.box{overflow:hidden;width:50%;margin:50px auto 0;background:#fff;}
.box span{display:block;}
/*顶部样式*/
.top{height:10px;padding:0 10px;}
.t_l,.t_r{width:10px;height:10px;font-size:0%;margin-top:-10px;}
.t_l{float:left;background:#ff0000;}/*左上角*/
.t_r{float:right;background:#ff0000;}/*右上角*/
.t_m{height:10px;font-size:0%;width:100%;background:#7F0000;}/*这是可左右伸展的区域，两例留出空白便于放置左右角容器*/
/*中间样式*/
.m_l,.m_r{width:10px;padding-bottom:30000px;margin-bottom:-30000px;}/*两列等高*/
.m_l{float:left;margin-left:0px;+margin-left:-10px;_margin-left:-10px;background:#7F0000;} /*左边框*/
.m_r{float:right;margin-right:0px;+margin-right:-10px;_margin-right:-10px;background:#7F0000;} /*右边框*/
/*底部样式*/
.b_m{padding:0 10px;height:10px;}/*这是可左右伸展的区域，两例留出空白便于放置左右列同高容器*/
.b_m span{width:100%;height:10px;font-size:0%;background:#7F0000;}
.b_l,.b_r{height:10px;font-size:0%;width:10px;margin-top:-10px;}
.b_l{float:left;background:#ff0000;}/*左下角*/
.b_r{float:right;background:#ff0000;}/*右下角*/
/*内容区*/
.context{background:#D45F00;}
h3{text-align:center;font-size:14px;width:80%;margin:0 auto;line-height:26px;}
p{line-height:22px;padding:0 20px;text-align:left;}
a:link,a:visited{color:#fff;font-weight:bold;}
a:hover{color:green;}
&lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;div class="box"&gt;
&lt;BGSOUND CEP="5" /&gt;
&lt;div class="top"&gt;&lt;span class="t_m"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span class="t_l"&gt;&lt;/span&gt;
&lt;span class="t_r"&gt;&lt;/span&gt;
&lt;BGSOUND CEP="6" /&gt;
&lt;span class="m_l"&gt;&lt;/span&gt;
&lt;span class="m_r"&gt;&lt;/span&gt;
&lt;div class="context"&gt;
&lt;h3&gt;牢不可破的九宫格布局&lt;/h3&gt;
&lt;p&gt;这是一个九宫格布局模型，未加载任何图片，请随意拉伸缩放窗体大小，会看到九宫格向各个方向自由弹性伸展。&lt;/p&gt;
&lt;p&gt;本模型修改了上一个版本的不足，用浮动的方法避开了ie6的宽高值奇数1px Bug问题，完美地实现所有主流浏览器全部兼容通过。&lt;/p&gt;
&lt;p&gt;本模型测试在以下几个浏览器中完全通过：&lt;/p&gt;
&lt;p&gt;IE5.5、 IE6、 IE7、 IE8、 FF3、 TT、 Maxthon2.1.5、 Opera9.6、 Safari4.0、 Chrome2.0。&lt;/p&gt;
&lt;p style="text-align:right"&gt;更多原创请访问：&lt;a href="http://www.cnblogs.com/binyong" title="去网站看看"&gt;冰极峰博客&lt;/a&gt;&lt;/p&gt;
&lt;p style="text-align:right"&gt;博客地址：http://www.cnblogs.com/binyong&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;BGSOUND CEP="7" /&gt;
&lt;div class="b_m"&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span class="b_l"&gt;&lt;/span&gt;
&lt;span class="b_r"&gt;&lt;/span&gt;
&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
</textarea>
<div style="clear: both;"><strong><input class="button" value="运行代码" type="button" /> <input class="button" value="复制代码" type="button" /> <input class="button" value="另存代码" type="button" /> </strong></div>
<strong> </strong>  <img src="http://www.cnblogs.com/binyong/aggbug/1507997.html?type=1" width="1" height="1" alt=""/><p>评论: 18　<a href="http://www.cnblogs.com/binyong/archive/2009/06/22/1507997.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/binyong/archive/2009/06/22/1507997.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56859/" target="_blank">美调查公司称苹果iPad配件成本最低219美元</a><span style="color:gray">(2010-02-10 17:20)</span><br/>· <a href="http://news.cnblogs.com/n/56858/" target="_blank">摩尔庄园：儿童生意密码</a><span style="color:gray">(2010-02-10 17:15)</span><br/>· <a href="http://news.cnblogs.com/n/56857/" target="_blank">Facebook与美国在线合作 整合AIM动态功能</a><span style="color:gray">(2010-02-10 16:41)</span><br/>· <a href="http://news.cnblogs.com/n/56855/" target="_blank">NDepend 3.0已与Visual Studio集成</a><span style="color:gray">(2010-02-10 16:17)</span><br/>· <a href="http://news.cnblogs.com/n/56854/" target="_blank">Ruby in Steel 1.5发布，去除IronRuby支持</a><span style="color:gray">(2010-02-10 16:14)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/news/tag/Buzz/" target="_blank">Google Buzz相关新闻</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>［冰极峰教程系列之一］：九宫格基本布局</title><link>http://www.cnblogs.com/binyong/archive/2009/06/18/1505608.html</link><dc:creator>Biny</dc:creator><author>Biny</author><pubDate>Thu, 18 Jun 2009 04:07:00 GMT</pubDate><guid>http://www.cnblogs.com/binyong/archive/2009/06/18/1505608.html</guid><description><![CDATA[<p>阅读: 3584 评论: 16 作者: <a href="http://www.cnblogs.com/binyong/" target="_blank">Biny</a> 发表于 2009-06-18 12:07 <a href="http://www.cnblogs.com/binyong/archive/2009/06/18/1505608.html" target="_blank">原文链接</a></p><hr />
<p align="center"><strong>原创：冰极峰 转载请注明出处 时间：2009年6月18日 12:05:34</strong></p>
<hr />
<p><strong><a href="http://www.cnblogs.com/binyong/archive/2009/06/18/1505608.html" target="_blank">冰极峰教程系列之一：九宫格基本布局</a></strong></p>
<p><strong><a href="http://www.cnblogs.com/binyong/archive/2009/06/22/1507997.html" target="_blank">冰极峰教程系列之二：牢不可破的九宫格布局</a></strong></p>
<p><strong><a href="http://www.cnblogs.com/binyong/archive/2009/06/24/1508289.html" target="_blank">冰极峰教程系列之三：三层分离的完美九宫格</a></strong></p>
<p><strong><a href="http://www.cnblogs.com/binyong/archive/2009/06/29/1512909.html" target="_blank">冰极峰教程系列之四：九宫格应用案例--极酷网页播放器设计</a></strong></p>
<p><a href="http://www.cnblogs.com/binyong/archive/2009/07/19/1526748.html" target="_blank"><strong>冰极峰教程系列之五：无hack并支持透明圆角框的全兼容九宫格布局</strong></a></p>
<hr />
<p>&nbsp;</p>
<p><span style="font-family: 宋体;"><strong>九宫格是一种比较古老的设计，它最基本的表现其实就像是一个三行三列的表格。其实它最初是在</strong></span><strong>window<span style="font-family: 宋体;">的</span>c/s<span style="font-family: 宋体;">结构中用得比较多，比如我们经常看到软件中的一个窗体，其实就是一个九宫格的典型应用，因为窗体需要在八个方向拉伸，所以在</span>C/S<span style="font-family: 宋体;">软件中大量采用这种技术来布局设计。在</span>B/S<span style="font-family: 宋体;">系统大行其道的当今社会，这种布局逐渐被一些网页设计师运用在网页中去，用得最多的就是在圆角框布局中应用。</span></strong></p>
<p><span style="font-family: 宋体;"><strong>下图演示了九宫格的基本布局：</strong></span></p>
<div align="center"><strong><img alt="" src="http://images.cnblogs.com/cnblogs_com/binyong/jiou/jiougongge.gif" border="0" width="383" height="337" /></strong></div>
<p><strong>&nbsp;</strong></p>
<p><span style="font-family: 宋体;"><strong>从上图可以看出，每一行包括三列，其中蓝色方块是顶角，这四个块是宽高固定的区域，而黄色的四个区域分别是四条边，这些都是要水平或垂直平铺的，而中间的橙色区域是装载内容的主要区域。</strong></span></p>
<p><span style="font-family: 宋体;"><strong>这样的结构是最有利于内容区域随屏幕分辩率不同而自动伸展宽高，这种结构也是网页设计师是最想要的一种布局结构，它灵动而从容。</strong></span></p>
<p><span style="font-family: 宋体;"><strong>下面我们就来实现它：</strong></span></p>
<p><span style="font-family: 宋体;"><strong>【<strong>结构层</strong>】：</strong></span></p>
<p><span style="font-family: 宋体;"><strong>因为它要适应八个方向的伸展，所以每个方向都用一个</strong></span><strong>div<span style="font-family: 宋体;">来实现，少一个则灵活性就不足。那么根据这个原理，我们可以得到如下的结构：</span></strong></p>
<div class="cnblogs_code"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;"><strong>&lt;</strong></span><span style="color: #800000;"><strong>div&nbsp;</strong></span><span style="color: #ff0000;"><strong>class</strong></span><span style="color: #0000ff;"><strong>="box"</strong></span><span style="color: #0000ff;"><strong>&gt;</strong></span><span style="color: #000000;"><strong>&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</strong></span><span style="color: #0000ff;"><strong>&lt;</strong></span><span style="color: #800000;"><strong>div&nbsp;</strong></span><span style="color: #ff0000;"><strong>class</strong></span><span style="color: #0000ff;"><strong>="t_l"</strong></span><span style="color: #0000ff;"><strong>&gt;&lt;/</strong></span><span style="color: #800000;"><strong>div</strong></span><span style="color: #0000ff;"><strong>&gt;</strong></span><span style="color: #000000;"><strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;</strong></span><span style="color: #0000ff;"><strong>&lt;</strong></span><span style="color: #800000;"><strong>div&nbsp;</strong></span><span style="color: #ff0000;"><strong>class</strong></span><span style="color: #0000ff;"><strong>="t_m"</strong></span><span style="color: #0000ff;"><strong>&gt;&lt;/</strong></span><span style="color: #800000;"><strong>div</strong></span><span style="color: #0000ff;"><strong>&gt;</strong></span><span style="color: #000000;"><strong>&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</strong></span><span style="color: #0000ff;"><strong>&lt;</strong></span><span style="color: #800000;"><strong>div&nbsp;</strong></span><span style="color: #ff0000;"><strong>class</strong></span><span style="color: #0000ff;"><strong>="t_r"</strong></span><span style="color: #0000ff;"><strong>&gt;&lt;/</strong></span><span style="color: #800000;"><strong>div</strong></span><span style="color: #0000ff;"><strong>&gt;</strong></span><span style="color: #000000;"><strong><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</strong></span><span style="color: #0000ff;"><strong>&lt;</strong></span><span style="color: #800000;"><strong>div&nbsp;</strong></span><span style="color: #ff0000;"><strong>class</strong></span><span style="color: #0000ff;"><strong>="m_l"</strong></span><span style="color: #0000ff;"><strong>&gt;&lt;/</strong></span><span style="color: #800000;"><strong>div</strong></span><span style="color: #0000ff;"><strong>&gt;</strong></span><span style="color: #000000;"><strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;</strong></span><span style="color: #0000ff;"><strong>&lt;</strong></span><span style="color: #800000;"><strong>div&nbsp;</strong></span><span style="color: #ff0000;"><strong>class</strong></span><span style="color: #0000ff;"><strong>="m_m"</strong></span><span style="color: #0000ff;"><strong>&gt;</strong></span><span style="color: #000000;"><strong>内容区</strong></span><span style="color: #0000ff;"><strong>&lt;/</strong></span><span style="color: #800000;"><strong>div</strong></span><span style="color: #0000ff;"><strong>&gt;</strong></span><span style="color: #000000;"><strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;</strong></span><span style="color: #0000ff;"><strong>&lt;</strong></span><span style="color: #800000;"><strong>div&nbsp;</strong></span><span style="color: #ff0000;"><strong>class</strong></span><span style="color: #0000ff;"><strong>="m_r"</strong></span><span style="color: #0000ff;"><strong>&gt;&lt;/</strong></span><span style="color: #800000;"><strong>div</strong></span><span style="color: #0000ff;"><strong>&gt;</strong></span><span style="color: #000000;"><strong><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</strong></span><span style="color: #0000ff;"><strong>&lt;</strong></span><span style="color: #800000;"><strong>div&nbsp;</strong></span><span style="color: #ff0000;"><strong>class</strong></span><span style="color: #0000ff;"><strong>="b_l"</strong></span><span style="color: #0000ff;"><strong>&gt;&lt;/</strong></span><span style="color: #800000;"><strong>div</strong></span><span style="color: #0000ff;"><strong>&gt;</strong></span><span style="color: #000000;"><strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;</strong></span><span style="color: #0000ff;"><strong>&lt;</strong></span><span style="color: #800000;"><strong>div&nbsp;</strong></span><span style="color: #ff0000;"><strong>class</strong></span><span style="color: #0000ff;"><strong>="b_m"</strong></span><span style="color: #0000ff;"><strong>&gt;&lt;/</strong></span><span style="color: #800000;"><strong>div</strong></span><span style="color: #0000ff;"><strong>&gt;</strong></span><span style="color: #000000;"><strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;</strong></span><span style="color: #0000ff;"><strong>&lt;</strong></span><span style="color: #800000;"><strong>div&nbsp;</strong></span><span style="color: #ff0000;"><strong>class</strong></span><span style="color: #0000ff;"><strong>="b_r"</strong></span><span style="color: #0000ff;"><strong>&gt;&lt;/</strong></span><span style="color: #800000;"><strong>div</strong></span><span style="color: #0000ff;"><strong>&gt;</strong></span><span style="color: #000000;"><strong><br />
</strong></span><span style="color: #0000ff;"><strong>&lt;/</strong></span><span style="color: #800000;"><strong>div</strong></span><span style="color: #0000ff;"><strong>&gt;</strong></span></div>
<p><strong>【<strong>样式层</strong>】：</strong></p>
<p><strong>根据结构，我们可以写出基本的样式。基本实现原理，是利用将总容器.box设置为相对定位并设置overflow:hidden;让超出它的地方全部被切除，并将其里面的八个方向的div<span style="font-family: 宋体;">设为绝对定位，并将它们的</span>z-index<span style="font-family: 宋体;">设置为</span>2<span style="font-family: 宋体;">，然后将四个角容器分别设置到四个角落上。</span><span style="font-family: 宋体;"></span></strong></p>
<div class="cnblogs_code"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #800000;"><strong>.box</strong></span><span style="color: #000000;"><strong>{</strong></span><span style="color: #ff0000;"><strong>overflow</strong></span><span style="color: #000000;"><strong>:</strong></span><span style="color: #0000ff;"><strong>hidden</strong></span><span style="color: #000000;"><strong>;</strong></span><span style="color: #ff0000;"><strong>position</strong></span><span style="color: #000000;"><strong>:</strong></span><span style="color: #0000ff;"><strong>relative</strong></span><span style="color: #000000;"><strong>;</strong></span><span style="color: #000000;"><strong>}</strong></span><span style="color: #800000;"><strong><br />
.t_l,.t_m,.t_r,.b_l,.b_m,.b_r,.m_l,.m_r&nbsp;</strong></span><span style="color: #000000;"><strong>{</strong></span><span style="color: #ff0000;"><strong>position</strong></span><span style="color: #000000;"><strong>:</strong></span><span style="color: #0000ff;"><strong>absolute</strong></span><span style="color: #000000;"><strong>;</strong></span><span style="color: #ff0000;"><strong>z-index</strong></span><span style="color: #000000;"><strong>:</strong></span><span style="color: #0000ff;"><strong>2</strong></span><span style="color: #000000;"><strong>;</strong></span><span style="color: #000000;"><strong>}</strong></span><span style="color: #800000;"><strong><br />
</strong></span></div>
<p><strong><strong><span style="font-family: 宋体;">【</span>注意</strong>】：</strong></p>
<p><span style="font-family: 宋体;"><strong>这里有两个地方需要注意到：</strong></span></p>
<p style="text-indent: 15.75pt;"><strong>1<span style="font-family: 宋体;">、就是</span>t_m<span style="font-family: 宋体;">和</span>b_m<span style="font-family: 宋体;">这两个容器是需要水平平铺的，所以需要将它的</span>z-index<span style="font-family: 宋体;">设置为比左右两角的</span>div<span style="font-family: 宋体;">的</span>z-index<span style="font-family: 宋体;">的值低，我们将它设置为</span>z-index:1;<span style="font-family: 宋体;">这样它就置于</span>t_l<span style="font-family: 宋体;">和</span>t_r<span style="font-family: 宋体;">的下面了，然后，我们设置它的宽度为</span>100%<span style="font-family: 宋体;">，让它水平铺满整个第一行的宽度。</span><span style="font-family: 宋体;"></span></strong></p>
<div class="cnblogs_code"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #800000;"><strong>.t_m</strong></span><span style="color: #000000;"><strong>{</strong></span><span style="color: #ff0000;"><strong>&nbsp;z-index</strong></span><span style="color: #000000;"><strong>:</strong></span><span style="color: #0000ff;"><strong>1</strong></span><span style="color: #000000;"><strong>;</strong></span><span style="color: #ff0000;"><strong>width</strong></span><span style="color: #000000;"><strong>:</strong></span><span style="color: #0000ff;"><strong>100%</strong></span><span style="color: #000000;"><strong>;</strong></span><span style="color: #ff0000;"><strong>&nbsp;</strong></span><span style="color: #000000;"><strong>}</strong></span></div>
<p style="text-indent: 15.75pt;"><strong>2<span style="font-family: 宋体;">、对于</span>m_l<span style="font-family: 宋体;">，</span>m_r<span style="font-family: 宋体;">这两个</span>div<span style="font-family: 宋体;">容器，因为要让背景向下垂直平铺，所以我们将它们的高度值设为一个非常大的值，我们将它设置为</span>20000px<span style="font-family: 宋体;">，让它一直向下垂直平铺，然后因为总容器设置了</span>overflow:hidden<span style="font-family: 宋体;">，会将多余的部分切除。</span>&nbsp;</strong></p>
<p style="text-indent: 15.75pt;"><span style="font-family: 宋体;"><strong>这样一个基本的九宫格布局就形成，你可以查看下面的演示模型。</strong></span><span style="font-family: 宋体;"></span></p>
<p style="text-indent: 15.8pt;"><strong><strong><span style="font-family: 宋体;">本模型在以下浏览器中测试通过：</span></strong></strong></p>
<p style="text-indent: 15.8pt;"><strong><strong><span style="color: red;">IE6</span></strong><strong><span style="color: red; font-family: 宋体;">、</span><span style="color: red;">IE7</span></strong><strong><span style="color: red; font-family: 宋体;">、</span><span style="color: red;">IE8</span></strong><strong><span style="color: red; font-family: 宋体;">、</span><span style="color: red;">FF3</span></strong><strong><span style="color: red; font-family: 宋体;">、</span><span style="color: red;">TT</span></strong><strong><span style="color: red; font-family: 宋体;">、</span><span style="color: red;">Maxthon2.1.5</span></strong><strong><span style="color: red; font-family: 宋体;">、</span><span style="color: red;">Opera9.6</span></strong><strong><span style="color: red; font-family: 宋体;">、</span><span style="color: red;">Safari4.0</span></strong><strong><span style="color: red; font-family: 宋体;">、</span><span style="color: red;">Chrome2.0</span></strong><strong><span style="color: red; font-family: 宋体;">。</span></strong></strong></p>
<p style="text-indent: 15.8pt;"><strong><strong><span style="color: red; font-family: 宋体;"></span></strong><textarea class="codetext" rows="12">&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&gt;
&lt;title&gt;基本的九宫格(http://www.cnblogs.com/binyong)&lt;/title&gt;
&lt;style type="text/css"&gt;
*{margin:0;padding:0;}
.box{overflow:hidden;position:relative;width:50%;margin:50px auto;padding:10px;background:#F34703;}
.t_l,.t_m,.t_r{position:absolute;top:0;z-index:2;height:10px;font-size:0%;}
.t_l{left:0;width:10px;background:blue;}
.t_m{z-index:1;width:100%;background:orange;}
.t_r{right:0;width:10px;background:blue;}
.m_l,.m_r{position:absolute;z-index:2;width:10px;}
.m_l{top:0px;left:0;z-index:1;background:orange;height:2000px;}
.m_r{top:0px;right:0;z-index:1;background:orange;height:2000px;}
.b_l,.b_m,.b_r{position:absolute;bottom:0;z-index:2;height:10px;font-size:0%;}
.b_l{left:0;width:10px;background:blue;}
.b_m{z-index:1;width:100%;background:orange;}
.b_r{right:0;width:10px;background:blue;}
.m_m{width:100%;font-size:12px;color:#fff;}
h3{text-align:center;font-size:14px;line-height:26px;}
.m_m p{line-height:22px;padding:0 20px;}
&lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;div class="box"&gt;
&lt;div class="t_l"&gt;&lt;/div&gt;
&lt;div class="t_m"&gt;&lt;/div&gt;
&lt;div class="t_r"&gt;&lt;/div&gt;
&lt;div class="m_l"&gt;&lt;/div&gt;
&lt;div class="m_m"&gt;
&lt;h3&gt;九宫格--基本模型&lt;/h3&gt;
&lt;p&gt;这是一个九宫格基本布局模型，未加载任何图片，请随意拉伸缩放窗体大小，看看九宫格向各个方向自由伸展。&lt;/p&gt;
&lt;p&gt;本模型测试在以下几个浏览器中完全通过：&lt;/p&gt;
&lt;p&gt;IE6、IE7、IE8、FF3、TT、Maxthon2.1.5、Opera9.6、Safari4.0、Chrome2.0。&lt;/p&gt;
&lt;p style="text-align:right"&gt;更多原创请访问：&lt;a href="http://www.cnblogs.com/binyong" title="去网站看看"&gt;冰极峰&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class="m_r"&gt;&lt;/div&gt;
&lt;div class="b_l"&gt;&lt;/div&gt;
&lt;div class="b_m"&gt;&lt;/div&gt;
&lt;div class="b_r"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
</textarea> </strong></p>
<div style="clear: both;"><strong><input class="button" value="运行代码" type="button" /> <input class="button" value="复制代码" type="button" /> <input class="button" value="另存代码" type="button" /> </strong></div>
<p style="text-indent: 15.75pt;"><strong>&nbsp;</strong></p>
<p style="text-indent: 15.8pt;"><strong><strong>&nbsp;</strong></strong></p>
<p style="text-indent: 15.75pt;"><span style="font-family: 宋体;"><strong>似乎到这儿就该结束了，然而</strong></span><strong>&#8230;.</strong></p>
<p style="text-indent: 15.75pt;"><span style="font-family: 宋体;"><strong>要是细心的朋友在测试本模型时会发现，在</strong></span><strong>IE6<span style="font-family: 宋体;">浏览器中，会与一个</span>BUG<span style="font-family: 宋体;">不期而遇，那就是<strong><span style="color: red;">［</span></strong></span><strong><span style="color: red;">IE6</span></strong><strong><span style="color: red; font-family: 宋体;">宽高值奇数</span><span style="color: red;">1px BUG</span></strong><strong><span style="color: red; font-family: 宋体;">］</span></strong><span style="font-family: 宋体;">，估且这么称呼吧，因为对于这个</span>BUG<span style="font-family: 宋体;">，网络上并没有一个统一的称呼。</span></strong></p>
<p style="text-indent: 15.75pt;"><span style="font-family: 宋体;"><strong>这个</strong></span><strong>bug<span style="font-family: 宋体;">的激发条件是：</span></strong></p>
<p style="text-indent: 15.75pt;"><span style="font-family: 宋体;"><strong><strong>一个相对定位的父容器，其子容器采用绝对定位的方式向左或向右靠齐，当父容器的宽度值为奇数时，父容器与子容器之间会存在１</strong></strong></span><strong><strong>px</strong><strong><span style="font-family: 宋体;">的间隙，不能完全紧贴在一起。</span></strong></strong></p>
<p style="text-indent: 15.75pt;"><span style="font-family: 宋体;"><strong>而我这个演示模型刚好满足了条件</strong></span><strong>&#8230;</strong></p>
<p style="text-indent: 15.75pt;"><span style="font-family: 宋体;"><strong>所以当你在</strong></span><strong>IE6<span style="font-family: 宋体;">浏览器中缩小窗口，并进行拖拉缩放时，最右边和下面的两个小方块和父容器中会出现一个１</span>px<span style="font-family: 宋体;">的空距。</span></strong></p>
<p style="text-indent: 15.75pt;"><span style="font-family: 宋体;"><strong>如果你觉得不用考虑</strong></span><strong>IE6<span style="font-family: 宋体;">的话，那么这种布局就已经基本满足你的需要了。</span></strong></p>
<p style="text-indent: 15.75pt;"><span style="font-family: 宋体;"><strong>然而，对于一些比较追求完美的设计者来说，这是让人无法容忍的。</strong></span></p>
<p style="text-indent: 15.75pt;"><span style="font-family: 宋体;"><strong>&nbsp; </strong></span></p>
<p class="MsoNormal" style="margin-left: 315pt; text-indent: 21pt;"><span style="font-family: 宋体;"><strong>（后文待续...）</strong></span></p>
<p style="text-indent: 15.75pt;"><strong>&nbsp;</strong></p>
<p style="text-indent: 15.75pt;"><strong>&nbsp;</strong></p>
<strong> </strong> <img src="http://www.cnblogs.com/binyong/aggbug/1505608.html?type=1" width="1" height="1" alt=""/><p>评论: 16　<a href="http://www.cnblogs.com/binyong/archive/2009/06/18/1505608.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/binyong/archive/2009/06/18/1505608.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56859/" target="_blank">美调查公司称苹果iPad配件成本最低219美元</a><span style="color:gray">(2010-02-10 17:20)</span><br/>· <a href="http://news.cnblogs.com/n/56858/" target="_blank">摩尔庄园：儿童生意密码</a><span style="color:gray">(2010-02-10 17:15)</span><br/>· <a href="http://news.cnblogs.com/n/56857/" target="_blank">Facebook与美国在线合作 整合AIM动态功能</a><span style="color:gray">(2010-02-10 16:41)</span><br/>· <a href="http://news.cnblogs.com/n/56855/" target="_blank">NDepend 3.0已与Visual Studio集成</a><span style="color:gray">(2010-02-10 16:17)</span><br/>· <a href="http://news.cnblogs.com/n/56854/" target="_blank">Ruby in Steel 1.5发布，去除IronRuby支持</a><span style="color:gray">(2010-02-10 16:14)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/news/tag/Buzz/" target="_blank">Google Buzz相关新闻</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item></channel></rss>