<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<channel>
		<title></title>
		<link>http://www.liupeng.us/category//</link>
		<description>WEB开发中的可用性和用户体验</description>
		<copyright>Copyright (C) 2004 Security Angel Team [S4T] All Rights Reserved.</copyright>
		<generator>SaBlog-X Version Plus 2.0 Build 20081204</generator>
		<lastBuildDate>Thu, 09 Feb 2012 14:37:31 +0000</lastBuildDate>
		<ttl>30</ttl>
		<item>
			<guid>http://www.liupeng.us/jQuery-load-use-which-method/</guid>
			<title>jQuery的load函数</title>
			<author>Kevin</author>
			<description><![CDATA[时光博客 ( http://www.liupeng.us/ ) : <p>jQuery的load函数，有2种载入方式，一种是GET，一种是POST，下面我们看下手册中记载的说明。</p>
<p>在每一个匹配元素的load事件中绑定一个处理函数。</p>
<p>如果绑定给window对象，则会在所有内容加载后触发，包括窗口，框架，对象和图像。如果绑定在元素上，则当元素的内容加载完毕后触发。</p>
<p>注意:只有当在这个元素完全加载完之前绑定load的处理函数,才会在他加载完后触发。如果之后再绑定就永远不会触发了。所以不要在$(document).ready()里绑定load事件，因为jQuery会在所有DOM加载完成后再绑定load事件。</p>
<p>再来看下关于jQuery的函数介绍</p>
<pre><ol class="dp-c"><li class="alt"><span><span>load(url,&nbsp;[data],&nbsp;[callback])&nbsp;</span></span></li><li><span>url&nbsp;&nbsp;String&nbsp;&nbsp;待装入&nbsp;HTML&nbsp;网页网址。&nbsp;</span></li><li class="alt"><span>data&nbsp;(可选)&nbsp;Map,String&nbsp;&nbsp;发送至服务器的&nbsp;key/value&nbsp;数据。在jQuery&nbsp;1.3中也可以接受一个字符串了。&nbsp;</span></li><li><span>callback&nbsp;(可选)&nbsp;Callback&nbsp;&nbsp;载入成功时回调函数。&nbsp;</span></li></ol></pre>
<p><span style="color: rgb(0, 0, 128);"><strong>data数据是可选取的，如果不填写data数据，jQuery则采用GET方式来请求指定的网页，如果填写了，则采用POST方式，同时将参数data传递给页面。</strong></span></p>
<p>下面看下jQuery 1.4.2里面关于load函数原型的代码：</p>
<pre><ol class="dp-c"><li class="alt"><span><span>load:&nbsp;</span><span class="keyword">function</span><span>(&nbsp;url,&nbsp;params,&nbsp;callback&nbsp;)&nbsp;{&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>&nbsp;(&nbsp;</span><span class="keyword">typeof</span><span>&nbsp;url&nbsp;!==&nbsp;</span><span class="string">&quot;string&quot;</span><span>&nbsp;)&nbsp;{&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span><span>&nbsp;_load.call(&nbsp;</span><span class="keyword">this</span><span>,&nbsp;url&nbsp;);&nbsp;</span></span></li><li><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">//&nbsp;Don't&nbsp;do&nbsp;a&nbsp;request&nbsp;if&nbsp;no&nbsp;elements&nbsp;are&nbsp;being&nbsp;requested</span><span>&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<span class="keyword">else</span><span>&nbsp;</span><span class="keyword">if</span><span>&nbsp;(&nbsp;!</span><span class="keyword">this</span><span>.length&nbsp;)&nbsp;{&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span><span>&nbsp;</span><span class="keyword">this</span><span>;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span></li><li class="alt"><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">var</span><span>&nbsp;off&nbsp;=&nbsp;url.indexOf(</span><span class="string">&quot;&nbsp;&quot;</span><span>);&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>&nbsp;(&nbsp;off&nbsp;&gt;=&nbsp;0&nbsp;)&nbsp;{&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">var</span><span>&nbsp;selector&nbsp;=&nbsp;url.slice(off,&nbsp;url.length);&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;url&nbsp;=&nbsp;url.slice(0,&nbsp;off);&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span></li><li class="alt"><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">//默认为使用GET方式请求页面</span><span>&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">var</span><span>&nbsp;type&nbsp;=&nbsp;</span><span class="string">&quot;GET&quot;</span><span>;&nbsp;</span></span></li><li><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">//&nbsp;如果有data参数，检测是否为函数</span><span>&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>&nbsp;(&nbsp;params&nbsp;)&nbsp;{&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">//&nbsp;If&nbsp;it's&nbsp;a&nbsp;function</span><span>&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>&nbsp;(&nbsp;jQuery.isFunction(&nbsp;params&nbsp;)&nbsp;)&nbsp;{&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">//&nbsp;We&nbsp;assume&nbsp;that&nbsp;it's&nbsp;the&nbsp;callback</span><span>&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;callback&nbsp;=&nbsp;params;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;params&nbsp;=&nbsp;<span class="keyword">null</span><span>;&nbsp;</span></span></li><li><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comment">//&nbsp;不是函数，则构建成一个字符串</span><span>&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<span class="keyword">else</span><span>&nbsp;</span><span class="keyword">if</span><span>&nbsp;(&nbsp;</span><span class="keyword">typeof</span><span>&nbsp;params&nbsp;===&nbsp;</span><span class="string">&quot;object&quot;</span><span>&nbsp;)&nbsp;{&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;params&nbsp;=&nbsp;jQuery.param(&nbsp;params,&nbsp;jQuery.ajaxSettings.traditional&nbsp;);&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="comment">//使用POST方式传递参数</span><span>&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type&nbsp;=&nbsp;<span class="string">&quot;POST&quot;</span><span>;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span></li><li class="alt"><span>}&nbsp;</span></li></ol></pre>
<p><strong><span style="color: rgb(51, 51, 153);">也就是我们在处理url页面时，含data参数的时候，比如：ID=1233，USERID=liupeng 我们应该使用$_POST变量来接受，没有data参数的时候使用$_GET。</span></strong></p>]]></description>
			<link>http://www.liupeng.us/jQuery-load-use-which-method/</link>
			<category domain="http://www.liupeng.us/category/front-end-design/">HTML/CSS/JS</category>
			<pubDate>2010-09-25 13:53</pubDate>
		</item>
		<item>
			<guid>http://www.liupeng.us/i6bug-div-select/</guid>
			<title>IE6遮罩层select的BUG</title>
			<author>Kevin</author>
			<description><![CDATA[时光博客 ( http://www.liupeng.us/ ) : <p>IE6的BUG太多，其中一个就是遮罩层（div）遮不住select框，而IE7以上版本是没有此问题的。现在来重现一个BUG。<a target="_blank" href="http://liupeng.us/demo/ie6bug/select/">点击查看演示页面</a></p>
<p><div class="attach"><a href="http://www.liupeng.us/attachment.php?id=301" target="_blank"><img src="http://www.liupeng.us/attachments//date_201008/b4a3482c6eaef28f80916761ad884ece.jpg" border="0" alt="&#13;&#13;大小: 45.82 K&#13;尺寸: 500 x 183&#13;浏览: 375 次&#13;点击打开新窗口浏览全图" width="500" height="183" /></a></div></p>
<p>下图为 &gt; IE7 效果：</p>
<p><div class="attach"><a href="http://www.liupeng.us/attachment.php?id=302" target="_blank"><img src="http://www.liupeng.us/attachments//date_201008/84bc947bd53affb6112215bf18494036.jpg" border="0" alt="&#13;&#13;大小: 45.93 K&#13;尺寸: 500 x 175&#13;浏览: 277 次&#13;点击打开新窗口浏览全图" width="500" height="175" /></a></div></p>
<p>遮罩层在IE下面，是遮不住select下拉选择器的。于是采用一个特殊的方法：</p>
<p><strong>虽说div直接盖不住select但是div可以盖iframe，而iframe可以盖select,所以，把一个iframe来当作div的底，这个div就可以盖住select了.</strong></p>
<p>当使用了iframe后发现，弹出界面是透明白色的，而不是想象中的透明黑色，于是在src中加入一个透明网页：</p>
<pre><ol class="dp-xml"><li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">html</span><span class="tag">&gt;</span><span>&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="tag">&lt;</span><span class="tag-name">head</span><span class="tag">&gt;</span><span>&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="tag">&lt;</span><span class="tag-name">title</span><span class="tag">&gt;</span><span class="tag">&lt;/</span><span class="tag-name">title</span><span class="tag">&gt;</span><span>&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="tag">&lt;/</span><span class="tag-name">head</span><span class="tag">&gt;</span><span>&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="tag">&lt;</span><span class="tag-name">body</span><span>&nbsp;</span><span class="attribute">style</span><span>=</span><span class="attribute-value">&quot;background-color:#000;&quot;</span><span class="tag">&gt;</span><span class="tag">&lt;/</span><span class="tag-name">body</span><span class="tag">&gt;</span><span>&nbsp;</span></span></li><li><span><span class="tag">&lt;/</span><span class="tag-name">html</span><span class="tag">&gt;</span><span>&nbsp;</span></span></li></ol></pre>
<p>最后的遮罩层div代码如下：</p>
<pre><ol class="dp-xml"><li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">div</span><span>&nbsp;</span><span class="attribute">id</span><span>=</span><span class="attribute-value">&quot;overlay&quot;</span><span class="tag">&gt;</span><span>&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="tag">&lt;</span><span class="tag-name">iframe</span><span>&nbsp;</span><span class="attribute">style</span><span>=</span><span class="attribute-value">&quot;width:100%;height:100%;position:absolute;visibility:inherit;z-index:-1;&quot;</span><span>&nbsp;</span><span class="attribute">src</span><span>=</span><span class="attribute-value">&quot;touming.html&quot;</span><span>&nbsp;</span><span class="attribute">frameborder</span><span>=</span><span class="attribute-value">&quot;0&quot;</span><span class="tag">&gt;</span><span class="tag">&lt;/</span><span class="tag-name">iframe</span><span class="tag">&gt;</span><span>&nbsp;</span></span></li><li class="alt"><span><span class="tag">&lt;/</span><span class="tag-name">div</span><span class="tag">&gt;</span><span>&nbsp;</span></span></li></ol></pre>
<p>问题虽然解决了，但是还是不完美，因为遮罩层显示的时候，虽然遮罩层盖住了select，但是如此同时select也消失不见了 = = ！</p>
<p><div class="attach"><a href="http://www.liupeng.us/attachment.php?id=303" target="_blank"><img src="http://www.liupeng.us/attachments//date_201008/702767c08d9f4fb4c80d810192b7a507.jpg" border="0" alt="&#13;&#13;大小: 38.59 K&#13;尺寸: 500 x 176&#13;浏览: 259 次&#13;点击打开新窗口浏览全图" width="500" height="176" /></a></div></p>]]></description>
			<link>http://www.liupeng.us/i6bug-div-select/</link>
			<category domain="http://www.liupeng.us/category/front-end-design/">HTML/CSS/JS</category>
			<pubDate>2010-08-29 16:40</pubDate>
		</item>
		<item>
			<guid>http://www.liupeng.us/firefox-plugin-save-webpage-as-pic/</guid>
			<title>火狐插件网页另存为图片</title>
			<author>Kevin</author>
			<description><![CDATA[时光博客 ( http://www.liupeng.us/ ) : <p>上网的是时候经常会碰到这样的情况，就是看到一个自己觉得比较漂亮和欣赏的网页，就想先存下来，研究下她的配色和框架结构，以前用的<a href="http://www.ioage.com/cn/index.htm" target="_blank">TheWorld</a>，有相关功能直接保存为图片。但是为了观赏到<a href="http://baike.baidu.com/view/951383.htm" target="_blank">HTML5</a>技术和<a href="http://baike.baidu.com/view/1713027.htm" target="_blank">CSS3</a>技术，响应下无毒安全浏览器，现在还是用<a href="http://www.mozillaonline.com/" target="_blank">Firefox</a>比较多。今天突然发现了这款软件，真的不错。<a href="http://pearlcrescent.com/products/pagesaver/" target="_blank"><strong>Pearl Crescent Page Saver</strong></a> ，试了下效果，确实不错，可以将页面和区域保存为图片，保存的图片为PNG或者JPG格式，图片名称为网页的title。来看看官方的说明：</p>
<div class="codebox">Pearl Crescent Page Saver is an extension for Mozilla Firefox that lets you capture images of web pages, including Flash content.  These images can be saved in PNG or JPEG format.  Using Page Saver, you can capture an entire page or just the visible portion.  You can control the image capture process via a wide variety of settings, including the image file name and scale (e.g., save at 50% of original size).</div>
<p>免费版本下载地址：<a href="http://pearlcrescent.com/products/pagesaver/pagesaverbasic-2.6.1.xpi" target="_blank">http://pearlcrescent.com/products/pagesaver/pagesaverbasic-2.6.1.xpi</a></p>
<p>时光博客下载地址：<a href="http://www.liupeng.us/attachment.php?id=265" title="pagesaverbasic-2.5.xpi&#13;&#13;大小:126.51 K, 下载次数:763" target="_blank">pagesaverbasic-2.5.xpi</a></p>
<p>HOHO，又解决了一个难题了！</p>]]></description>
			<link>http://www.liupeng.us/firefox-plugin-save-webpage-as-pic/</link>
			<category domain="http://www.liupeng.us/category/front-end-design/">HTML/CSS/JS</category>
			<pubDate>2010-03-02 12:47</pubDate>
		</item>
		<item>
			<guid>http://www.liupeng.us/how-to-fix-js-innerhtml-double-quotes/</guid>
			<title>JS innerHTML Double Quotes</title>
			<author>Kevin</author>
			<description><![CDATA[时光博客 ( http://www.liupeng.us/ ) : <p>通过js的innerHTML来获取一个dom节点，内部的html值时，如果属性值没有空格，则IE左右版本下，都会出现标签大些，双引号丢失问题。如果属性值有空格，则标签会变成大写，引号则正常输出.看下面示例：</p>
<p><iframe scrolling="no" height="750" frameborder="auto" width="100%" src="http://liupeng.us/demo/ie-innerHTML.html" name="ieinnerHTML_frame"></iframe></p>
<p>当属性值无空格时：<br />
FF3.5.7（gecko/20091221）&lt;div id=&quot;div2&quot;&gt;&lt;/div&gt;<br />
<br />
IE6 弹出:&lt;DIV id=div2&gt;&lt;/DIV&gt;<br />
IE7 弹出:&lt;DIV id=div2&gt;&lt;/DIV&gt;<br />
IE8 弹出:&lt;DIV id=div2&gt;&lt;/DIV&gt;<br />
<br />
有空格时：<br />
FF3.5.7（gecko/20091221）&lt;div id=&quot;div2 &quot;&gt;&lt;/div&gt;<br />
<br />
IE6 弹出:&lt;DIV id=&quot;div2 &quot;&gt;&lt;/DIV&gt;<br />
IE7 弹出:&lt;DIV id=&quot;div2 &quot;&gt;&lt;/DIV&gt;<br />
IE8 弹出:&lt;DIV id=&quot;div2 &quot;&gt;&lt;/DIV&gt;<br />
<br />
产生这个BUG的原因是什么呢？</p>
<div class="codebox">When you get the innerHTML of a DOM node in IE, if there are no spaces in an attribute value, IE will remove the quotes around it.IE's innerHTML doesn't remove quotes from non standard attributes.</div>
<p>即使是jQuery里面，jquery团队的技术人员也没有解决这个问题.</p>
<p>提供下解决方案：</p>
<pre><ol class="dp-c"><li class="alt"><span><span class="keyword">function</span><span>&nbsp;ieInnerHTML(obj)&nbsp;{&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">var</span><span>&nbsp;zz&nbsp;=&nbsp;obj.innerHTML,&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;z&nbsp;=&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;zz.match(/&lt;\/?\w+((\s+\w+(\s*=\s*(?:<span class="string">&quot;.*?&quot;</span><span>|</span><span class="string">'.*?'</span><span>|[^'&quot;&gt;\s]+))?)+\s*|\s*)\/?&gt;/g);&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>&nbsp;(z){&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">for</span><span>&nbsp;(</span><span class="keyword">var</span><span>&nbsp;i=0;i&lt;z.length;i++){&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">var</span><span>&nbsp;y,&nbsp;zSaved&nbsp;=&nbsp;z[i];&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;z[i]&nbsp;=&nbsp;z[i].replace(/(&lt;?\w+)|(&lt;\/?\w+)\s/,&nbsp;</span></li><li class="alt"><span>&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;<span class="keyword">function</span><span>(a){</span><span class="keyword">return</span><span>&nbsp;a.toLowerCase();});&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y&nbsp;=&nbsp;z[i].match(/\=\w+[?\s+|?&gt;]/g);&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>&nbsp;(y){&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">for</span><span>&nbsp;(</span><span class="keyword">var</span><span>&nbsp;j=0;j&lt;y.length;j++){&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;z[i]&nbsp;=&nbsp;z[i].replace(y[j],y[j]&nbsp;</span></li><li><span>&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;.replace(/\=(\w+)([?\s+|?&gt;])/g,<span class="string">'=&quot;$1&quot;$2'</span><span>));&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;zz&nbsp;=&nbsp;zz.replace(zSaved,z[i]);&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span><span>&nbsp;zz;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span></li></ol></pre>
<p>在相应的地方调用函数<strong>ieInnerHTML</strong></p>
<pre><ol class="dp-c"><li class="alt"><span><span class="keyword">if</span><span>(</span><span class="comment">/*@cc_on!@*/</span><span>0){&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;inner_str&nbsp;=&nbsp;ieInnerHTML(obj);&nbsp;</span></li><li class="alt"><span>}<span class="keyword">else</span><span>{&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;inner_str&nbsp;=&nbsp;obj.innerHTML;&nbsp;</span></li><li class="alt"><span>}&nbsp;</span></li></ol></pre>
<p><strong>&nbsp;原理：对IE版本进行对应的JS处理，而且相应的元素标签中不要出现非标准元素</strong></p>
<p>参考资料：</p>
<ol>
    <li><a href="http://stackoverflow.com/questions/1231770/innerhtml-removes-attribute-quotes-in-internet-explorer" target="_blank">innerHTML removes attribute quotes in Internet Explorer</a></li>
    <li><a href="http://bbs.blueidea.com/thread-2167504-1-510.html" target="_blank">innerHTML中的双引号哪去了？</a></li>
</ol>
<p>&nbsp;</p>]]></description>
			<link>http://www.liupeng.us/how-to-fix-js-innerhtml-double-quotes/</link>
			<category domain="http://www.liupeng.us/category/front-end-design/">HTML/CSS/JS</category>
			<pubDate>2010-01-22 00:53</pubDate>
		</item>
		<item>
			<guid>http://www.liupeng.us/ImageSwitch-for-jquery/</guid>
			<title>ImageSwitch For jQuery</title>
			<author>Kevin</author>
			<description><![CDATA[时光博客 ( http://www.liupeng.us/ ) : <p>最近在寻找图片切换效果，在网上找到了个不错的jQuery版的图片切换效果，支持多种样式，纯JS实现，视觉上绝对不逊色于FLASH。废话不多说看下效果图</p>
<p><iframe scrolling="no" height="430" frameborder="auto" width="100%" src="http://liupeng.us/demo/jQuery/ImageSwitch/" name="import_frame"></iframe></p>
<p>兼容性：完美兼容Firefox 3.5.5 for win ,IE6,IE7,IE8，其他浏览器未测试</p>
<p>独立预览地址：<a href="http://liupeng.us/demo/jQuery/ImageSwitch/" target="_blank">http://liupeng.us/demo/jQuery/ImageSwitch/</a></p>
<p>示例代码：<a target="_blank" href="http://liupeng.us/demo/jQuery/ImageSwitch/ImageSwitch_jQuery.rar">ImageSwitch_jQuery.rar</a></p>]]></description>
			<link>http://www.liupeng.us/ImageSwitch-for-jquery/</link>
			<category domain="http://www.liupeng.us/category/front-end-design/">HTML/CSS/JS</category>
			<pubDate>2009-12-11 01:01</pubDate>
		</item>
		<item>
			<guid>http://www.liupeng.us/jquery-object-and-dom/</guid>
			<title>jQuery Object and Dom</title>
			<author>Kevin</author>
			<description><![CDATA[时光博客 ( http://www.liupeng.us/ ) : <p>项目碰到一个问题，问题大概是这样的：</p>
<pre><ol class="dp-xml"><li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">table</span><span>&nbsp;</span><span class="attribute">width</span><span>=</span><span class="attribute-value">&quot;100%&quot;</span><span>&nbsp;</span><span class="attribute">border</span><span>=</span><span class="attribute-value">&quot;0&quot;</span><span>&nbsp;</span><span class="attribute">cellspacing</span><span>=</span><span class="attribute-value">&quot;0&quot;</span><span>&nbsp;</span><span class="attribute">cellpadding</span><span>=</span><span class="attribute-value">&quot;0&quot;</span><span class="tag">&gt;</span><span>&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="tag">&lt;</span><span class="tag-name">tr</span><span>&nbsp;</span><span class="attribute">class</span><span>=</span><span class="attribute-value">&quot;line1&quot;</span><span>&nbsp;</span><span class="attribute">filetype</span><span>=</span><span class="attribute-value">&quot;a&quot;</span><span class="tag">&gt;</span><span>&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="tag">&lt;</span><span class="tag-name">td</span><span class="tag">&gt;</span><span class="tag">&lt;/</span><span class="tag-name">td</span><span class="tag">&gt;</span><span>&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="tag">&lt;/</span><span class="tag-name">tr</span><span class="tag">&gt;</span><span>&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="tag">&lt;</span><span class="tag-name">tr</span><span>&nbsp;</span><span class="attribute">class</span><span>=</span><span class="attribute-value">&quot;line2&quot;</span><span>&nbsp;</span><span class="attribute">filetype</span><span>=</span><span class="attribute-value">&quot;b&quot;</span><span class="tag">&gt;</span><span>&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="tag">&lt;</span><span class="tag-name">td</span><span class="tag">&gt;</span><span class="tag">&lt;/</span><span class="tag-name">td</span><span class="tag">&gt;</span><span>&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="tag">&lt;/</span><span class="tag-name">tr</span><span class="tag">&gt;</span><span>&nbsp;</span></span></li><li><span>&nbsp;&nbsp;<span class="tag">&lt;/</span><span class="tag-name">table</span><span class="tag">&gt;</span><span>&nbsp;</span></span></li></ol></pre>
<p>需要对上面table的每个tr（N行）绑定事件，对filetype=&quot;a&quot;和filetype=&quot;b&quot;的绑定不同的的右键菜单。右键菜单是通过<a href="http://jquery.com/" target="_blank">jQuery</a>插件<a href="http://www.oschina.net/p/jquery+context+menu" target="_blank">contextmenu</a>实现的。</p>
<p>想绑定事件，自己只能想到2种方案：</p>
<ul>
    <li>第一：使用jQuery的选择符分别筛选出filetype为a和b的。</li>
    <li>第二：使用普通的DOM对象，通过getAttribute实现。</li>
</ul>
<p>第一种方法尝试了，发现jQuery不支持自定义选择符，也就是类似 $(&quot;input[name='newsletter']&quot;)的标签。可能也有，但是由于项目紧没有去尝试。</p>
<p>第二中方法，使用普通的DOM对象来获取不同的filetype，然后给tr做绑定，但是问题来了，jQuery的插件只支持jQuery对象。上网搜索了下发现原来DOM对象转换成jQuery对象非常简单，只要在DOM对象外面加入符号&quot;$&quot;就可以了。比如</p>
<pre><ol class="dp-c"><li class="alt"><span><span class="comment">//普通的DOM对象</span><span>&nbsp;</span></span></li><li><span><span class="keyword">var</span><span>&nbsp;otrs&nbsp;=&nbsp;document.getElementById(</span><span class="string">&quot;filelist&quot;</span><span>).getElementsByTagName(</span><span class="string">&quot;tr&quot;</span><span>);&nbsp;</span></span></li><li class="alt"><span>&nbsp;</span></li><li><span><span class="comment">//jQuery对象</span><span>&nbsp;</span></span></li><li class="alt"><span>jotrs&nbsp;=&nbsp;$(otrs);&nbsp;</span></li></ol></pre>
<p>经常会碰到jQuery与原生的JS混写的时候，也不知道这样的效率如何，转换成jQuery对象的时候，会带来多大的性能损耗。</p>
<p>另外jQuery对象转换成DOM对象稍微要复杂一点，由于jquery对象本身是一个集合。所以如果jquery对象要转换为dom对象则必须取出其中的某一项，一般可通过索引取出。</p>
<pre><ol class="dp-c"><li class="alt"><span><span>$(</span><span class="string">&quot;#msg&quot;</span><span>)[0]，$(</span><span class="string">&quot;div&quot;</span><span>).eq(1)[0]，$(</span><span class="string">&quot;div&quot;</span><span>).get()[1]，$(</span><span class="string">&quot;td&quot;</span><span>)[5]&nbsp;</span></span></li></ol></pre>
<p>这些都是dom对象，可以使用dom中的方法，但不能再使用Jquery的方法。<br />
以下几种写法都是正确的：</p>
<pre><ol class="dp-c"><li class="alt"><span><span>$(</span><span class="string">&quot;#msg&quot;</span><span>).html();&nbsp;</span></span></li><li><span>$(<span class="string">&quot;#msg&quot;</span><span>)[0].innerHTML;&nbsp;</span></span></li><li class="alt"><span>$(<span class="string">&quot;#msg&quot;</span><span>).eq(0)[0].innerHTML;&nbsp;</span></span></li><li><span>$(<span class="string">&quot;#msg&quot;</span><span>).get(0).innerHTML;&nbsp;</span></span></li></ol></pre>]]></description>
			<link>http://www.liupeng.us/jquery-object-and-dom/</link>
			<category domain="http://www.liupeng.us/category/front-end-design/">HTML/CSS/JS</category>
			<pubDate>2009-11-30 13:53</pubDate>
		</item>
		<item>
			<guid>http://www.liupeng.us/js-Mutilang-Solutions/</guid>
			<title>JS多语言设计方案</title>
			<author>Kevin</author>
			<description><![CDATA[时光博客 ( http://www.liupeng.us/ ) : <p>公司目前碰到一个项目，客户是美国CDC，因为考虑到中方与美方的合作机构，所以需要设计出多版本语言切换。要求前台实现。因为语言包不需要经常修改没必要入库操作，所以将语言包写在一个配置文件里面是最好的（自我感觉）。</p>
<p><strong>先看DEMO</strong>：<a href="http://liupeng.us/demo/mutiLang.html" target="_blank">JS多语言设计方案（带记忆效果）</a><br />
<br />
于是第一次尝试，我写了一个语言包（JS文件）：</p>
<pre><ol class="dp-c"><li class="alt"><span><span>message.en={&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">&quot;1&quot;</span><span>:&nbsp;</span><span class="string">&quot;Application&nbsp;Form&nbsp;for&nbsp;Project&nbsp;Activity&quot;</span><span>,&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">&quot;2&quot;</span><span>:&nbsp;</span><span class="string">&quot;Project&nbsp;Name:&quot;</span><span>,&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">&quot;3&quot;</span><span>:&nbsp;</span><span class="string">&quot;National&nbsp;Level:&quot;</span><span>,&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">&quot;4&quot;</span><span>:&nbsp;</span><span class="string">&quot;Provincial&nbsp;Level:&quot;</span><span>,&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">&quot;5&quot;</span><span>:&nbsp;</span><span class="string">&quot;Implementing&nbsp;Unit&nbsp;(NCAIDS&nbsp;division,&nbsp;provincial&nbsp;unit,&nbsp;or&nbsp;other):&quot;</span><span>,&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">&quot;6&quot;</span><span>:&nbsp;</span><span class="string">&quot;Project&nbsp;ID&nbsp;#:&quot;</span><span>&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span></li><li class="alt"><span>&nbsp;</span></li><li><span>message.chs={&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">&quot;1&quot;</span><span>:&nbsp;</span><span class="string">&quot;项目活动申请表&quot;</span><span>,&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">&quot;2&quot;</span><span>:&nbsp;</span><span class="string">&quot;项目名称:&quot;</span><span>,&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">&quot;3&quot;</span><span>:&nbsp;</span><span class="string">&quot;国家级单位:&quot;</span><span>,&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">&quot;4&quot;</span><span>:&nbsp;</span><span class="string">&quot;省级单位:&quot;</span><span>,&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">&quot;5&quot;</span><span>:&nbsp;</span><span class="string">&quot;项目执行单位(注明性艾中心科室，省级单位，或其他):&quot;</span><span>,&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="string">&quot;6&quot;</span><span>:&nbsp;</span><span class="string">&quot;项目活动序号:&quot;</span><span>&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span></li></ol></pre>
<p>然后给需要替换的语言包文字</p>
<pre><ol class="dp-xml"><li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">p</span><span>&nbsp;</span><span class="attribute">class</span><span>=</span><span class="attribute-value">&quot;LANGS&quot;</span><span class="tag">&gt;</span><span>Form&nbsp;Submission&nbsp;Date:</span><span class="tag">&lt;/</span><span class="tag-name">p</span><span class="tag">&gt;</span><span>&nbsp;</span></span></li></ol></pre>
<p>然后通过获取 具有class=&quot;LANGS&quot;的对象，组成数组集合。</p>
<pre><ol class="dp-xml"><li class="alt"><span><span>var&nbsp;</span><span class="attribute">oLangArea</span><span>&nbsp;=&nbsp;</span><span class="attribute-value">document</span><span>.getElementsByTagName(&quot;p&quot;);&nbsp;</span></span></li></ol></pre>
<p>然后循环遍历oLangArea数组，进行语言替换，刚开始觉得很不错。后来，由于疏忽漏掉一个元素，结果BUG就出来了。<br />
因为这种方案是按oLangArea数组的自然顺序排序的，比如在2：National Level:的前面加入一个元素，这样2以后的顺序都需要更改，项目中有43个语言块，结果带来了大量的重复劳动力...于是最后放弃了这种做法。</p>
<p><strong>第二种解决方案</strong></p>
<p>顺利的解决了上面的问题，但是需要多添加一些HTML代码，语言包不变。<br />
HTML代码如下：</p>
<pre><ol class="dp-xml"><li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">p</span><span>&nbsp;</span><span class="attribute">class</span><span>=</span><span class="attribute-value">&quot;LANGS&quot;</span><span>&nbsp;</span><span class="attribute">id</span><span>=</span><span class="attribute-value">&quot;L7&quot;</span><span class="tag">&gt;</span><span>Form&nbsp;Submission&nbsp;Date:</span><span class="tag">&lt;/</span><span class="tag-name">p</span><span class="tag">&gt;</span><span>&nbsp;</span></span></li></ol></pre>
<p>&nbsp;</p>
<pre><ol class="dp-c"><li class="alt"><span><span class="keyword">for</span><span>(</span><span class="keyword">var</span><span>&nbsp;i=0;i&lt;=oLangArea.length;i++){&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;j&nbsp;=&nbsp;(oLangArea[i].getAttribute(<span class="string">&quot;id&quot;</span><span>)).substring(1);&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oLangArea[i].innerHTML&nbsp;=&nbsp;eval(<span class="string">'message.'</span><span>+lang+</span><span class="string">'['</span><span>+j+</span><span class="string">']'</span><span>);&nbsp;</span></span></li><li><span>}&nbsp;</span></li></ol></pre>
<p>可以看出来这个可以适应以后的语言包顺序更改。只需要在相应位置加入HTML代码，然后在语言包中指定对应多语言。<strong>通过ID来绑定，效率方面应该比第一种方案要低一些，但是少量的语言包应该不会有多大的差别，且JS语言包已经载入，细微的效率差别，却换来了长期的可维护性。</strong></p>
<p>以上是个人愚见，因为JS还很差，正在努力学习中。分享一下自己实践的项目，大家一起进步。</p>]]></description>
			<link>http://www.liupeng.us/js-Mutilang-Solutions/</link>
			<category domain="http://www.liupeng.us/category/front-end-design/">HTML/CSS/JS</category>
			<pubDate>2009-11-09 16:58</pubDate>
		</item>
		<item>
			<guid>http://www.liupeng.us/css-border-triangle/</guid>
			<title>CSS的border实现三角的随想</title>
			<author>Kevin</author>
			<description><![CDATA[时光博客 ( http://www.liupeng.us/ ) : <p>沉寂了好久哇，今天出了冒个泡，证明我还活着，然后再有模有样来篇技术稿，然后继续沉寂。</p>
<p>今天在<a href="http://www.css88.com/" target="_blank">CSS88</a>的博客看到一篇有趣的文章<a href="http://www.css88.com/archives/1875" target="_blank">《用css的border属性实现三角》</a>。首先我会站在自己角度思考一下，如果要实现这样的三角效果，我会采取哪种方法？</p>
<div class="codebox">我的第一反应就是用图片，但是同时也考虑到图片的缺点，如果以个页面需要几种样式的三角，是不是需要做几种图片？另外如果页面有换肤的需求，是不是同时图片也得换？</div>
<p>于是出于优化的思想考虑，看到用CSS来解决三角应该属于最佳解决方案吧，至少节约了三角图片的下载时间和便于换肤。但是也有他的缺点，因为是CSS的，所以必须考虑到各个浏览器对CSS的兼容状态。</p>
<p>当然本文仅讨论如何用border实现三角。首先来看下面以副图片：</p>
<p><div class="attach"><a href="http://www.liupeng.us/attachment.php?id=258" target="_blank"><img src="http://www.liupeng.us/attachments/date_200910/thumb_cd7169a33994de3247355de6115c1e31.jpg" border="0" alt="&#13;&#13;大小: 48.54 K&#13;尺寸: 500 x 447&#13;浏览: 2591 次&#13;点击打开新窗口浏览全图" width="500" height="447" /></a></div></p>
<p>从图中大家可以看到，一个高度，宽度为0的box是如何，变成一个三角形的。一下是html代码。</p>
<pre><ol class="dp-xml"><li class="alt"><span><span>&lt;!DOCTYPE&nbsp;html&nbsp;PUBLIC&nbsp;&quot;-//W3C//DTD&nbsp;XHTML&nbsp;1.0&nbsp;Transitional//EN&quot;&nbsp;&quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;</span><span class="tag">&gt;</span><span>&nbsp;</span></span></li><li><span><span class="tag">&lt;</span><span class="tag-name">html</span><span>&nbsp;</span><span class="attribute">xmlns</span><span>=</span><span class="attribute-value">&quot;http://www.w3.org/1999/xhtml&quot;</span><span class="tag">&gt;</span><span>&nbsp;</span></span></li><li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">head</span><span class="tag">&gt;</span><span>&nbsp;</span></span></li><li><span><span class="tag">&lt;</span><span class="tag-name">meta</span><span>&nbsp;</span><span class="attribute">http-equiv</span><span>=</span><span class="attribute-value">&quot;Content-Type&quot;</span><span>&nbsp;</span><span class="attribute">content</span><span>=</span><span class="attribute-value">&quot;text/html;&nbsp;charset=utf-8&quot;</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;</span></span></li><li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">title</span><span class="tag">&gt;</span><span>用css的border属性实现三角</span><span class="tag">&lt;/</span><span class="tag-name">title</span><span class="tag">&gt;</span><span>&nbsp;</span></span></li><li><span><span class="tag">&lt;</span><span class="tag-name">style</span><span class="tag">&gt;</span><span>&nbsp;</span></span></li><li class="alt"><span>#box{&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;margin:0px&nbsp;auto;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;width:0px;&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;height:0;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;font-size:0px;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;border-bottom:50px&nbsp;#F00&nbsp;solid;&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;border-left:50px&nbsp;#03F&nbsp;solid;&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;border-right:&nbsp;50px&nbsp;#F90&nbsp;solid;&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;border-top:50px&nbsp;#6C0&nbsp;solid;&nbsp;</span></li><li><span>}&nbsp;</span></li><li class="alt"><span>&nbsp;</span></li><li><span><span class="tag">&lt;/</span><span class="tag-name">style</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li><li class="alt"><span><span class="tag">&lt;/</span><span class="tag-name">head</span><span class="tag">&gt;</span><span>&nbsp;</span></span></li><li><span><span class="tag">&lt;</span><span class="tag-name">body</span><span class="tag">&gt;</span><span>&nbsp;</span></span></li><li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">div</span><span>&nbsp;</span><span class="attribute">id</span><span>=</span><span class="attribute-value">&quot;box&quot;</span><span class="tag">&gt;</span><span class="tag">&lt;/</span><span class="tag-name">div</span><span class="tag">&gt;</span><span>&nbsp;</span></span></li><li><span><span class="tag">&lt;/</span><span class="tag-name">body</span><span class="tag">&gt;</span><span>&nbsp;</span></span></li><li class="alt"><span><span class="tag">&lt;/</span><span class="tag-name">html</span><span class="tag">&gt;</span><span>&nbsp;</span></span></li></ol></pre>
<p>下面来看看三角的兼容性</p>
<p>测试平台：WIN XP SP2 2600<br />
测试浏览器：Firefox 3.5.3 ，IE 6<br />
测试结果以及兼容方案如下图</p>
<p><div class="attach"><a href="http://www.liupeng.us/attachment.php?id=259" target="_blank"><img src="http://www.liupeng.us/attachments//date_200910/5902ac983fc6054ac09ab2ae2d5debb3.jpg" border="0" alt="&#13;&#13;大小: 44.35 K&#13;尺寸: 500 x 419&#13;浏览: 220 次&#13;点击打开新窗口浏览全图" width="500" height="419" /></a></div></p>
<p>之前一直以为border就是一条直线，然后四边没有交集，因为很少用到超过5px的border,所以从来没有注意到border放大后的效果，现在终于明白了，<strong>border并不是直线，而是在顶点段同相邻边分享顶角。</strong></p>
<p>三角的原理：</p>
<div class="codebox">比如要做一个向上的三角形，那么之需要设置块状元素的width:0px;height:0px;font-size:0px;，然后给顶角相反方向的border外的三个边设置背景颜色为网页底色（上例中位白色）即可。</div>
<p>关于三角的demo演示：<a href="http://www.css88.com/demo/border/border.html" target="_blank">http://www.css88.com/demo/border/border.html</a></p>]]></description>
			<link>http://www.liupeng.us/css-border-triangle/</link>
			<category domain="http://www.liupeng.us/category/front-end-design/">HTML/CSS/JS</category>
			<pubDate>2009-10-25 23:52</pubDate>
		</item>
		<item>
			<guid>http://www.liupeng.us/firefox3_5-will-not-support-moz-opacity/</guid>
			<title>Firefox3.5已不支持属性-moz-opacity</title>
			<author>Kevin</author>
			<description><![CDATA[时光博客 ( http://www.liupeng.us/ ) : <p>安装了FireFox3.5之后，发现以前时光博客iGoogle皮肤中的换肤功能中有透明属性的一些DIV都不透明了。点击&rdquo;换肤&ldquo;按钮的时候，发现overlay已经一片黑暗，不再是60%的透明，于是猜想，FireFox3.5难道不支持它自家的CSS透明属性-moz-opacity了？上网一查，果真如此。<br />
在<a href="https://developer.mozilla.org/En/CSS:-moz-opacity" target="_blank">https://developer.mozilla.org/En/CSS:-moz-opacity</a>里说得很清楚了：</p>
<div class="codebox"><span style="color: rgb(0, 0, 255);"><strong>Note:  Firefox 3.5 and later do not support -moz-opacity.  By now, you should be using simply opacity.</strong></span></div>
<p>3.5以后的版本将不再支持-moz-opacity属性，现在都要改用opacity这个属性了。</p>
<p>于是要设置一下透明度为60%的DIV就应该这样写了：</p>
<pre><ol class="dp-css"><li class="alt"><span><span>div.transp&nbsp;{&nbsp;</span></span></li><li><span>opacity:&nbsp;<span class="value">0.6</span><span>;&nbsp;</span><span class="comment">/*&nbsp;Firefox,&nbsp;Safari(WebKit),&nbsp;Opera)</span>&nbsp;</span></li><li class="alt"><span><span class="comment">filter:&nbsp;&quot;alpha(opacity=60)&quot;;&nbsp;/*&nbsp;IE&nbsp;8&nbsp;*/</span><span>&nbsp;</span></span></li><li><span>filter:&nbsp;alpha(opacity=<span class="value">60</span><span>);&nbsp;</span><span class="comment">/*&nbsp;IE&nbsp;4-7&nbsp;*/</span><span>&nbsp;</span></span></li><li class="alt"><span>zoom:&nbsp;<span class="value">1</span><span>;&nbsp;</span><span class="comment">/*&nbsp;needed&nbsp;in&nbsp;IE&nbsp;up&nbsp;to&nbsp;version&nbsp;7,&nbsp;or&nbsp;set&nbsp;width&nbsp;or&nbsp;height&nbsp;to&nbsp;trigger&nbsp;&quot;hasLayout&quot;&nbsp;*/</span><span>&nbsp;</span></span></li><li><span>}&nbsp;</span></li></ol></pre>
<p>opacity这个是属于CSS3里面的东西了，属于CSS3的标准。然而微软IE8还不支持这一属性。</p>]]></description>
			<link>http://www.liupeng.us/firefox3_5-will-not-support-moz-opacity/</link>
			<category domain="http://www.liupeng.us/category/front-end-design/">HTML/CSS/JS</category>
			<pubDate>2009-07-02 23:45</pubDate>
		</item>
		<item>
			<guid>http://www.liupeng.us/js-css-param/</guid>
			<title>js,css文件后面为什么有参数</title>
			<author>Kevin</author>
			<description><![CDATA[时光博客 ( http://www.liupeng.us/ ) : <p>有同学经常遇到html页面里加载的js与css文件带有参数，比如：&nbsp;</p>
<pre><ol class="dp-xml"><li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">script</span><span>&nbsp;</span><span class="attribute">type</span><span>=</span><span class="attribute-value">&quot;text/javascript&quot;</span><span>&nbsp;</span><span class="attribute">src</span><span>=</span><span class="attribute-value">&quot;base.js?1217128319&quot;</span><span class="tag">&gt;</span><span class="tag">&lt;/</span><span class="tag-name">script</span><span class="tag">&gt;</span><span>&nbsp;</span></span></li><li><span><span class="tag">&lt;</span><span class="tag-name">link</span><span>&nbsp;</span><span class="attribute">rel</span><span>=</span><span class="attribute-value">'stylesheet'</span><span>&nbsp;</span><span class="attribute">href</span><span>=</span><span class="attribute-value">'http://liupeng.us/base.css?version=2.3.3'</span><span>&nbsp;</span><span class="attribute">type</span><span>=</span><span class="attribute-value">'text/css'</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;</span></span></li><li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">link</span><span>&nbsp;</span><span class="attribute">rel</span><span>=</span><span class="attribute-value">'stylesheet'</span><span>&nbsp;</span><span class="attribute">href</span><span>=</span><span class="attribute-value">'http://liupeng.us/base.css?version=20080727182553'</span><span>&nbsp;</span><span class="attribute">type</span><span>=</span><span class="attribute-value">'text/css'</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;</span></span></li></ol></pre>
<p>使用参数有两种可能，</p>
<p>&nbsp;&nbsp;&nbsp;<strong> * 脚本并不存在，而是服务端动态生成的，因此带了个版本号，以示区别。<br />
</strong>&nbsp;&nbsp;&nbsp;<strong> * 客户端会缓存这些css或js文件，因此每次升级了js或css文件后，改变版本号，客户端浏览器就会重新下载新的js或css文件</strong></p>
<p>第二种情况最多，也可能两种同时存在。</p>
<p>版本号，可以是一个随机数，也可以是一个递增的值，大版本小版本的方式，或者根据脚本的生成时间书写，比如 20080727182553 就是精确到了生成脚本的秒，而 2.3.3 就是大版本小版本的方式。</p>]]></description>
			<link>http://www.liupeng.us/js-css-param/</link>
			<category domain="http://www.liupeng.us/category/front-end-design/">HTML/CSS/JS</category>
			<pubDate>2009-06-02 18:26</pubDate>
		</item>
		<item>
			<guid>http://www.liupeng.us/archives/102/</guid>
			<title>FLASH设为首页解决方案</title>
			<author>Kevin</author>
			<description><![CDATA[时光博客 ( http://www.liupeng.us/ ) : <p>因为一般的FLASH网站中，都需要添加一个设为首页和添加收藏，添加收藏已经解决了，这些代码网上很多，就不在这里写出来，需要的朋友可以去<a target="_blank" href="http://google.com">Google.com</a>搜索，本文讨论一下FLASH中如何设置首页。</p>
<p>设置首页问题，在网上搜索了不少，答案都是不准确的，始终没有找到很好的解决方案。不过自己用了一个小把戏来实现了FLASH设为首页，而且各个浏览器中均可以实现。</p>
<p>首先来看下效果</p>
<p><strong>IE内核下：</strong></p>
<p><div class="attach"><a href="http://www.liupeng.us/attachment.php?id=240" target="_blank"><img src="http://www.liupeng.us/attachments/date_200905/thumb_dce97f5d8f9fa0c20df49eca3d1b1591.jpg" border="0" alt="&#13;&#13;大小: 143.24 K&#13;尺寸: 500 x 293&#13;浏览: 379 次&#13;点击打开新窗口浏览全图" width="500" height="293" /></a></div></p>
<p><strong>FF下的截图：</strong></p>
<p>（因为FF的安全性问题，所以必须请在地址栏内输入 about:config,然后将项 signed.applets.codebase_principal_support 值该为true）</p>
<p><div class="attach"><a href="http://www.liupeng.us/attachment.php?id=241" target="_blank"><img src="http://www.liupeng.us/attachments/date_200905/thumb_6be26f79f57ea38188bcc6af67d7ed7b.jpg" border="0" alt="&#13;&#13;大小: 48.35 K&#13;尺寸: 500 x 109&#13;浏览: 343 次&#13;点击打开新窗口浏览全图" width="500" height="109" /></a></div></p>
<p><div class="attach"><a href="http://www.liupeng.us/attachment.php?id=242" target="_blank"><img src="http://www.liupeng.us/attachments/date_200905/thumb_b851b28d95bd2b1daedae745fb1d1772.jpg" border="0" alt="&#13;&#13;大小: 104.92 K&#13;尺寸: 500 x 261&#13;浏览: 328 次&#13;点击打开新窗口浏览全图" width="500" height="261" /></a></div></p>
<p><strong>原理：</strong></p>
<p>相信大家看那个那个覆盖在FLASH上面的黑色遮罩层，对，我的解决方案是，用层的相对来定位，当然这个工作不需要FLASH设计人员来实现，只要在场景里面有设为首页几个字即可，不需要添加任何AS代码。</p>
<blockquote>层级默认的属性值都是static，静态。就不用多说了。最关键的是relative（相对）以及absolute（绝对）。<br />
往往我们如果是COPY别人的代码，会把absolute属性与left、top配合起来制作相关的&ldquo;悬浮层&rdquo;效果。然而有时候我们需要针对某一个容器的悬浮效果，而不是针对窗口的。这时候通过高度、宽度的计算不但麻烦，而且几乎无法完美实现效果。我一开始也无能为力，后来发现只要把其上一级的样式属性 position设置为relative就可以了。<br />
<br />
也就是说，position的属性值的效果，直接受其容器样式中position属性值影响。<br />
例如如下A-B的嵌套结构<br />
&lt;div id=&quot;A&quot;&gt;<br />
&lt;div id=&quot;B&quot;&gt;<br />
&lt;/div&gt;<br />
&lt;/div&gt;<br />
<br />
当A的position为relative时，B的position为absolute才有效。这时候left:0、top:0就不再针对窗口文档，而是针对id为A的这个div了。</blockquote>
<p>&nbsp;</p>
<p><strong>XHTML</strong>代码如下：</p>
<pre><ol class="dp-xml"><li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">div</span><span>&nbsp;</span><span class="attribute">id</span><span>=</span><span class="attribute-value">&quot;flashArea&quot;</span><span class="tag">&gt;</span><span>&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="tag">&lt;</span><span class="tag-name">div</span><span>&nbsp;</span><span class="attribute">id</span><span>=</span><span class="attribute-value">&quot;setArea&quot;</span><span>&nbsp;</span><span class="attribute">onclick</span><span>=</span><span class="attribute-value">&quot;setHomepage();&quot;</span><span class="tag">&gt;</span><span class="tag">&lt;/</span><span class="tag-name">div</span><span class="tag">&gt;</span><span>&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="tag">&lt;</span><span class="tag-name">object</span><span class="tag">&gt;</span><span>中间为插入的FLASH</span><span class="tag">&lt;/</span><span class="tag-name">object</span><span class="tag">&gt;</span><span>&nbsp;</span></span></li><li><span><span class="tag">&lt;/</span><span class="tag-name">div</span><span class="tag">&gt;</span><span>&nbsp;</span></span></li></ol></pre>
<p>因为是相对于FLASH层来定位，所以一定要把要定位的层插入在FLASH层里面，这样他的父级DIV就是FLASH。</p>
<p><strong>JS</strong>代码如下：</p>
<pre><ol class="dp-c"><li class="alt"><span><span>&lt;script&nbsp;type=</span><span class="string">&quot;text/javascript&quot;</span><span>&gt;&nbsp;</span></span></li><li><span>&nbsp;<span class="keyword">function</span><span>&nbsp;setHomepage()&nbsp;</span></span></li><li class="alt"><span>{&nbsp;</span></li><li><span>&nbsp;<span class="keyword">if</span><span>&nbsp;(document.all)&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.body.style.behavior=<span class="string">'url(#default#homepage)'</span><span>;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.body.setHomePage(<span class="string">'http://liupeng.us'</span><span>);&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">else</span><span>&nbsp;</span><span class="keyword">if</span><span>&nbsp;(window.sidebar)&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>(window.netscape)&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">try</span><span>&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;netscape.security.PrivilegeManager.enablePrivilege(<span class="string">&quot;UniversalXPConnect&quot;</span><span>);&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">catch</span><span>&nbsp;(e)&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;alert(&nbsp;<span class="string">&quot;该操作被浏览器拒绝，如果想启用该功能，请在地址栏内输入&nbsp;about:config,然后将项&nbsp;signed.applets.codebase_principal_support&nbsp;值该为true&quot;</span><span>&nbsp;);&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">var</span><span>&nbsp;prefs&nbsp;=&nbsp;Components.classes[</span><span class="string">'@mozilla.org/preferences-service;1'</span><span>].getService(Components.&nbsp;interfaces.nsIPrefBranch);&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;prefs.setCharPref(<span class="string">'browser.startup.homepage'</span><span>,</span><span class="string">'http://liupeng.us'</span><span>);&nbsp;</span></span></li><li><span>&nbsp;}&nbsp;</span></li><li class="alt"><span>}&nbsp;</span></li><li><span>&lt;/script&gt;&nbsp;</span></li></ol></pre>
<p>这样是为了实现IE核心和非IE核心的兼容设置。</p>
<p><strong>CSS</strong>代码：</p>
<p>上面不是已经看到了一个黑色填充的DIV块吗？设置成无色的话，这个层在IE下面就失效了，FF中还可行，所以才用了一种新办法，就是用透明层来实现。</p>
<pre><ol class="dp-css"><li class="alt"><span><span class="value">#flashA</span><span>rea{&nbsp;</span><span class="keyword">margin</span><span>:</span><span class="value">0px</span><span>&nbsp;</span><span class="value">auto</span><span>;&nbsp;</span><span class="keyword">width</span><span>:</span><span class="value">800px</span><span>;&nbsp;</span><span class="keyword">height</span><span>:</span><span class="value">600px</span><span>;&nbsp;</span><span class="keyword">position</span><span>:</span><span class="value">relative</span><span>;&nbsp;</span><span class="keyword">z-index</span><span>:</span><span class="value">99</span><span>;}&nbsp;</span></span></li><li><span><span class="value">#setAre</span><span>a{&nbsp;</span><span class="keyword">height</span><span>:</span><span class="value">60px</span><span>;&nbsp;</span><span class="keyword">width</span><span>:</span><span class="value">60px</span><span>;&nbsp;</span><span class="keyword">background-color</span><span>:</span><span class="value">#000</span><span>;&nbsp;</span><span class="keyword">position</span><span>:&nbsp;</span><span class="value">absolute</span><span>;&nbsp;top:</span><span class="value">150px</span><span>;&nbsp;left:</span><span class="value">137px</span><span>;&nbsp;</span><span class="keyword">z-index</span><span>:</span><span class="value">1000</span><span>;&nbsp;</span><span class="keyword">cursor</span><span>:</span><span class="value">pointer</span><span>;</span><span class="comment">/*-moz-opacity:0;opacity:0;filter:alpha(opacity=0);*/</span><span>}&nbsp;</span></span></li></ol></pre>
<p><a target="_blank" href="http://liupeng.us/demo/flashHome">在线演示地址</a>（点击第一个FLASH按钮）</p>]]></description>
			<link>http://www.liupeng.us/archives/102/</link>
			<category domain="http://www.liupeng.us/category/front-end-design/">HTML/CSS/JS</category>
			<pubDate>2009-05-17 10:28</pubDate>
		</item>
		<item>
			<guid>http://www.liupeng.us/javascript-window-open-object-error/</guid>
			<title>js中的window.open返回object的错误</title>
			<author>Kevin</author>
			<description><![CDATA[时光博客 ( http://www.liupeng.us/ ) : <p>在FLASH制作中碰到的，点击进入网站后，需要弹出一个满屏窗口（不带tpolbar）来显示整个FLASH网站。因为FLASH里面和网页中执行js代码是一样的，所以以网页为例。</p>
<p>系统中用javascript中的window.open后，页面返回了一个[object]。因为系统的原因，必需使用href=&quot;javascript:window.open()&quot;这样的格式。所以只能通过以下办法解决。</p>
<p><strong>解决window.open后返回object的错误</strong></p>
<pre><ol class="dp-xml"><li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">a</span><span>&nbsp;</span><span class="attribute">href</span><span>=</span><span class="attribute-value">&quot;javascript:void(window.open('','','width=200,height=200'))&quot;</span><span class="tag">&gt;</span><span>window.open()</span><span class="tag">&lt;/</span><span class="tag-name">a</span><span class="tag">&gt;</span><span>&nbsp;</span></span></li></ol></pre>
<p>只在js的外层加上一个void不带返回参数的声明，依稀记得C语言时用过这个声明。</p>
<p>顺便在这里将window.open函数的参数使用也列出来：</p>
<pre><ol class="dp-c"><li class="alt"><span><span>window.open函数参数列表&nbsp;</span></span></li><li><span>window&nbsp;=&nbsp;object.open([URL&nbsp;][,&nbsp;name&nbsp;][,&nbsp;features&nbsp;][,&nbsp;replace]]]])&nbsp;</span></li><li class="alt"><span>URL：新窗口的URL地址&nbsp;</span></li><li><span>name：新窗口的名称，可以为空&nbsp;</span></li><li class="alt"><span>featurse：属性控制字符串，在此控制窗口的各种属性，属性之间以逗号隔开。&nbsp;</span></li><li><span>fullscreen=&nbsp;{&nbsp;yes/no/1/0&nbsp;}&nbsp;是否全屏，默认no&nbsp;</span></li><li class="alt"><span>channelmode=&nbsp;{&nbsp;yes/no/1/0&nbsp;}&nbsp;是否显示频道栏，默认no&nbsp;</span></li><li><span>toolbar=&nbsp;{&nbsp;yes/no/1/0&nbsp;}&nbsp;是否显示工具条，默认no&nbsp;</span></li><li class="alt"><span>location=&nbsp;{&nbsp;yes/no/1/0&nbsp;}&nbsp;是否显示地址栏，默认no&nbsp;</span></li><li><span>directories&nbsp;=&nbsp;{&nbsp;yes/no/1/0&nbsp;}&nbsp;是否显示转向按钮，默认no&nbsp;</span></li><li class="alt"><span>status=&nbsp;{&nbsp;yes/no/1/0&nbsp;}&nbsp;是否显示窗口状态条，默认no&nbsp;</span></li><li><span>menubar=&nbsp;{&nbsp;yes/no/1/0&nbsp;}&nbsp;是否显示菜单，默认no&nbsp;</span></li><li class="alt"><span>scrollbars=&nbsp;{&nbsp;yes/no/1/0&nbsp;}&nbsp;是否显示滚动条，默认yes&nbsp;</span></li><li><span>resizable=&nbsp;{&nbsp;yes/no/1/0&nbsp;}&nbsp;是否窗口可调整大小，默认no&nbsp;</span></li><li class="alt"><span>width=number&nbsp;窗口宽度（像素单位）&nbsp;</span></li><li><span>height=number&nbsp;窗口高度（像素单位）&nbsp;</span></li><li class="alt"><span>top=number&nbsp;窗口离屏幕顶部距离（像素单位）&nbsp;</span></li><li><span>left=number&nbsp;窗口离屏幕左边距离（像素单位）&nbsp;</span></li></ol></pre>]]></description>
			<link>http://www.liupeng.us/javascript-window-open-object-error/</link>
			<category domain="http://www.liupeng.us/category/front-end-design/">HTML/CSS/JS</category>
			<pubDate>2009-05-16 15:36</pubDate>
		</item>
		<item>
			<guid>http://www.liupeng.us/flash-fscommand-exec/</guid>
			<title>FLASH执行本地文件</title>
			<author>Kevin</author>
			<description><![CDATA[时光博客 ( http://www.liupeng.us/ ) : <p>制作FLASH引导页后，类似于电脑随机光盘，光盘内置软件引导安装FLASH等...往往需要点击后安装相应的软件，也就是执行相应的程序，如WIN下面执行exe安装文件。</p>
<p>但是自从FLASH5以后开始提高了FLASH在本地的安全性。不允许直接执行EXE文件。那么要如何达到我们的目的呢？只要注意好以下几点就可以。</p>
<p><strong>一、调用EXE文件最重要的一点，必须把你的SWF文件先转换成EXE，也就是FLASH的播放器</strong></p>
<p>关于这个怎么转换，看如下图示</p>
<p><div class="attach"><a href="http://www.liupeng.us/attachment.php?id=238" target="_blank"><img src="http://www.liupeng.us/attachments//date_200905/ea47c733d822c4e535642c23a327c5e4.jpg" border="0" alt="&#13;&#13;大小: 47.04 K&#13;尺寸: 423 x 191&#13;浏览: 345 次&#13;点击打开新窗口浏览全图" width="423" height="191" /></a></div></p>
<p>FLASH里面发布swf文件之后，打开该文件 点击<strong> 文件   -&gt;   创建播放器</strong> 就可以导出EXE版本</p>
<p><strong>二、要在test.exe同一目录中新建一个文件夹，名字叫&ldquo;fscommand&rdquo;，你要调用的外部可执行文件要在fscommand目录下，且不能在子目录下，比如是notepad.exe，请copy notepad.exe到fscommand目录下</strong></p>
<p><strong>三、AS的代码为如下</strong></p>
<p><strong>1、调用exe，</strong></p>
<pre><ol class="dp-c"><li class="alt"><span><span>on&nbsp;(release)&nbsp;{&nbsp;&nbsp;</span></span></li><li><span>fscommand(<span class="string">&quot;exec&quot;</span><span>,&nbsp;</span><span class="string">&quot;notepad.exe&quot;</span><span>);&nbsp;&nbsp;</span></span></li><li class="alt"><span>}&nbsp;</span></li></ol></pre>
<p><strong>（如果只执行exe，而且愿意将exe文件放在fscommand根目录下，2，3可以不看）</strong></p>
<p><strong>2.要打开其他类型的文件（chm），可以曲线救国</strong></p>
<p>可以通过bat文件做中间跳转来解决其他类型文件和要执行程序目录的问题（如果对产品追求完美）</p>
<p>建一个批处理文件，help.bat.编辑这个文件加入start *.chm（注意中间有空格）<br />
方法同上。将&quot;*.exe&quot;,换成&quot;help.bat&quot;.</p>
<p><strong>3、打开本地一个目录的话（这个要求比较特殊）</strong></p>
<p>我的电脑：::{20D04FE0-3AEA-1069-A2D8-08002B30309D}<br />
我的文档：::{450D8FBA-AD25-11D0-98A8-0800361B1103}<br />
控制面板：::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\::{21EC2020-3AEA-1069-A2DD-08002B30309D}</p>
<p>如打开我的电脑:<br />
加在FLASH的按钮上:<br />
on(release){<br />
getURL(&quot;::{20D04FE0-3AEA-1069-A2D8-08002B30309D}&quot;);<br />
}</p>
<p>现在这个问题已经解决，FLASH制作，当中遇到过不少问题，以后会慢慢的和大家分享。</p>]]></description>
			<link>http://www.liupeng.us/flash-fscommand-exec/</link>
			<category domain="http://www.liupeng.us/category/front-end-design/">HTML/CSS/JS</category>
			<pubDate>2009-05-16 15:24</pubDate>
		</item>
		<item>
			<guid>http://www.liupeng.us/archives/91/</guid>
			<title>用PS打造传统色彩按钮</title>
			<author>Kevin</author>
			<description><![CDATA[时光博客 ( http://www.liupeng.us/ ) : <p><div class="attach"><a href="http://www.liupeng.us/attachment.php?id=199" target="_blank"><img src="http://www.liupeng.us/attachments//date_200903/6cf79a7f784bade454c5c1b1f90a0144.jpg" border="0" alt="&#13;&#13;大小: 19.6 K&#13;尺寸: 261 x 134&#13;浏览: 406 次&#13;点击打开新窗口浏览全图" width="261" height="134" /></a></div></p>
<p>由于<a href="http://liupeng.us" target="_blank">liupeng</a>最近做设计图时，需要用到比较传统的良好色彩的按钮（实在不愿意称其为所谓的WEB2.0），以前都是自己摸索的方法，无非是几个图层叠加的制作方法。维护起来比较麻烦而且缩放按钮的时候，整体色彩感不是很好。于是采用了一个图层方法。<br />
1、打开PS新建一个图层<br />
2、用圆角矩形拉出一个按钮，双击图层查看属性。下面是关键步骤。<br />
3、选择渐变叠加，进行如下设置<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a.混合模式：正常&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b.渐变颜色：（0%位置：#94c516 ）（ 52%位置：#8eb92a #72aa00）（92%位置：#a8c732） （100%位置：#b9ce44）<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; c.样式：线性<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; d.角度90&deg;（为了实现垂直的颜色渐变）<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e.缩放100%<br />
4、接下来是描边<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a.大小：1像素<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b.混合模式：正常<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; c.不透明100%<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; d.填充类型：颜色<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e.颜色：#679800<br />
5、内发光效果<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a.结构：（混合模式：正常）（不透明度40%）（颜色#ffffff）<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b.图素：（方法：柔和 杂色0%）（阻塞：0%大小：7像素）<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; c.品质：（范围50%）<br />
原理就是利用渐变色的中间位置设置2个相近颜色实现实现颜色的视觉跳跃，模拟白色透明层。内发光让按钮看起来更有层次感。要实现上面的按钮效果，最重要的就是要处理好渐变色的颜色选择，一个色系的4种颜色深度。当然还有更简单的方法，就是用PS样式实现这种。</p>]]></description>
			<link>http://www.liupeng.us/archives/91/</link>
			<category domain="http://www.liupeng.us/category/front-end-design/">HTML/CSS/JS</category>
			<pubDate>2009-03-27 09:02</pubDate>
		</item>
		<item>
			<guid>http://www.liupeng.us/user-centered-design/</guid>
			<title>以用户为中心的产品设计理念</title>
			<author>Kevin</author>
			<description><![CDATA[时光博客 ( http://www.liupeng.us/ ) : <p><span style="color: rgb(128, 0, 0);">对于&quot;以用户为中心的产品设计&quot;，也就是&quot;User Centered Design&quot;，以前都是按照自己的一些理解去做设计，没有详细的去体会和理解UCD，前些天在北京有一个面试网页设计师的机会，填完考卷后，面试官问我有没有带个人作品，于是把个人作品给他看了下，面试官于是针对<a href="http://liupeng.us" target="_blank">时光博客</a>的一些作品问了一些问题，都是关于设计理念和设计思路的。自己答得很不理想，因为自己做得多反思的少。很少去理解一些学术上的概念，只零散的知道一些模糊的概念。谈话的过程持续了将近2个小时，中间面试官的话，很多让我受益匪浅，这次的面试让我学到了不少的设计思维和概念。感谢这次的面试官，同时在网上搜到一些相关的技术文章，在这里分享一下：</span></p>
<p>衡量一个好的以用户为中心的产品设计，可以有以下几个纬度：产品在特定使用环境下为特定用户用于特定用途时所具有的有效性（effectiveness）、效率（efficiency）和用户主观满意度（satisfaction），延伸开来还包括对特定用户而言，产品的易学程度、对用户的吸引程度、用户在体验产品前后时的整体心理感受等。</p>
<p>简单的说，在进行产品设计时从用户的需求和用户的感受出发，围绕用户为中心设计产品，而不是让用户去适应产品，无论产品的使用流程、产品的信息架构、人机交互方式等，都需要考虑用户的使用习惯、预期的交互方式、视觉感受等方面。</p>
<p><strong>为什么要用以用户为中心的设计方式？</strong></p>
<p><br />
<strong>1. 一个产品的来源可能有很多种情况，用户需求、企业利益、市场需求，或可能是技术发展所驱动。从本质来说，这些不同的来源并不矛盾。一个好的产品，首先是用户需求和企业利益（或市场需求）的结合，其次则是低开发成本的，而这两者都可能引发对技术发展的需求。</strong></p>
<ul>
    <li>越是在产品的早期设计阶段，能充分的了解目标用户群的需求，结合市场需求，就能越大程度降低产品的后期维护甚至回炉返工的成本。&ldquo;如果在产品中给用户传达 &ldquo;我们很关注他们&rdquo;这样的感受，用户对产品的接受程度就会上升&rdquo;，同时能更大程度的容忍产品的缺陷，这种感受决不仅仅局限于产品的某个外包装或者某些界面载体，而是贯穿产品的整体设计理念，这需要我们从早期的设计中就要以用户为中心。</li>
    <li>基于用户需求的设计，往往能对设计&ldquo;未来产品&rdquo;很有帮助，&ldquo;好的体验应该来自用户需求，同时超越用户需求&rdquo;。这同时也有利于我们对于系列产品的整体规划。</li>
</ul>
<p><br />
<strong>2. 随着用户有着越来越多的同类产品可以选择，用户会更注重他们使用这些产品的过程中所需要的时间成本、学习成本和情绪感受。</strong></p>
<ul>
    <li>&nbsp;时间成本</li>
</ul>
<p style="margin-left: 40px;">简而言之就是用户操作某个产品时需要花费的时间，没有一个用户会愿意将他们的时间花费在一个对自己而言仅为实现功能的产品上，如果我们的产品无法传达任何积极的情绪感受，让用户快速的完成他们所需要的功能，这是最基本的用户价值。</p>
<ul>
    <li>学习成本</li>
</ul>
<p style="margin-left: 40px;">主要针对新手用户而言，这点对于网络产品来说尤其关键。同类产品很多，同时容易获得，那么对于新手用户而言，他们还不了解不同产品之间的细节价值，影响他们选择某个产品的一个关键点就在于哪个产品能让他们简单的上手。有数据表明，如果新手用户第一次使用所花费在学习和摸索的时间和精力上很多，甚至第一次使用没有成功，他们放弃这个产品的几率是很高的，即使有时这意味着他们同时需要放弃这个产品背后的物质利益，用户也毫不在乎。</p>
<ul>
    <li>情绪感受</li>
</ul>
<p style="margin-left: 40px;">一般来说，这点是建立在前面两点的基础上，但在现实中也存在这样一种情况：一个产品给用户带来极为美妙的情绪感受，从而让他们愿意花费时间去学习这个产品，甚至在某些特殊的产品中，用户对情绪感受的关注高于一切。例如在某些产品中，用户对产品的安全性感受要求很高，此时这个产品可能需要增加用户操作的步骤和时间，来给用户带来&ldquo;该产品很安全很谨慎&rdquo;的感受，这时减少用户的操作时间，让用户快速的完成操作，反而会让用户感觉不可靠。</p>]]></description>
			<link>http://www.liupeng.us/user-centered-design/</link>
			<category domain="http://www.liupeng.us/category/front-end-design/">HTML/CSS/JS</category>
			<pubDate>2009-02-23 21:23</pubDate>
		</item>
		<item>
			<guid>http://www.liupeng.us/javascript-css-style/</guid>
			<title>JS中CSS Style标签对照表</title>
			<author>Kevin</author>
			<description><![CDATA[时光博客 ( http://www.liupeng.us/ ) : <p>写JS时会用到，如果发现自己想要的效果没有实现，而程序没问题的话，就参照下此表对应看下标签是否正确。</p>
<table width="95%" cellspacing="1" border="1" bordercolordark="#ffffff" bordercolorlight="#000000">
    <thead>
        <tr>
            <th align="center" colspan="2"><font color="#000000">盒子标签和属性对照</font></th>
        </tr>
        <tr>
            <th><font color="#000000">CSS语法 (不区分大小写)</font></th>
            <th><font color="#000000">JavaScript语法 (区分大小写)</font></th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>border</td>
            <td>border</td>
        </tr>
        <tr>
            <td>border-bottom</td>
            <td>borderBottom</td>
        </tr>
        <tr>
            <td>border-bottom-color</td>
            <td>borderBottomColor</td>
        </tr>
        <tr>
            <td>border-bottom-style</td>
            <td>borderBottomStyle</td>
        </tr>
        <tr>
            <td>border-bottom-width</td>
            <td>borderBottomWidth</td>
        </tr>
        <tr>
            <td>border-color</td>
            <td>borderColor</td>
        </tr>
        <tr>
            <td>border-left</td>
            <td>borderLeft</td>
        </tr>
        <tr>
            <td>border-left-color</td>
            <td>borderLeftColor</td>
        </tr>
        <tr>
            <td>border-left-style</td>
            <td>borderLeftStyle</td>
        </tr>
        <tr>
            <td>border-left-width</td>
            <td>borderLeftWidth</td>
        </tr>
        <tr>
            <td>border-right</td>
            <td>borderRight</td>
        </tr>
        <tr>
            <td>border-right-color</td>
            <td>borderRightColor</td>
        </tr>
        <tr>
            <td>border-right-style</td>
            <td>borderRightStyle</td>
        </tr>
        <tr>
            <td>border-right-width</td>
            <td>borderRightWidth</td>
        </tr>
        <tr>
            <td>border-style</td>
            <td>borderStyle</td>
        </tr>
        <tr>
            <td>border-top</td>
            <td>borderTop</td>
        </tr>
        <tr>
            <td>border-top-color</td>
            <td>borderTopColor</td>
        </tr>
        <tr>
            <td>border-top-style</td>
            <td>borderTopStyle</td>
        </tr>
        <tr>
            <td>border-top-width</td>
            <td>borderTopWidth</td>
        </tr>
        <tr>
            <td>border-width</td>
            <td>borderWidth</td>
        </tr>
        <tr>
            <td>clear</td>
            <td>clear</td>
        </tr>
        <tr>
            <td>float</td>
            <td>floatStyle</td>
        </tr>
        <tr>
            <td>margin</td>
            <td>margin</td>
        </tr>
        <tr>
            <td>margin-bottom</td>
            <td>marginBottom</td>
        </tr>
        <tr>
            <td>margin-left</td>
            <td>marginLeft</td>
        </tr>
        <tr>
            <td>margin-right</td>
            <td>marginRight</td>
        </tr>
        <tr>
            <td>margin-top</td>
            <td>marginTop</td>
        </tr>
        <tr>
            <td>padding</td>
            <td>padding</td>
        </tr>
        <tr>
            <td>padding-bottom</td>
            <td>paddingBottom</td>
        </tr>
        <tr>
            <td>padding-left</td>
            <td>paddingLeft</td>
        </tr>
        <tr>
            <td>padding-right</td>
            <td>paddingRight</td>
        </tr>
        <tr>
            <td>padding-top</td>
            <td>paddingTop</td>
        </tr>
        <tr>
            <td colspan="2">&nbsp;</td>
        </tr>
        <tr>
            <th align="center" colspan="2"><font color="#000000">颜色和背景标签和属性对照</font></th>
        </tr>
        <tr>
            <th><font color="#000000">CSS语法 (不区分大小写)</font></th>
            <th><font color="#000000">JavaScript语法 (区分大小写)</font></th>
        </tr>
        <tr>
            <td>background</td>
            <td>background</td>
        </tr>
        <tr>
            <td>background-attachment</td>
            <td>backgroundAttachment</td>
        </tr>
        <tr>
            <td>background-color</td>
            <td>backgroundColor</td>
        </tr>
        <tr>
            <td>background-image</td>
            <td>backgroundImage</td>
        </tr>
        <tr>
            <td>background-position</td>
            <td>backgroundPosition</td>
        </tr>
        <tr>
            <td>background-repeat</td>
            <td>backgroundRepeat</td>
        </tr>
        <tr>
            <td>color</td>
            <td>color</td>
        </tr>
    </tbody>
    <tbody>
        <tr>
            <td colspan="2">&nbsp;</td>
        </tr>
        <tr>
            <th align="center" colspan="2"><font color="#000000">样式标签和属性对照</font></th>
        </tr>
        <tr>
            <th><font color="#000000">CSS语法 (不区分大小写)</font></th>
            <th><font color="#000000">JavaScript语法 (区分大小写)</font></th>
        </tr>
        <tr>
            <td>display</td>
            <td>display</td>
        </tr>
        <tr>
            <td>list-style-type</td>
            <td>listStyleType</td>
        </tr>
        <tr>
            <td>list-style-image</td>
            <td>listStyleImage</td>
        </tr>
        <tr>
            <td>list-style-position</td>
            <td>listStylePosition</td>
        </tr>
        <tr>
            <td>list-style</td>
            <td>listStyle</td>
        </tr>
        <tr>
            <td>white-space</td>
            <td>whiteSpace</td>
        </tr>
    </tbody>
    <tbody>
        <tr>
            <td colspan="2">&nbsp;</td>
        </tr>
        <tr>
            <th align="center" colspan="2"><font color="#000000">文字样式标签和属性对照</font></th>
        </tr>
        <tr>
            <th><font color="#000000">CSS语法 (不区分大小写)</font></th>
            <th><font color="#000000">JavaScript语法 (区分大小写)</font></th>
        </tr>
        <tr>
            <td>font</td>
            <td>font</td>
        </tr>
        <tr>
            <td>font-family</td>
            <td>fontFamily</td>
        </tr>
        <tr>
            <td>font-size</td>
            <td>fontSize</td>
        </tr>
        <tr>
            <td>font-style</td>
            <td>fontStyle</td>
        </tr>
        <tr>
            <td>font-variant</td>
            <td>fontVariant</td>
        </tr>
        <tr>
            <td>font-weight</td>
            <td>fontWeight</td>
        </tr>
    </tbody>
    <tbody>
        <tr>
            <td colspan="2">&nbsp;</td>
        </tr>
        <tr>
            <th align="center" colspan="2"><font color="#000000">文本标签和属性对照</font></th>
        </tr>
        <tr>
            <th><font color="#000000">CSS语法 (不区分大小写)</font></th>
            <th><font color="#000000">JavaScript语法 (区分大小写)</font></th>
        </tr>
        <tr>
            <td>letter-spacing</td>
            <td>letterSpacing</td>
        </tr>
        <tr>
            <td>line-break</td>
            <td>lineBreak</td>
        </tr>
        <tr>
            <td>line-height</td>
            <td>lineHeight</td>
        </tr>
        <tr>
            <td>text-align</td>
            <td>textAlign</td>
        </tr>
        <tr>
            <td>text-decoration</td>
            <td>textDecoration</td>
        </tr>
        <tr>
            <td>text-indent</td>
            <td>textIndent</td>
        </tr>
        <tr>
            <td>text-justify</td>
            <td>textJustify</td>
        </tr>
        <tr>
            <td>text-transform</td>
            <td>textTransform</td>
        </tr>
        <tr>
            <td>vertical-align</td>
            <td>verticalAlign</td>
        </tr>
    </tbody>
</table>]]></description>
			<link>http://www.liupeng.us/javascript-css-style/</link>
			<category domain="http://www.liupeng.us/category/front-end-design/">HTML/CSS/JS</category>
			<pubDate>2009-02-12 11:03</pubDate>
		</item>
		<item>
			<guid>http://www.liupeng.us/quirks-mode-in-ie6-and-ie7/</guid>
			<title>[译]Quirks mode in IE 6 and IE 7</title>
			<author>Kevin</author>
			<description><![CDATA[时光博客 ( http://www.liupeng.us/ ) : <p><span style="color: rgb(0, 0, 128);">由于近段时间在研究&ldquo;Quriks mode&rdquo;，找到的都是国外的文章，于是翻译了一篇。如翻译不准确，请参看原文.</span></p>
<p><img align="left" src="http://liupeng.us/imgcache/xhtml.gif" alt="" />将IE7运行在&ldquo;怪异模式&rdquo;下，对那些已经能熟练操作旧版IE中渲染和控制但是依然喜欢运行其他的浏览器在&ldquo;标准兼容模式&rdquo;，是一个不错的选择。这大概很少人会选择使用，但是它记录完整。</p>
<p>据IE 7开发团队（IE<a target="_blank" href="http://blogs.msdn.com/ie/archive/2005/10/12/480242.aspx">博客</a>） ，IE7运行在&ldquo;怪异模式&rdquo;将采取类似的IE 6中的&ldquo;怪异模式&rdquo;，为了向下兼容的原因。我们还没有广泛测试此渲染模式。</p>
<p>如何触发怪异模式</p>
<p>一些doctypes （ <a target="_blank" href="http://hsivonen.iki.fi/doctype/">Sivonen</a> ; <a target="_blank" href="http://gutfeldt.ch/matthias/articles/doctypeswitch/table.html">Gutfeldt</a> ; <a target="_blank" href="http://www.communitymx.com/content/article.cfm?cid=85FEE">Bergevin</a> ）或列入一个&lt;xml&gt;声明，在IE6中，触发&ldquo;怪异模式&rdquo;或向后兼容模式 。在这种情况下， IE6就像IE5.5，并共享相同的bugs，问题和行为作为其高级版本。</p>
<p>在IE7中，一个&lt;xml&gt;声明不会再变化渲染模式（<a target="_blank" href="http://alastairc.ac/testing/IE7_Doctypes/">Campbell</a>） 。谁想要保留所有版本的IE直到IE 7在怪异模式中（在不影响其他浏览器）已经不能依靠这个了。但是，在doctype前面，在&lt;xml&gt;声明后面插入一个行注释，在IE 7中仍会触发怪异模式 ，如在下面的例子。</p>
<pre><ol class="dp-xml"><li class="alt"><span><span class="tag">&lt;?</span><span class="tag-name">xml</span><span>&nbsp;</span><span class="attribute">version</span><span>=</span><span class="attribute-value">&quot;1.0&quot;</span><span>&nbsp;</span><span class="attribute">encoding</span><span>=</span><span class="attribute-value">&quot;utf-8&quot;</span><span class="tag">?&gt;</span><span>&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;</span><span class="comments">&lt;!--&nbsp;...&nbsp;and&nbsp;keep&nbsp;IE7&nbsp;in&nbsp;quirks&nbsp;mode&nbsp;--&gt;</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&lt;!DOCTYPE&nbsp;html&nbsp;PUBLIC&nbsp;&quot;-//W3C//DTD&nbsp;XHTML&nbsp;1.0&nbsp;Strict//EN&quot;&nbsp;&quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;</span><span class="tag">&gt;</span><span>&nbsp;</span></li></ol></pre>
<p>在IE7中怪异模式一样可以被触发，当页面doctype申明HTML 4.01,在DTD申明前面插入注释，会在IE6和IE7中触发向后兼容模式。</p>
<pre><ol class="dp-xml"><li class="alt"><span><span class="comments">&lt;!--&nbsp;quirks&nbsp;mode&nbsp;--&gt;</span><span>&nbsp;</span></span></li><li><span>&lt;!DOCTYPE&nbsp;HTML&nbsp;PUBLIC&nbsp;&quot;-//W3C//DTD&nbsp;HTML&nbsp;4.01//EN&quot;&nbsp;&quot;http://www.w3.org/TR/html4/strict.dtd&quot;</span><span class="tag">&gt;</span><span>&nbsp;</span></li></ol></pre>
<p>查看渲染模式</p>
<p>浏览器的渲染模式并不总是显而易见的，在IE浏览器的地址栏里面输入：</p>
<pre><ol class="dp-c"><li class="alt"><span><span>javascript:alert(document.compatMode)&nbsp;</span></span></li></ol></pre>
<p>一个便利书签(<a target="_blank" href="http://dorward.me.uk/www/bookmarklets/qors/">Dorward</a>)可以帮助你决定浏览器正在哪个渲染模式。在IE中右键打开下面链接并且收藏它。<a target="_blank" href="javascript:m=(document.compatMode=='CSS1Compat')?'Standards':'Quirks';window.alert('You%20are%20in%20'%20+%20m%20+%20'%20mode.');">Qors Mode</a></p>
<p>原文地址：<a href="http://www.satzansatz.de/cssd/quirksmode.html">http://www.satzansatz.de/cssd/quirksmode.html</a></p>
<p><strong>参考资料：</strong></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Markus Mielke:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://blogs.msdn.com/ie/archive/2005/10/12/480242.aspx">Call to action: The demise of CSS hacks and broken pages</a><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Henri Sivonen:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a target="_blank" href="http://hsivonen.iki.fi/doctype/">Activating the Right Layout Mode Using the Doctype Declaration</a><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Matthias Gutfeldt:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a target="_blank" href="http://gutfeldt.ch/matthias/articles/doctypeswitch/table.html">Doctypes and their respective layout mode</a><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Holly Bergevin:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a target="_blank" href="http://www.communitymx.com/content/article.cfm?cid=85FEE">Rendering Mode and Doctype Switching</a><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Alastair Campbell:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a target="_blank" href="http://alastairc.ac/testing/IE7_Doctypes/">Internet Explorer 7 doctype behaviour</a><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; David Dorward:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a target="_blank" href="http://dorward.me.uk/www/bookmarklets/qors/">Quirks or Standards Mode Bookmarklet</a></p>
<p>This quirks mode chapter is part of the article <a target="_blank" href="http://www.satzansatz.de/cssd/onhavinglayout.html">On having layout</a>.</p>
<p><strong>Created, and last updated:<br />
</strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Aug. 15, 2005<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Jun. 3, 2006</p>
<p><strong>Editors:<br />
</strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a target="_blank" href="http://positioniseverything.net/">Holly Bergevin</a><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a target="_blank" href="http://www.satzansatz.de/css.html">Ingo Chao</a><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a target="_blank" href="http://www.brunildo.org/">Bruno Fassino</a><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a target="_blank" href="http://positioniseverything.net/">John Gallant</a><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a target="_blank" href="http://www.gunlaug.no/">Georg S&oslash;rtun</a><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a target="_blank" href="http://emps.l-c-n.com/">Philippe Wittenbergh</a></p>
<p><strong>Translations:</strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a target="_blank" href="http://www.maujor.com/tutorial/apoio_haslayout/quirksmode.html">Brazilian Portuguese</a> by <a target="_blank" href="http://www.maujor.com/">Mauricio Samy Silva</a><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a target="_blank" href="http://www.css-zibaldone.com/traduzioni/quirksmode-ie7/">Italian</a> by <a target="_blank" href="http://www.css-zibaldone.com/">Gabriele Romanato</a><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a target="_blank" href="http://liupeng.us/quirks-mode-in-ie6-and-ie7">Chinese</a> by <a target="_blank" href="http://liupeng.us/">Liupeng</a></p>
<p><strong>Contact us:</strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <strike>spam.</strike>layout@satzansatz.de</p>
<p><strong>Copyright notice:</strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; This work is published under a <a target="_blank" href="http://creativecommons.org/licenses/by-nc-sa/2.0/">Creative Commons license</a>.</p>]]></description>
			<link>http://www.liupeng.us/quirks-mode-in-ie6-and-ie7/</link>
			<category domain="http://www.liupeng.us/category/front-end-design/">HTML/CSS/JS</category>
			<pubDate>2009-02-01 21:55</pubDate>
		</item>
		<item>
			<guid>http://www.liupeng.us/about-quirks_mode-and-strict_mode/</guid>
			<title>[转]浏览器的两种模式quirks mode 和strict mode</title>
			<author>Kevin</author>
			<description><![CDATA[时光博客 ( http://www.liupeng.us/ ) : <p>在看js代码时，有时会看到关于<strong>quirks mode</strong>(怪异模式)和<strong>strict mode</strong>(严格格式)的东西，一直也没深究怎么回事，只是零零碎碎的有些概念，最近终于受不了这种似懂非懂的感觉，决定好好学习总结一下。</p>
<p><strong>1、quirks mode和strict mode是浏览器解析css的两种模式，或者可以称之为解析方法。目前正在使用的浏览器这两种模式都支持 。</strong></p>
<p><strong>2、历史原因。 </strong></p>
<p>当早期的浏览器Netscape 4和Explorer 4对css进行解析时，并未遵守W3C标准，这时的解析方式就被我们称之为quirks mode(怪异模式),但随着W3C的标准越来越重要，众多的浏览器开始依照W3C标准解析CSS，仿照W3C标准解析CSS的模式我们叫做strict mode(严格模式).</p>
<p><strong>3、后来的浏览器虽然支持strict mode，但众多浏览器并未放弃支持quirks mode。</strong></p>
<p>一个重要的原因就是为了之前大量在quirks mode下开发的网页能够得到正确的显示。所以，这些支持两种模式的浏览器当拿到一张网页时，所做的一个前期工作就是判断采取何种方式进行解析(判断条件后面会说)。注：Explorer 5仍然只支持quirks mode&nbsp;</p>
<p><strong>4、浏览器如何判断何用哪种方式解析CSS？</strong></p>
<p>解决方案就是采用doctype声明，大多数浏览器采用下面的这些判断规则</p>
<p>浏览器要使老旧的网页正常工作，但这部分网页是没有doctype声明的，所以浏览器对没有doctype声明的网页采用quirks mode解析。对于拥有doctype声明的网页，什么浏览器采用何种模式解析，这里有一张详细列表可参考：<a target="_blank" href="http://hsivonen.iki.fi/doctype/">http://hsivonen.iki.fi/doctype/</a> <br />
对于拥有doctype声明的网页，这里有几条简单的规则可用于判断： <br />
对于那些浏览器不能识别的doctype声明，浏览器采用strict mode解析</p>
<p>&nbsp;</p>
<p>在doctype声明中，没有使用DTD声明或者使用HTML4以下（不包括HTML4）的DTD声明时，基本所有的浏览器都是使用quirks mode呈现，其他的则使用strict mode解析。可以这么说，在现有有doctype声明的网页，绝大多数是采用strict mode进行解析的。在ie6中，如果在doctype声明前有一个xml声明(比如:&lt;?xml version=&quot;1.0&quot; encoding=&quot;iso-8859-1&quot;?&gt;)，则采用quirks mode解析。这条规则在ie7中已经移除了。</p>
<p><strong>5、mozilla提出了almost strict moede ，和strict mode的区别是：</strong></p>
<p>img元素在strict中是inline的，而在almost strict mode中是block的。其实我们前面所说，在大多数浏览器，大多数doctype声明触发的是almost strict mode;</p>
<p><br />
<strong>6、quirks mode和strict mode最大的不同就是提现在对盒模式的解释上 ，这也是我们在js里要注意的地方。</strong></p>
<p>什么是盒模式？ 这是针对块级元素说的，我这里只简单说一下(详情请查阅相关资料)。说白了就是把块级元素想像成一个装东西的盒子，而margin,padding,border,width这些css属性构成了盒模式。而区别就是产生在width属性上：</p>
<p><br />
在strict mode中 ：</p>
<p>width是内容宽度 ，也就是说,元素真正的宽度 = <strong>margin-left + border-left-width + padding-left + width + padding-right + border-right-width + margin-right;</strong></p>
<p>&nbsp;</p>
<p>在quirks mode中 ：</p>
<p>width则是元素的实际宽度 ，内容宽度 = <strong>width - (margin-left + margin-right + padding-left + padding-right + border-left-width + border-right-width)</strong></p>
<p><br />
这里把盒模式相关的东西记录一下，备忘 ！</p>
<p>&middot;内联元素 ，例如&lt;a&gt;、&lt;span&gt;等，定义上下边界不会影响到行高（line-height），内联元素距离上一行元素的距离由行高决定，而不是填充或边界。 注2. 内联元素（display: inline） 内联元素不需要在新行内显示，而且也不强迫其后的元素换行，如a、em、span等都为内联元素。内联元素可以为任何其他元素的子元素。</p>
<p>&middot;浮动元素（无论左或者右浮动）边界不压缩 ，且若浮动元素不声明宽度，则其宽度趋向于0，即压缩到其内容能承受的最小宽度。</p>
<p>&middot;如果盒中没有内容，则即使定义了宽度和高度都为100%，实际上只占0% ，因此不会被显示，此点在采取层布局的时候需特别注意。</p>
<p>&middot;边界值可为负，其显示效果各浏览器可能不相同 。</p>
<p>&middot;填充值不可为负 。</p>
<p>&middot;边框默认的样式（border-style）为不显示（none） 。</p>
<p><br />
<strong>7、在quirks mode 和 strict mode中还有一个区别 ，但没经过验证，我只是发现有这个现象。</strong></p>
<p>在strict mode 中，</p>
<p>table的css属性font-size会继承父级元素的 ，也就是说，table中的字体大小会继承父级元素字体的大小。</p>
<p>在quirks mode 中，</p>
<p>table的css属性font-size不会继承父级元素的 ，需要专门设置一下。也就是说，table中的字体大小不会继承父级元素字体的大小。</p>
<p><br />
<strong>8、在js中如何判断当前浏览器正在以何种方式解析？</strong> <br />
document对象有个属性compatMode ,它有两个值：<br />
BackCompat 对应quirks mode<br />
CSS1Compat 对应strict mode</p>
<p><strong>9、我们在编写跨浏览器兼容性的js代码时，常用到的判断代码(来源于ext) ：</strong></p>
<pre><ol class="dp-c"><li class="alt"><span><span class="keyword">var</span><span>&nbsp;ua&nbsp;=&nbsp;navigator.userAgent.toLowerCase();&nbsp;&nbsp;&nbsp; &nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">var</span><span>&nbsp;client&nbsp;=&nbsp;{&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isStrict:&nbsp;&nbsp;&nbsp;document.compatMode&nbsp;==&nbsp;</span><span class="string">'CSS1Compat'</span><span>,&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isOpera:&nbsp;&nbsp;&nbsp;&nbsp;ua.indexOf(</span><span class="string">'opera'</span><span>)&nbsp;&gt;&nbsp;-1,&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isIE:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ua.indexOf(</span><span class="string">'msie'</span><span>)&nbsp;&gt;&nbsp;-1,&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isIE7:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ua.indexOf(</span><span class="string">'msie&nbsp;7'</span><span>)&nbsp;&gt;&nbsp;-1,&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isSafari:&nbsp;&nbsp;&nbsp;/webkit|khtml/.test(ua),&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isWindows:&nbsp;&nbsp;ua.indexOf(</span><span class="string">'windows'</span><span>)&nbsp;!=&nbsp;-1&nbsp;||&nbsp;ua.indexOf(</span><span class="string">'win32'</span><span>)&nbsp;!=&nbsp;-1,&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isMac:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ua.indexOf(</span><span class="string">'macintosh'</span><span>)&nbsp;!=&nbsp;-1&nbsp;||&nbsp;ua.indexOf(</span><span class="string">'mac&nbsp;os&nbsp;x'</span><span>)&nbsp;!=&nbsp;-1,&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;isLinux:&nbsp;&nbsp;&nbsp;&nbsp;ua.indexOf(</span><span class="string">'linux'</span><span>)&nbsp;!=&nbsp;-1&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;};&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;client.isBorderBox&nbsp;=&nbsp;client.isIE&nbsp;&amp;&amp;&nbsp;!client.isStrict;&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;client.isSafari3&nbsp;=&nbsp;client.isSafari&nbsp;&amp;&amp;&nbsp;!!(document.evaluate);&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;client.isGecko&nbsp;=&nbsp;ua.indexOf(</span><span class="string">'gecko'</span><span>)&nbsp;!=&nbsp;-1&nbsp;&amp;&amp;&nbsp;!client.isSafari;&nbsp;&nbsp;&nbsp; &nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp; &nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">/**&nbsp;&nbsp; </span>&nbsp;</li><li class="alt"><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;You're&nbsp;not&nbsp;sill&nbsp;using&nbsp;IE6&nbsp;are&nbsp;you?&nbsp;&nbsp; </span>&nbsp;</span></li><li><span><span class="comment">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</span><span>&nbsp;&nbsp; &nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">var</span><span>&nbsp;ltIE7&nbsp;=&nbsp;client.isIE&nbsp;&amp;&amp;&nbsp;!client.isIE7;&nbsp;&nbsp; &nbsp;</span></li></ol></pre>
<p>10、废话 ：我不知道现在的很多js框架为什么还对解析模式进行了判断。我认为这些框架肯定是给现在要开发的项目使用的，那应该都是strict mode才对呀？是不是因为还有很多人不习惯给页面加上doctype声明呢？</p>
<p>原文出处：<a href="http://kino.javaeye.com/blog/241260">http://kino.javaeye.com/blog/241260</a></p>]]></description>
			<link>http://www.liupeng.us/about-quirks_mode-and-strict_mode/</link>
			<category domain="http://www.liupeng.us/category/front-end-design/">HTML/CSS/JS</category>
			<pubDate>2009-02-01 20:42</pubDate>
		</item>
		<item>
			<guid>http://www.liupeng.us/IE6-min-width-css-expression/</guid>
			<title>IE6中的min-width一般解决方法</title>
			<author>Kevin</author>
			<description><![CDATA[时光博客 ( http://www.liupeng.us/ ) : <p>上次翻译的一篇文章<a target="_blank" href="http://liupeng.us/min-width-Cross-browser-method-with-css-xhtml/">How to Use CSS to Solve min-width Problems in Internet Explorer</a>中已经找到了非JavaScript和CSS expression 实现IE中的min-width。</p>
<p>这次我们看看CSS expression的实现方法：</p>
<pre><ol class="dp-css"><li class="alt"><span><span class="value">#conten</span><span>t{&nbsp; &nbsp;</span></span></li><li><span class="keyword">_width</span><span>:&nbsp;expression(((document.compatMode&nbsp;&amp;&amp;&nbsp;document.compatMode==</span><span class="string">'CSS1Compat'</span><span>)?&nbsp;document.documentElement.clientWidth&nbsp;:&nbsp;document.body.clientWidth)&nbsp;&lt;&nbsp;</span><span class="value">700</span><span>?&nbsp;</span><span class="string">'600px'</span><span>&nbsp;:&nbsp;</span><span class="string">'auto'</span><span>);&nbsp; &nbsp;</span></li><li class="alt"><span>}&nbsp;&nbsp;</span></li></ol></pre>
<p>这里的&nbsp;</p>
<pre><ol class="dp-css"><li class="alt"><span><span>((document.compatMode&nbsp;&amp;&amp;&nbsp;document.compatMode==</span><span class="string">'CSS1Compat'</span><span>)?&nbsp;document.documentElement.clientWidth&nbsp;:&nbsp;document.body.clientWidth)&nbsp;&lt;&nbsp;</span><span class="value">700</span><span>&nbsp;&nbsp;</span></span></li></ol></pre>
<p>只是个判定条件，判定页面body的宽度，如果页面body的宽度小于700（这个要根据具体的页面来指定），就把content的宽度指定为600，否则就让它自适应宽度。这里的content宽度，可以根据自己的情况来设定。</p>]]></description>
			<link>http://www.liupeng.us/IE6-min-width-css-expression/</link>
			<category domain="http://www.liupeng.us/category/front-end-design/">HTML/CSS/JS</category>
			<pubDate>2009-02-01 00:57</pubDate>
		</item>
		<item>
			<guid>http://www.liupeng.us/min-width-Cross-browser-method-with-css-xhtml/</guid>
			<title>[译]min-width的跨浏览器兼容解决方法</title>
			<author>Kevin</author>
			<description><![CDATA[时光博客 ( http://www.liupeng.us/ ) : <p>&nbsp;项目中用到min-width，找了很多解决方案，都不管用，上蓝色经典问了些高人。版主推荐了一篇国外技术文章，觉得价值比较大，就翻译一下，收藏起来。英文比较差，如果翻译有错，还请指正。</p>
<p><strong>介绍</strong><br />
min-width这个属性除了IE6，以及IE5.X以外的浏览器一般都支持.所以本文主要是针对IE的CSS Hack!<br />
对网页设计人员来说，缺乏支持的最小宽度min-width在Internet Explorer中造成了许多问题.到现在为止，唯一模拟min-width的方法是使用JavaScript或Internet Explorer的expressions语法（间接的JavaScript）.经过几个小时的尝试，我发现了一个纯CSS的方法.我的方法需要额外的一些div控制宽度和最小宽度，但我相信这是一个很小的代价，一个非 JavaScript方法工程跨浏览器（甚至在Mac IE5）</p>
<p><strong>方法</strong><br />
基本思想是为那些理解min-width的浏览器提供如下正常的方法，对IE提供他独特的风格（我会解释一下教程）</p>
<p><strong>The Css<br />
</strong></p>
<pre><ol class="dp-css"><li class="alt"><span><span>body&nbsp;{ &nbsp;</span></span></li><li><span>&nbsp;</span><span class="keyword">background</span><span>:</span><span class="value">#fff</span><span>&nbsp;</span><span class="value">url</span><span>(rule.gif)&nbsp;</span><span class="value">20px</span><span>&nbsp;</span><span class="value">0</span><span>; &nbsp;</span></li><li class="alt"><span>&nbsp;</span><span class="keyword">color</span><span>:</span><span class="value">#000</span><span>; &nbsp;</span></li><li><span>&nbsp;</span><span class="keyword">font-family</span><span>:</span><span class="string">&quot;trebuchet&nbsp;ms&quot;</span><span>,&nbsp;</span><span class="string">&quot;times&nbsp;new&nbsp;roman&quot;</span><span>,&nbsp;times,&nbsp;serif; &nbsp;</span></li><li class="alt"><span>&nbsp;</span><span class="keyword">margin</span><span>:</span><span class="value">20px</span><span>; &nbsp;</span></li><li><span>&nbsp;</span><span class="keyword">padding</span><span>:</span><span class="value">0</span><span>; &nbsp;</span></li><li class="alt"><span>} &nbsp;</span></li><li><span>.width&nbsp;{ &nbsp;</span></li><li class="alt"><span>&nbsp;</span><span class="keyword">width</span><span>:</span><span class="value">50%</span><span>; &nbsp;</span></li><li><span>&nbsp;</span><span class="keyword">min-width</span><span>:</span><span class="value">300px</span><span>; &nbsp;</span></li><li class="alt"><span>&nbsp;</span><span class="keyword">background</span><span>:</span><span class="value">#fff</span><span>; &nbsp;</span></li><li><span>} &nbsp;</span></li><li class="alt"><span>&nbsp;</span></li><li><span>.content&nbsp;{ &nbsp;</span></li><li class="alt"><span>&nbsp;</span><span class="keyword">border</span><span>:</span><span class="value">1px</span><span>&nbsp;</span><span class="value">solid</span><span>&nbsp;</span><span class="value">#c00</span><span>; &nbsp;</span></li><li><span>&nbsp;</span><span class="keyword">padding</span><span>:</span><span class="value">5px</span><span>; &nbsp;</span></li><li class="alt"><span>} &nbsp;</span></li><li><span>&nbsp;</span></li><li class="alt"><span>.rule&nbsp;{ &nbsp;</span></li><li><span>&nbsp;</span><span class="keyword">width</span><span>:</span><span class="value">300px</span><span>; &nbsp;</span></li><li class="alt"><span>&nbsp;</span><span class="keyword">background</span><span>:</span><span class="value">#c00</span><span>; &nbsp;</span></li><li><span>&nbsp;</span><span class="keyword">color</span><span>:</span><span class="value">#fff</span><span>; &nbsp;</span></li><li class="alt"><span>&nbsp;</span><span class="keyword">margin</span><span>:</span><span class="value">1em</span><span>&nbsp;</span><span class="value">0</span><span>; &nbsp;</span></li><li><span>}&nbsp;</span></li></ol></pre>
<p><strong>body - general body styling</strong></p>
<div class="codebox">* background: #fff url(rule.gif) 20px 0; - shows the background grid (10 pixel and 100 pixel marks).<br />
* color: #000; - sets the font color to black.<br />
* font-family: &quot;trebuchet ms&quot;, &quot;times new roman&quot;, times, serif; - sets up the font choice.<br />
* margin: 20px; - sets the margin to 20 pixels.<br />
* padding: 0; - sets the padding to zero.<br />
<br />
.width - the outer div that controls the width and min-width for browsers that understand this (or just the width for Internet Explorer).<br />
* width: 50%; - the preferred width.<br />
* min-width: 300px; - the minimum width allowed.<br />
* background: #fff; - sets the background color to white.<br />
<br />
.content - The container for the content in which you can add a border and/or padding while not affecting the width and min-width.<br />
* border: 1px solid #c00; - adds a red 1 pixel solid border.<br />
* padding: 5px; - sets the padding to 5 pixels.<br />
<br />
.rule - Includes a rule line to show when min-width has been reached.<br />
* width: 300px; - sets the width to 300 pixels.<br />
* background: #c00; - makes the background dark red.<br />
* color: #fff; - makes the text color white.<br />
* margin: 1em 0; - adds a top and bottom margin of 1em.<br />
&nbsp;</div>
<p><strong>The (X)HTML</strong></p>
<p>&nbsp;</p>
<pre><ol class="dp-xml"><li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">div</span><span>&nbsp;</span><span class="attribute">class</span><span>=</span><span class="attribute-value">&quot;width&quot;</span><span class="tag">&gt;</span><span>&nbsp;</span></span></li><li><span>&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">div</span><span>&nbsp;</span><span class="attribute">class</span><span>=</span><span class="attribute-value">&quot;content&quot;</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">h2</span><span class="tag">&gt;</span><span>{width:50%;&nbsp;min-width:300px;}&nbsp;for&nbsp;non&nbsp;IE&nbsp;browsers</span><span class="tag">&lt;/</span><span class="tag-name">h2</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">p</span><span class="tag">&gt;</span><span>This&nbsp;div&nbsp;has&nbsp;a&nbsp;min-width&nbsp;of&nbsp;300px&nbsp;and&nbsp;a&nbsp;width&nbsp;of&nbsp;50%.</span><span class="tag">&lt;</span><span class="tag-name">br</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;The&nbsp;width&nbsp;can&nbsp;be&nbsp;any&nbsp;percentage&nbsp;and&nbsp;the&nbsp;min-width&nbsp;a&nbsp;px&nbsp;or&nbsp;em&nbsp;value.</span><span class="tag">&lt;/</span><span class="tag-name">p</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">div</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li class="alt"><span class="tag">&lt;/</span><span class="tag-name">div</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li><span class="tag">&lt;</span><span class="tag-name">div</span><span>&nbsp;</span><span class="attribute">class</span><span>=</span><span class="attribute-value">&quot;rule&quot;</span><span class="tag">&gt;</span><span>this&nbsp;is&nbsp;300px&nbsp;wide</span><span class="tag">&lt;/</span><span class="tag-name">div</span><span class="tag">&gt;</span><span>&nbsp;</span></li></ol></pre>
<p><a target="_blank" href="http://liupeng.us/demo/min-width/examples/demo1.html">Normal method demo 1</a></p>
<p>如果在任何一个浏览器中（除IE）尝试上面的例子，并且改变浏览器窗口的大小，外面的容器（的宽度）将会缩小直到宽度达到最小宽度300px，然后不管怎么缩小，容器将一直保持300px的固定宽度.相反，如果你在IE中尝试这个例子，容器将一直缩小，甚至小于300px的标志，并且只有等到文字不允许其再缩小的时候才停止.</p>
<p><strong>步骤1</strong></p>
<p>主要的思想是使用一个有左边界left-border宽度为min-width的div.主要的原理是一旦div的宽度到达0,div的边界通常不会收缩.为了确保其他所有浏览器忽略附加的样式，我们必须针对IE使用，具有一般的hack方式&ldquo;* html&rdquo;的CSS.我们将增加一个类为minwidth的附加div.</p>
<p><strong>The CSS CODE</strong></p>
<pre><ol class="dp-css"><li class="alt"><span><span>*&nbsp;html&nbsp;.minwidth&nbsp;{ &nbsp;</span></span></li><li><span>&nbsp;</span><span class="keyword">border-left</span><span>:</span><span class="value">300px</span><span>&nbsp;</span><span class="value">solid</span><span>&nbsp;</span><span class="value">#800</span><span>; &nbsp;</span></li><li class="alt"><span>}&nbsp;</span></li></ol></pre>
<p>&nbsp;&nbsp;&nbsp;&nbsp; border-left:300px solid #800; - sets the left border to 300 pixel solid dark red so that it can be seen.</p>
<p><strong>The (X)HTML</strong>&nbsp;</p>
<pre><ol class="dp-xml"><li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">div</span><span>&nbsp;</span><span class="attribute">class</span><span>=</span><span class="attribute-value">&quot;width&quot;</span><span class="tag">&gt;</span><span>&nbsp;</span></span></li><li><span>&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">div</span><span>&nbsp;</span><span class="attribute">class</span><span>=</span><span class="attribute-value">&quot;minwidth&quot;</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">div</span><span>&nbsp;</span><span class="attribute">class</span><span>=</span><span class="attribute-value">&quot;content&quot;</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">h2</span><span class="tag">&gt;</span><span>{width:50%;&nbsp;min-width:300px;}&nbsp;for&nbsp;non&nbsp;IE&nbsp;browsers</span><span class="tag">&lt;/</span><span class="tag-name">h2</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">p</span><span class="tag">&gt;</span><span>This&nbsp;div&nbsp;has&nbsp;a&nbsp;min-width&nbsp;of&nbsp;300px&nbsp;and&nbsp;a&nbsp;width&nbsp;of&nbsp;50%.</span><span class="tag">&lt;</span><span class="tag-name">br</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The&nbsp;width&nbsp;can&nbsp;be&nbsp;any&nbsp;percentage&nbsp;and&nbsp;the&nbsp;min-width&nbsp;a&nbsp;px&nbsp;or&nbsp;em&nbsp;value.</span><span class="tag">&lt;/</span><span class="tag-name">p</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">div</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">div</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li class="alt"><span class="tag">&lt;/</span><span class="tag-name">div</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li><span class="tag">&lt;</span><span class="tag-name">div</span><span>&nbsp;</span><span class="attribute">class</span><span>=</span><span class="attribute-value">&quot;rule&quot;</span><span class="tag">&gt;</span><span>this&nbsp;is&nbsp;300px&nbsp;wide</span><span class="tag">&lt;/</span><span class="tag-name">div</span><span class="tag">&gt;</span><span>&nbsp;</span></li></ol></pre>
<p><a target="_blank" href="http://liupeng.us/demo/min-width/examples/demo2.html">步骤1的演示(Demo)</a></p>
<p>所有这些步骤唯IE可见.我们将看到其他的浏览器将正确执行CSS的min-width.上面的例子表明左侧暗红色边界定为300像素宽和文字在右侧的白色背景上.减少浏览器的窗口宽度会缩小文字的宽度到一个最小值，但是不会缩小边界。</p>
<p><strong>步骤2</strong></p>
<p>我们现在需要将文字向左移动300px以便它能占据边界宽度，像正常宽度一样.这个可以通过添加另外一个div（margin-left:-300px;）来完成.</p>
<p><strong>The CSS</strong></p>
<pre><ol class="dp-css"><li class="alt"><span><span>*&nbsp;html&nbsp;.container&nbsp;{ &nbsp;</span></span></li><li><span>&nbsp;</span><span class="keyword">margin-left</span><span>:</span><span class="value">-300px</span><span>; &nbsp;</span></li><li class="alt"><span>}&nbsp;</span></li></ol></pre>
<p>&nbsp; margin-left:-300px; - set the left margin to -300 pixel so that the contents will move over the border area.</p>
<p><strong>The (X)HTML</strong></p>
<pre><ol class="dp-xml"><li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">div</span><span>&nbsp;</span><span class="attribute">class</span><span>=</span><span class="attribute-value">&quot;width&quot;</span><span class="tag">&gt;</span><span>&nbsp;</span></span></li><li><span>&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">div</span><span>&nbsp;</span><span class="attribute">class</span><span>=</span><span class="attribute-value">&quot;minwidth&quot;</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">div</span><span>&nbsp;</span><span class="attribute">class</span><span>=</span><span class="attribute-value">&quot;container&quot;</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">div</span><span>&nbsp;</span><span class="attribute">class</span><span>=</span><span class="attribute-value">&quot;content&quot;</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">h2</span><span class="tag">&gt;</span><span>{width:50%;&nbsp;min-width:300px;}&nbsp;for&nbsp;non&nbsp;IE&nbsp;browsers</span><span class="tag">&lt;/</span><span class="tag-name">h2</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">p</span><span class="tag">&gt;</span><span>This&nbsp;div&nbsp;has&nbsp;a&nbsp;min-width&nbsp;of&nbsp;300px&nbsp;and&nbsp;a&nbsp;width&nbsp;of&nbsp;50%.</span><span class="tag">&lt;</span><span class="tag-name">br</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The&nbsp;width&nbsp;can&nbsp;be&nbsp;any&nbsp;percentage&nbsp;and&nbsp;the&nbsp;min-width&nbsp;a&nbsp;px&nbsp;or&nbsp;em&nbsp;value.</span><span class="tag">&lt;/</span><span class="tag-name">p</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">div</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">div</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">div</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li class="alt"><span class="tag">&lt;/</span><span class="tag-name">div</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li><span class="tag">&lt;</span><span class="tag-name">div</span><span>&nbsp;</span><span class="attribute">class</span><span>=</span><span class="attribute-value">&quot;rule&quot;</span><span class="tag">&gt;</span><span>this&nbsp;is&nbsp;300px&nbsp;wide</span><span class="tag">&lt;/</span><span class="tag-name">div</span><span class="tag">&gt;</span><span>&nbsp;</span></li></ol></pre>
<p><a target="_blank" href="http://liupeng.us/demo/min-width/examples/demo3.html">步骤2的演示(Demo)</a></p>
<p>这表明现在文字占据了暗红色边界区域,同白色区域一样拥有50%的宽度.但是如果改变窗口的大小,你会发现我们回到了起点,内容content依然与继续缩小直到超过300px.</p>
<p>这个的发生是因为IE的渲染BUG，造成了附加的div的'hasLayout'属性为false. (see Microsoft hasLayout property for further information).</p>
<p><strong>步骤3</strong></p>
<p>这里有很多种方法来重新触发'hasLayout'，但是最普通、最简单的方法是'Holy Hack'，就是给div一个(height:1px;)的属性.</p>
<p><strong>The CSS</strong></p>
<pre><ol class="dp-css"><li class="alt"><span><span class="comment">/*\*/</span><span>&nbsp;</span></span></li><li><span>*&nbsp;html&nbsp;.minwidth,&nbsp;*&nbsp;html&nbsp;.container&nbsp;{ &nbsp;</span></li><li class="alt"><span>&nbsp;</span><span class="keyword">height</span><span>:&nbsp;</span><span class="value">1px</span><span>; &nbsp;</span></li><li><span>} &nbsp;</span></li><li class="alt"><span class="comment">/**/</span><span>&nbsp;</span></li></ol></pre>
<p>在.minwidth和.container 2个div上应用这个CSS HACK.</p>
<p>围绕的字符 /*\*/........./**/ 是用来隐藏样式在 Macintosh&nbsp; IE5，据我所知，这个功能没有问题.</p>
<p><a target="_blank" href="http://liupeng.us/demo/min-width/examples/demo4.html">步骤3的演示(Demo)</a></p>
<p>减小浏览器窗口现在会减少所有宽度，直到达到最小宽度然后停止在300px.但是这个会引发一个问题，就是那些占据红色边界区域的字符会消失在红色边界区域不见，只有出现在白色区域上方的文字才可见.</p>
<p><strong>步骤4</strong></p>
<p>Another problem and another solution. If I give the container div a relative position then the text will reappear in front of the dark red border.<br />
<strong>The CSS</strong></p>
<pre><ol class="dp-css"><li class="alt"><span><span>*&nbsp;html&nbsp;.container&nbsp;{ &nbsp;</span></span></li><li><span>&nbsp;</span><span class="keyword">margin-left</span><span>:</span><span class="value">-300px</span><span>; &nbsp;</span></li><li class="alt"><span>&nbsp;</span><span class="keyword">position</span><span>:</span><span class="value">relative</span><span>;&nbsp;</span><span class="comment">/*&nbsp;ADDED&nbsp;*/</span><span>&nbsp;</span></li><li><span>}&nbsp;</span></li></ol></pre>
<p><a target="_blank" href="http://liupeng.us/demo/min-width/examples/demo5.html">步骤4的演示(Demo) </a></p>
<p>经过上面的调整，我们已经使得所有的文字在50%的div中可见，并且已经实现了跨浏览器的min-width功能》</p>
<p><strong>步骤5</strong></p>
<p>剩下来的工作就是改变边界的颜色为白色一边内容区域div呈现白色背景.</p>
<p><strong>The CSS</strong></p>
<pre><ol class="dp-css"><li class="alt"><span><span>*&nbsp;html&nbsp;.minwidth&nbsp;{ &nbsp;</span></span></li><li><span>&nbsp;</span><span class="keyword">border-left</span><span>:</span><span class="value">300px</span><span>&nbsp;</span><span class="value">solid</span><span>&nbsp;</span><span class="value">#fff</span><span>;&nbsp;</span><span class="comment">/*&nbsp;CHANGED&nbsp;*/</span><span>&nbsp;</span></li><li class="alt"><span>}&nbsp;</span></li></ol></pre>
<p><a target="_blank" href="http://liupeng.us/demo/min-width/examples/demo6.html">步骤5的演示(Demo)</a></p>
<p>我们现在有一个完全有效的方法来在IE中模拟使用min-width，并且我们可以在这里完成，但是这里依然有个限制，那就是我们需要一个背景颜色来完成这个工作.这是因为IE没有border的'transparent'选项.</p>
<p><strong>步骤6</strong></p>
<p>如果我们需要有一个背景图片通过min-width div来显示，那么上述的方法将不适合.幸运的是，有一个替代方案，将解决这个问题，只需要一个额外的div来完成这个工作.如果，不使用左边界宽度来控制min-width的话，我们将使用左填充宽度取代，并且我们不需要为任何一个div制定颜色下面是CSS代码</p>
<pre><ol class="dp-css"><li class="alt"><span><span>.width&nbsp;{ &nbsp;</span></span></li><li><span>&nbsp;</span><span class="keyword">width</span><span>:</span><span class="value">50%</span><span>; &nbsp;</span></li><li class="alt"><span>&nbsp;</span><span class="keyword">min-width</span><span>:</span><span class="value">300px</span><span>;&nbsp;</span><span class="comment">/*&nbsp;CHANGED&nbsp;TO&nbsp;REMOVE&nbsp;BACKGROUND&nbsp;COLOR&nbsp;*/</span><span>&nbsp;</span></li><li><span>} &nbsp;</span></li><li class="alt"><span>*&nbsp;html&nbsp;.minwidth&nbsp;{ &nbsp;</span></li><li><span>&nbsp;</span><span class="keyword">padding-left</span><span>:</span><span class="value">300px</span><span>;&nbsp;</span><span class="comment">/*&nbsp;CHANGED&nbsp;MARGIN&nbsp;TO&nbsp;PADDING&nbsp;*/</span><span>&nbsp; &nbsp;</span></li><li class="alt"><span>}&nbsp;</span></li></ol></pre>
<p><a target="_blank" href="http://liupeng.us/demo/min-width/examples/demo7.html">步骤6的演示(Demo)</a></p>
<p>现在你可以看到背景图片通过div显示，但是，大家会发现，这种方法（当浏览器窗口缩小时）不会停止在最小宽度，因为IE将缩小填充padding宽度.</p>
<p><strong>步骤7</strong></p>
<p>这里有个附件div（class=&quot;layout&quot;）用来防止padding的缩小.</p>
<p><strong>The (X)HTML</strong></p>
<pre><ol class="dp-xml"><li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">div</span><span>&nbsp;</span><span class="attribute">class</span><span>=</span><span class="attribute-value">&quot;width&quot;</span><span class="tag">&gt;</span><span>&nbsp;</span></span></li><li><span>&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">div</span><span>&nbsp;</span><span class="attribute">class</span><span>=</span><span class="attribute-value">&quot;minwidth&quot;</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">div</span><span>&nbsp;</span><span class="attribute">class</span><span>=</span><span class="attribute-value">&quot;layout&quot;</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">div</span><span>&nbsp;</span><span class="attribute">class</span><span>=</span><span class="attribute-value">&quot;container&quot;</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">div</span><span>&nbsp;</span><span class="attribute">class</span><span>=</span><span class="attribute-value">&quot;content&quot;</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">h2</span><span class="tag">&gt;</span><span>{width:50%;&nbsp;min-width:300px;}&nbsp;for&nbsp;non&nbsp;IE&nbsp;browsers</span><span class="tag">&lt;/</span><span class="tag-name">h2</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">p</span><span class="tag">&gt;</span><span>This&nbsp;div&nbsp;has&nbsp;a&nbsp;min-width&nbsp;of&nbsp;300px&nbsp;and&nbsp;a&nbsp;width&nbsp;of&nbsp;50%.</span><span class="tag">&lt;</span><span class="tag-name">br</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The&nbsp;width&nbsp;can&nbsp;be&nbsp;any&nbsp;percentage&nbsp;and&nbsp;the&nbsp;min-width&nbsp;a&nbsp;px&nbsp;or&nbsp;em&nbsp;value.</span><span class="tag">&lt;/</span><span class="tag-name">p</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">div</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">div</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">div</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li><span>&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">div</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li class="alt"><span class="tag">&lt;/</span><span class="tag-name">div</span><span class="tag">&gt;</span><span>&nbsp;</span></li><li><span class="tag">&lt;</span><span class="tag-name">div</span><span>&nbsp;</span><span class="attribute">class</span><span>=</span><span class="attribute-value">&quot;rule&quot;</span><span class="tag">&gt;</span><span>this&nbsp;is&nbsp;300px&nbsp;wide</span><span class="tag">&lt;/</span><span class="tag-name">div</span><span class="tag">&gt;</span><span>&nbsp;</span></li></ol></pre>
<p>附加的CSS将会添加到类为.layout 到hasLayout 列表中.</p>
<p><strong>The CSS</strong></p>
<pre><ol class="dp-css"><li class="alt"><span><span class="comment">/*\*/</span><span>&nbsp;</span></span></li><li><span>*&nbsp;html&nbsp;.minwidth,&nbsp;*&nbsp;html&nbsp;.container,&nbsp;*&nbsp;html&nbsp;.content,&nbsp;*&nbsp;html&nbsp;.layout&nbsp;&nbsp;{ &nbsp;</span></li><li class="alt"><span>&nbsp;</span><span class="keyword">height</span><span>:</span><span class="value">1px</span><span>; &nbsp;</span></li><li><span>} &nbsp;</span></li><li class="alt"><span class="comment">/**/</span><span>&nbsp;</span></li></ol></pre>
<p><a target="_blank" href="http://liupeng.us/demo/min-width/examples/demo8.html">步骤7的演示(Demo)</a></p>
<p>现在你会看到一个充分的、可用的IE min-width 演示，这个演示含有透明背景.</p>
<p><strong>步骤8</strong></p>
<p>另外一个可能的要求就是让所有的宽度容器在页面上居中.这个不算问题，而且可以使用普通的方法'text-align:center' for IE 并且 'margin:0 auto;' for non IE Browers 对外层div.居中的div,一个含有背景颜色，一个含有透明背景在下面的例子中可以看到.</p>
<p><a target="_blank" href="http://liupeng.us/demo/min-width/examples/example2.html">Example of centered divs</a></p>
<p>你会注意到我使用了.width {display: inline-block;} 在这个版本里面，来给外层的容器宽度hasLayout属性.这个是另外一个可替代方案来实现在IE中的hasLayout应用.</p>
<p><strong>结论<br />
</strong>我希望本教程是一种折衷的，并且您同意这一方法优于JavaScript或表达式（即使它使用了一些额外divs来完成的结果）。高兴的是，当Internet Explorer7今年晚些时候推出，它必须支持最小宽度;如果没有，当设计师们开始使用min-width来布局，这种方法的实现最小宽度在早期版本的Internet Explorer将变得更重要。</p>
<div class="codebox">I hope that this tutorial was relatively painless and that you agree that this method is superior to JavaScript or expressions (even though it usesa few extra divs to accomplish the results). Hopefully, when Internet Explorer 7 is released later this year it will have support for min-width; if itdoes this method of achieving min-width in earlier versions of Internet Explorer will become more relevant as web designers start to use it with their layouts</div>
<p>原文标题：How to Use CSS to Solve min-width Problems in Internet Explorer<br />
原文作者：<a target="_blank" href="mailto:stu@s7u.co.uk">Stu Nicholls</a><br />
原文出处：<a href="http://www.webreference.com/programming/min-width/">http://www.webreference.com/programming/min-width/</a></p>
<p>翻译者：<a target="_blank" href="http://liupeng.us">Liupeng.us</a></p>]]></description>
			<link>http://www.liupeng.us/min-width-Cross-browser-method-with-css-xhtml/</link>
			<category domain="http://www.liupeng.us/category/front-end-design/">HTML/CSS/JS</category>
			<pubDate>2009-01-30 22:02</pubDate>
		</item>
	</channel>
</rss>

