<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>FoxLing - 前端开发 &#187; HTML/CSS/XML</title>
	<atom:link href="http://foxling.org/category/html-css-xml/feed/" rel="self" type="application/rss+xml" />
	<link>http://foxling.org</link>
	<description>我还在寻找方向</description>
	<lastBuildDate>Tue, 10 Apr 2012 16:48:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>玩转嘀咕网的嘀咕秀(Widget)</title>
		<link>http://foxling.org/html-css-xml/digu-show-js-widget/</link>
		<comments>http://foxling.org/html-css-xml/digu-show-js-widget/#comments</comments>
		<pubDate>Mon, 23 Mar 2009 16:19:46 +0000</pubDate>
		<dc:creator>FoxLing</dc:creator>
				<category><![CDATA[HTML/CSS/XML]]></category>
		<category><![CDATA[JS/AJAX/DOM]]></category>
		<category><![CDATA[杂七杂八]]></category>
		<category><![CDATA[Widget]]></category>
		<category><![CDATA[嘀咕秀]]></category>
		<category><![CDATA[嘀咕网]]></category>

		<guid isPermaLink="false">http://foxling.cn/?p=283</guid>
		<description><![CDATA[一直郁闷嘀咕网没有开发JS的博客插件，今天终于看到这款APP出来啦，嘀咕秀：http://www.digushow.com。 一共提供了三种Widget，Flash版的，图片版，以及JS版。 图片版一般是用于论坛签名，效果如下： 其实，任何支持HTML代码，或者支持图片的地方，都可以加上你的图片签名，如果你要在你的网页中插入图片签名，只需要添加如下代码： &#60;img src="http://digushow.com/sign/foxling/bbs_sign.png" alt="Foxling's digu" /&#62; 其中，foxling改为你的用户名，alt的属性改成你的说明。 如果是要在支持UBB代码的论坛里做签名，使用下面的代码： [img]http://digushow.com/sign/foxling/bbs_sign.png[/img] Flash版提供了5种颜色可以选择，不过我都不喜欢，定制性较差~但大多数博客提供商都不支持JS，Flash就是一个不错的选择了。 嘀咕秀JS版 对于众多自建博客来说，JS版应该算是最好的选择了，CSS样式完全自主控制，如果熟悉JS的话，HTML结构也可以由自己定制，JS的链接代码： &#60;div id="diguShow"&#62;正在加载嘀咕...&#60;/div&#62; &#60;script src="http://digushow.com/js/digushow.js" type="text/javascript"&#62; &#60;/script&#62;&#60;script src="http://digushow.com/api/digushow.jsp?callback=diguShowCallback&#038;username=foxling&#038;count=5" type="text/javascript"&#62;&#60;/script&#62; 有三个可定义的参数，callback后面会说到，先说后两个参数： username:嘀咕用户名 count:读取的嘀咕数目 JS加载的效果如下 正在加载嘀咕&#8230; 在PJBlog和WordPress里添加嘀咕秀JS模块 在Wordpress和Pjblog里添加JS模块都是比较简单的，PJ里可以添加模块，写入HTML代码完成，在WordPress里添加也是非常容易，有多种方法： 1.添加到边栏：后台-外观-小工具，添加一个文本工具，然后进行编辑，填入标题，然后把上面的JS代码复制进去，保存即可。 2.添加到内容栏：写一篇新文章，在HTML代码里输入上面的JS代码，然后把文章置顶~ 3.添加到自定义位置：修改你的主题里的index.php文件，把JS代码插入到相应的位置。 我是用第2种方法~可以在首页看到我的嘀咕秀模块。 自定义嘀咕秀JS版的CSS样式 嘀咕秀JS版没有自带任何CSS样式，这样嘀友们可以自己无限发挥~~ JS生成的HTML代码格式如下，生成的代码结构比较简单，并且加上了ID，只需要写相应的CSS即可。 &#60;div id="diguShow"&#62; &#60;ul id="diguShow_List"&#62; &#60;li&#62;求Window空间，让我挂个东东吧。&#60;a href="http://digu.com/jump?aid=detail&#38;twId=169480" class="diguShow_time"&#62;11小时前&#60;/a&#62;&#60;/li&#62; &#60;/ul&#62; &#60;p id="diguShow_More"&#62; &#60;a target="_blank" href="http://www.digu.com/foxling"&#62;进入&#60;strong&#62;FoxLing&#60;/strong&#62;的嘀咕主页&#187;&#60;/a&#62; &#60;/p&#62; &#60;/div&#62; 在主题的style.css里写入CSS(我稍微写了一点样式，不过还是按照我博客简洁的风格)，给每条嘀咕加上了一个小icon，显得更有条理点，可以在我的博客看到效果： /*DiguShow*/ #diguShow_List [...]]]></description>
			<content:encoded><![CDATA[<p>一直郁闷嘀咕网没有开发JS的博客插件，今天终于看到这款APP出来啦，嘀咕秀：<a href="http://www.digushow.com/">http://www.digushow.com</a>。<br />
一共提供了三种Widget，Flash版的，图片版，以及JS版。<br />
图片版一般是用于论坛签名，效果如下：</p>
<p style="text-align:center"><img src="http://digushow.com/sign/foxling/bbs_sign.png" alt="Foxling's digu" /></p>
<p>其实，任何支持HTML代码，或者支持图片的地方，都可以加上你的图片签名，如果你要在你的网页中插入图片签名，只需要添加如下代码：</p>
<pre>
&lt;img src="http://digushow.com/sign/foxling/bbs_sign.png" alt="Foxling's digu" /&gt;
</pre>
<p>其中，foxling改为你的用户名，alt的属性改成你的说明。<br />
如果是要在支持UBB代码的论坛里做签名，使用下面的代码：</p>
<pre>
[img]http://digushow.com/sign/foxling/bbs_sign.png[/img]
</pre>
<p><span id="more-283"></span></p>
<p>Flash版提供了5种颜色可以选择，不过我都不喜欢，定制性较差~但大多数博客提供商都不支持JS，Flash就是一个不错的选择了。</p>
<div style="text-align:center"><img alt="allowscriptaccess|sameDomain||src|http://www.digushow.com/style/images/sign.swf?mid=foxling&#038;style=2||width|180||height|400" class="flashItem" src="http://res.foxling.cn/images/loadflash.png" /></div>
<h3>嘀咕秀JS版</h3>
<p>对于众多自建博客来说，JS版应该算是最好的选择了，CSS样式完全自主控制，如果熟悉JS的话，HTML结构也可以由自己定制，JS的链接代码：</p>
<pre>
&lt;div id="diguShow"&gt;正在加载嘀咕...&lt;/div&gt;
&lt;script src="http://digushow.com/js/digushow.js" type="text/javascript"&gt;
&lt;/script&gt;&lt;script src="http://digushow.com/api/digushow.jsp?callback=diguShowCallback&#038;username=foxling&#038;count=5" type="text/javascript"&gt;&lt;/script&gt;
</pre>
<p>有三个可定义的参数，callback后面会说到，先说后两个参数：<br />
username:嘀咕用户名<br />
count:读取的嘀咕数目</p>
<h3>JS加载的效果如下</h3>
<div id="diguShow">正在加载嘀咕&#8230;</div>
<p><script src="http://digushow.com/js/digushow.js" type="text/javascript"></script><script src="http://digushow.com/api/digushow.jsp?callback=diguShowCallback&#038;username=foxling&#038;count=5" type="text/javascript"></script></p>
<h3>在PJBlog和WordPress里添加嘀咕秀JS模块</h3>
<p>在Wordpress和Pjblog里添加JS模块都是比较简单的，PJ里可以添加模块，写入HTML代码完成，在WordPress里添加也是非常容易，有多种方法：<br />
1.添加到边栏：后台-外观-小工具，添加一个文本工具，然后进行编辑，填入标题，然后把上面的JS代码复制进去，保存即可。<br />
2.添加到内容栏：写一篇新文章，在HTML代码里输入上面的JS代码，然后把文章置顶~<br />
3.添加到自定义位置：修改你的主题里的index.php文件，把JS代码插入到相应的位置。<br />
我是用第2种方法~可以在首页看到我的嘀咕秀模块。</p>
<h3>自定义嘀咕秀JS版的CSS样式</h3>
<p>嘀咕秀JS版没有自带任何CSS样式，这样嘀友们可以自己无限发挥~~</p>
<p>JS生成的HTML代码格式如下，生成的代码结构比较简单，并且加上了ID，只需要写相应的CSS即可。</p>
<pre>
&lt;div id="diguShow"&gt;
    &lt;ul id="diguShow_List"&gt;
        &lt;li&gt;求Window空间，让我挂个东东吧。&lt;a href="http://digu.com/jump?aid=detail&amp;twId=169480" class="diguShow_time"&gt;11小时前&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
    &lt;p id="diguShow_More"&gt;
        &lt;a target="_blank" href="http://www.digu.com/foxling"&gt;进入&lt;strong&gt;FoxLing&lt;/strong&gt;的嘀咕主页&raquo;&lt;/a&gt;
    &lt;/p&gt;
&lt;/div&gt;
</pre>
<p>在主题的style.css里写入CSS(我稍微写了一点样式，不过还是按照我博客简洁的风格)，给每条嘀咕加上了一个小icon，显得更有条理点，可以在我的博客看到效果：</p>
<pre>
/*DiguShow*/
#diguShow_List {list-style:none;margin:10px 0;padding:0;}
#diguShow_List li {
background:url(/wp-content/themes/sandbox/diguico.png) no-repeat 0 0;
padding-left:17px;
line-height:16px;
margin-bottom:8px;
}
.diguShow_time {color:#999;}
#diguShow_More {text-align:right;margin:0 0 10px 0;}
</pre>
<h3>加入Loading图标</h3>
<p>嘀咕秀是在网页加载完后才会加载JS，这点比较好，不会因为网络的原因导致页面卡住~<br />
在加载的时候，显示：正在加载嘀咕&#8230;<br />
可以加入一个Loading图标，这样显得更爽点~<br />
Loading图标生成网站：<a href="http://www.ajaxload.info/">http://www.ajaxload.info/</a>，提供各种样式的Loading图标，可以自定义前景色和背景色。</p>
<pre>
将默认代码里的
&lt;div id="diguShow"&gt;正在加载嘀咕...&lt;/div&gt;
替换成
&lt;div id="diguShow" style="background:url(/wp-content/themes/sandbox/ajax-loader.gif) no-repeat left center;padding:5px 0 5px 20px;"&gt;
正在加载嘀咕...
&lt;/div&gt;
</pre>
<h3>更强的自定义</h3>
<p>如果你对JS比较熟悉，可以完全重写JS回调函数，输出你需要的HTML结构。<br />
嘀咕秀是通过JSONP的方式传入函数名，返回相应的格式，解决跨域问题。<br />
上面提到的callback参数就是处理数据要用到的JS函数名，给函数传递了一个参数，是JSON格式的数据。<br />
服务端传回来的JS代码如下：</p>
<pre>
diguShowCallback(
{
user:{userId:10013552,
nickname:"FoxLing",
signPicName:"http://121.14.39.139:80/file/10/01/35/52/default/SIGN10013552_24x24.jpg",
homepage:"http:\/\/www.digu.com\/foxling"},
status:[{created_at:"3小时前",
text:"嘀咕",
id:181855,
picPath:[]}]
}
);
</pre>
<p>写好了JS函数后，将JS代码里的这一句替换成你自己写的JS函数的文件链接：</p>
<pre>
&lt;script src="http://digushow.com/js/digushow.js" type="text/javascript"&gt;&lt;/script&gt;
</pre>
<p>完工！</p>
<p>&#8212;&#8212;&#8212;&#8211;2009-09-08 更新&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
嘀咕秀更名为无敌秀，目前可以使用<br />
CSS的ID和Class名有所改动，改动如下：</p>
<pre>
/*Wudishow*/
#wudiShow_List {list-style:none;margin:10px 0;padding:0;}
#wudiShow_List li {
background:url(/wp-content/themes/sandbox/diguico.png) no-repeat 0 0;
padding-left:17px;
line-height:16px;
margin-bottom:8px;
}
.wudiShow_time {color:#999;}
#wudiShow_More {text-align:right;margin:0 0 10px 0;}
</pre>
<p>如果你还想对无敌秀的JS下刀，可以下载这个地址的js文件进行修改：</p>
<p>http://www.wudishow.com/js/wudishow.source.js</p>
<p>目前可以在我的博客首页右侧栏看到效果。</p>
]]></content:encoded>
			<wfw:commentRss>http://foxling.org/html-css-xml/digu-show-js-widget/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>YSlow 13条网站速度优化准则</title>
		<link>http://foxling.org/html-css-xml/yslow-optimize-rule-for-speed-website/</link>
		<comments>http://foxling.org/html-css-xml/yslow-optimize-rule-for-speed-website/#comments</comments>
		<pubDate>Thu, 19 Mar 2009 15:23:28 +0000</pubDate>
		<dc:creator>FoxLing</dc:creator>
				<category><![CDATA[HTML/CSS/XML]]></category>
		<category><![CDATA[JS/AJAX/DOM]]></category>
		<category><![CDATA[YSlow]]></category>
		<category><![CDATA[网站速度优化]]></category>

		<guid isPermaLink="false">http://foxling.cn/?p=268</guid>
		<description><![CDATA[Yahoo!曾经针对网站速度体验提出了34条准则《Best Practices for Speeding Up Your Web Site》(中文译文)。 YSlow在这些准则的基础上精简为更加直观的13条，针对每一条从A-F评分，得出一个总分，来评估一个网站的优化程度，你可以很方便地从YSlow的测试结果中看到你得不足的地方，并加以改进。 YSlow是FireBug的一个插件，在FireFox里使用。 本站测试结果截图如下： 由于加入了Google统计和Yahoo统计的JS代码，所以Http请求较多，并且，它们的JS代码是没有加上Expires的，所以，在1\3\9\10几个项目中拖下了不少分数~ 1.Make fewer HTTP requests / 减少Http请求数 每个CSS，JS，以及各种图片内容，都是会向服务器请求数据的，越来越多的HTTP请求，只会让网页越来越慢~ 所以，需要对这些内容进行整合优化，虽然把CSS和JS分门别类地分文件存放是较好维护的，但也要考虑性能问题，所以，尽可能地把相关的CSS文件，JS文件合并成一个文件，当然，并不是所有的CSS、JS全都合并在一起，在维护性和性能中要找一个平衡点~ 对于CSS中使用到的背景图片，可以使用CSS Sprite技术，所谓的CSS Sprite就是把小图标合并成一个大的背景文件，通过background-position进行定位，一个网站使用的图标和背景图片可能是十几个或者几十个，通过合并后，可以减少大量的Http请求。 附：Yahoo!的一张背景图 更多CSS Sprite相关：CSS Sprites: Image Slicing’s Kiss of Death 在线CSS Sprite服务：CSS Sprite Generator 2.Use a CDN / 使用CDN CDN的全称是Content Delivery Network，即内容分发网络。其目的是通过在现有的Internet中增加一层新的网络架构，将网站的内容发布到最接近用户的网络”边缘”，使用户可以就近取得所需的内容，解决Internet网络拥挤的状况，提高用户访问网站的响应速度。从技术上全面解决由于网络带宽小、用户访问量大、网点分布不均等原因所造成的用户访问网站响应速度慢的问题。 这个不属于前端考虑的问题~更多相关CDN的知识请访问百度百科的词条：CDN 3.Add an Expires header / 为文件头指定Expires Expires即过期时间，对于长期不需要改动的文件来说，比如CSS，JS，图片，设置一个较长的Expires是再好不过了，这样，访问者不用重复地下载网站上的内容，达到速度优化的目的。 当然，就算你需要修改文件也是可以的，只不过网站上的文件路径可以相应地改改，比如：base.css?t=090827 4.Gzip components [...]]]></description>
			<content:encoded><![CDATA[<p>Yahoo!曾经针对网站速度体验提出了34条准则《<a href="http://developer.yahoo.com/performance/rules.html">Best Practices for Speeding Up Your Web Site</a>》(<a href="http://www.cnblogs.com/smjack/archive/2009/02/24/1396895.html">中文译文</a>)。<br />
<a href="https://addons.mozilla.org/zh-CN/firefox/addon/5369">YSlow</a>在这些准则的基础上精简为更加直观的13条，针对每一条从A-F评分，得出一个总分，来评估一个网站的优化程度，你可以很方便地从YSlow的测试结果中看到你得不足的地方，并加以改进。<br />
YSlow是<a href="https://addons.mozilla.org/zh-CN/firefox/addon/1843">FireBug</a>的一个插件，在<a href="http://www.mozillaonline.com/">FireFox</a>里使用。</p>
<p>本站测试结果截图如下：<br />
<img src="http://farm4.static.flickr.com/3559/3368213686_d91c8a3690.jpg" width="417" height="407" alt="YSlow-Foxling.cn" /><br />
由于加入了Google统计和Yahoo统计的JS代码，所以Http请求较多，并且，它们的JS代码是没有加上Expires的，所以，在1\3\9\10几个项目中拖下了不少分数~<br />
<span id="more-268"></span></p>
<h3>1.Make fewer HTTP requests / 减少Http请求数</h3>
<p>每个CSS，JS，以及各种图片内容，都是会向服务器请求数据的，越来越多的HTTP请求，只会让网页越来越慢~<br />
所以，需要对这些内容进行整合优化，虽然把CSS和JS分门别类地分文件存放是较好维护的，但也要考虑性能问题，所以，尽可能地把相关的CSS文件，JS文件合并成一个文件，当然，并不是所有的CSS、JS全都合并在一起，在维护性和性能中要找一个平衡点~<br />
对于CSS中使用到的背景图片，可以使用CSS Sprite技术，所谓的CSS Sprite就是把小图标合并成一个大的背景文件，通过background-position进行定位，一个网站使用的图标和背景图片可能是十几个或者几十个，通过合并后，可以减少大量的Http请求。<br />
附：Yahoo!的一张背景图<br />
<a href="http://www.flickr.com/photos/30103746@N02/3366898583/" title="Flickr 上 FoxLing_cn 的 Yahoo CSS Sprite" target="_blank"><img src="http://farm4.static.flickr.com/3548/3366898583_9819fff4d3.jpg" width="500" height="239" alt="Yahoo CSS Sprite" /></a></p>
<p>更多CSS Sprite相关：<a href="http://alistapart.com/articles/sprites">CSS Sprites: Image Slicing’s Kiss of Death</a><br />
在线CSS Sprite服务：<a href="http://spritegen.website-performance.org/">CSS Sprite Generator</a></p>
<h3>2.Use a CDN / 使用CDN</h3>
<p>CDN的全称是Content Delivery Network，即内容分发网络。其目的是通过在现有的Internet中增加一层新的网络架构，将网站的内容发布到最接近用户的网络”边缘”，使用户可以就近取得所需的内容，解决Internet网络拥挤的状况，提高用户访问网站的响应速度。从技术上全面解决由于网络带宽小、用户访问量大、网点分布不均等原因所造成的用户访问网站响应速度慢的问题。<br />
这个不属于前端考虑的问题~更多相关CDN的知识请访问<a href="http://baike.baidu.com/view/21895.htm">百度百科的词条：CDN</a></p>
<h3>3.Add an Expires header / 为文件头指定Expires</h3>
<p>Expires即过期时间，对于长期不需要改动的文件来说，比如CSS，JS，图片，设置一个较长的Expires是再好不过了，这样，访问者不用重复地下载网站上的内容，达到速度优化的目的。<br />
当然，就算你需要修改文件也是可以的，只不过网站上的文件路径可以相应地改改，比如：base.css?t=090827</p>
<h3>4.Gzip components / 启用Gzip压缩组件</h3>
<p>启用服务器的Gzip组件，使网页内容在压缩之后再传递到客户端，节省流量，当然，这取决于你是否能操作服务器。<br />
关于设置Gzip，可以Google一下：<a href="http://www.google.cn/search?q=IIS%C6%F4%D3%C3gzip">IIS启用Gzip</a> <a href="http://www.google.cn/search?q=apache%C6%F4%D3%C3gzip">Apache启用Gzip</a></p>
<h3>5.Put CSS at the top / 将Css文件放在最上面</h3>
<p>将CSS文件链接放置在head区域，保证CSS在第一时间加载，优化用户体验。</p>
<h3>6.Put JS at the bottom / 将Js文件放在最底部</h3>
<p>大多数JS都是需要在页面加载完成后才能工作的，所以，将JS放置在页面的最后面，以保证页面能在第一时间加载完；同上，优化用户体验。</p>
<h3>7.Avoid CSS expressions / 避免CSS expressions(表达式)</h3>
<p>CSS表达式会引起较大的性能问题，避免使用它，就算某些情况在IE6里需要用到它，也应该为IE6单独设置，避免影响到IE7以上版本。</p>
<h3>8.Make JS and CSS external / 使用外部引用的Js和Css文件</h3>
<p>将JS和CSS做成外部文件链接，这样是可以缓存的，避免每次加载页面的同时都需要加载这些重复的JS和CSS。<br />
当然，某些情况下JS、CSS内嵌也许会更快，还是权衡问题~</p>
<h3>9.Reduce DNS lookups / 减少DNS查询</h3>
<p>多域名会导致多次DNS解析，比如图片是存放在images.domain.com，当然，分开服务器存放又能减少服务器的压力，如何权衡，总之，这不是前端的范畴了~<br />
见上面本站的测试图，因为有Google统计和Yahoo统计，导致多了5个域名，汗~只得了C。</p>
<h3>10.Minify JS / 压缩Js文件</h3>
<p>利用功能压缩JS文件，JS压缩工具有：<a href="http://developer.yahoo.com/yui/compressor/">YUI Compressor</a> <a href="http://crockford.com/javascript/jsmin">JSMin</a><br />
其实CSS也可以被压缩，去掉空白，换行，以及注释，也可以让CSS小不少，YUI Compressor也可以压缩CSS。</p>
<h3>11.Avoid redirects / 避免重定向</h3>
<p>重定向影响用户体验，当然，也影响了速度~<br />
一个最简单的例子就是，http://foxling.cn应该写成http://foxling.cn/</p>
<blockquote><p>一种最浪费性能的重定向频繁发生而网络开发者们却往往没有意识到，那就是当地址中应当有一个左斜线（/）却没有的时候。比如，访问http://astrology.yahoo.com/astrology会导致一个301效应并重定向到http://astrology.yahoo.com/astrology/（注意这里加了一个左斜线）。</p></blockquote>
<h3>12.Remove duplicate scripts / 移除重复的脚本</h3>
<p>同一页面中重复加载JS，增加了下载时间，脚本被执行了两次。<br />
别做这种粗心的事~</p>
<h3>13.Configure ETags / 配置ETags</h3>
<p>这也是服务器配置的事<br />
实体标签（ETags）是服务器和浏览器用于确定浏览器中缓存的组件和服务器中的是否对应的一种机制。</p>
]]></content:encoded>
			<wfw:commentRss>http://foxling.org/html-css-xml/yslow-optimize-rule-for-speed-website/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSS Margin，边界重叠</title>
		<link>http://foxling.org/html-css-xml/css-margin-overlapping/</link>
		<comments>http://foxling.org/html-css-xml/css-margin-overlapping/#comments</comments>
		<pubDate>Fri, 05 Dec 2008 15:39:39 +0000</pubDate>
		<dc:creator>FoxLing</dc:creator>
				<category><![CDATA[HTML/CSS/XML]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[Margin]]></category>
		<category><![CDATA[重叠]]></category>

		<guid isPermaLink="false">http://wp.foxling.cn/as-flex-air/54/</guid>
		<description><![CDATA[在标准浏览器里测试代码(FireFox,Opera,Safari&#8230;) &#60;div style="background-color:#ccc; height:100px; width:400px;"&#62; &#60;div style="margin-top:30px; background-color:#900; height:50px;"&#62;margin-top:30px; background-color:#900; height:50px;&#60;/div&#62; &#60;/div&#62; 你以为会是这样： 结果确是这样： 边界重叠是指两个或多个盒子(可能相邻也可能嵌套)的相邻边界(其间没有任何非空内容、补白、边框)重合在一起而形成一个单一边界。 常规流中两个或多个块级盒子的垂直相邻边界会重合。结果的边界宽度是相邻边界宽度中最大的值。如果出现负边界，则在最大的正边界中减去绝对值最大的负边界。如果没有正边界，则从零中减去绝对值最大的负边界。注意：相邻的盒子可能并非是由父子关系或同胞关系的元素生成。 但是边界的重叠也有例外情况： 水平边界永远不会重叠。 浮动盒子、绝对定位盒子、内联块盒子、根盒子的边界永不重叠。 overflow属性不等于visible的元素与它的非浮动子元素之间边界不发生重叠。 常规流中两个或多个块级盒子的垂直相邻边界会重合。结果的边界宽度是相邻边界宽度中最大的值。 如果出现负边界，则在最大的正边界中减去绝对值最大的负边界。]]></description>
			<content:encoded><![CDATA[<p>在标准浏览器里测试代码(FireFox,Opera,Safari&#8230;)</p>
<pre>
&lt;div style="background-color:#ccc; height:100px; width:400px;"&gt;
&lt;div style="margin-top:30px; background-color:#900; height:50px;"&gt;margin-top:30px; background-color:#900; height:50px;&lt;/div&gt;
&lt;/div&gt;
</pre>
<p>你以为会是这样：<br />
<img src="/attachments/month_0812/32008125152325.gif" alt="" /><br />
结果确是这样：<br />
<img alt="" src="/attachments/month_0812/62008125152352.gif" /></p>
<blockquote><p>
<strong>边界重叠</strong>是指两个或多个盒子(可能相邻也可能嵌套)的相邻边界(其间没有任何非空内容、补白、边框)重合在一起而形成一个单一边界。<br />
常规流中两个或多个块级盒子的垂直相邻边界会重合。结果的边界宽度是相邻边界宽度中最大的值。如果出现负边界，则在最大的正边界中减去绝对值最大的负边界。如果没有正边界，则从零中减去绝对值最大的负边界。注意：相邻的盒子可能并非是由父子关系或同胞关系的元素生成。<br />
但是边界的重叠也有例外情况：</p>
<ul>
<li>
    水平边界永远不会重叠。
    </li>
<li>
    浮动盒子、绝对定位盒子、内联块盒子、根盒子的边界永不重叠。
    </li>
<li>
    overflow属性不等于visible的元素与它的非浮动子元素之间边界不发生重叠。
    </li>
</ul>
</blockquote>
<p>常规流中两个或多个块级盒子的垂直相邻边界会重合。结果的边界宽度是相邻边界宽度中最大的值。<br />
<img src="/attachments/month_0812/52008125153351.gif" alt="" /><br />
如果出现负边界，则在最大的正边界中减去绝对值最大的负边界。<br />
<img src="/attachments/month_0812/b2008125153745.gif" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://foxling.org/html-css-xml/css-margin-overlapping/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSS Reset，CSS初始化处理</title>
		<link>http://foxling.org/html-css-xml/css-reset/</link>
		<comments>http://foxling.org/html-css-xml/css-reset/#comments</comments>
		<pubDate>Fri, 14 Nov 2008 10:22:25 +0000</pubDate>
		<dc:creator>FoxLing</dc:creator>
				<category><![CDATA[HTML/CSS/XML]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[Reset]]></category>

		<guid isPermaLink="false">http://wp.foxling.cn/as-flex-air/css-reset/</guid>
		<description><![CDATA[由于各种浏览器对元素默认属性的定义不同，可能导致页面所有差异，于是，CSS Reset出现了。 对各种元素的CSS属性进行重定义，达到各种浏览器无差异的效果。 body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre, form,fieldset,input,textarea,p,blockquote,th,td{ padding: 0; margin: 0; } table { border-collapse: collapse; border-spacing: 0; } fieldset,img { border: 0; } address,caption,cite,code,dfn,em,strong,th,var { font-weight: normal; font-style: normal; } ol,ul { list-style: none; } caption,th { text-align: left; } h1,h2,h3,h4,h5,h6 { font-weight: normal; font-size: 100%; } q:before,q:after { content:&#39;&#39;; } abbr,acronym { border: 0; }]]></description>
			<content:encoded><![CDATA[<p>由于各种浏览器对元素默认属性的定义不同，可能导致页面所有差异，于是，CSS Reset出现了。<br />
对各种元素的CSS属性进行重定义，达到各种浏览器无差异的效果。</p>
<pre>
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,
form,fieldset,input,textarea,p,blockquote,th,td{
padding: 0;
margin: 0;
}

table {
border-collapse: collapse;
border-spacing: 0;
}

fieldset,img {
border: 0;
}

address,caption,cite,code,dfn,em,strong,th,var {
font-weight: normal;
font-style: normal;
}

ol,ul {
list-style: none;
}

caption,th {
text-align: left;
}

h1,h2,h3,h4,h5,h6 {
font-weight: normal;
font-size: 100%;
}

q:before,q:after {
content:&#39;&#39;;
}

abbr,acronym {
border: 0;
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://foxling.org/html-css-xml/css-reset/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>各种浏览器CSS选择符的支持情况</title>
		<link>http://foxling.org/html-css-xml/css-selectors/</link>
		<comments>http://foxling.org/html-css-xml/css-selectors/#comments</comments>
		<pubDate>Thu, 06 Nov 2008 15:23:21 +0000</pubDate>
		<dc:creator>FoxLing</dc:creator>
				<category><![CDATA[HTML/CSS/XML]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[浏览器]]></category>
		<category><![CDATA[选择符]]></category>

		<guid isPermaLink="false">http://wp.foxling.cn/as-flex-air/css-selectors/</guid>
		<description><![CDATA[加入了Chrome的支持情况 包含：Safari，Chrome，FireFox3，FireFox2，FireFox1.5，Opera9，IE8，IE7，IE6 另外还有MAC OS支持情况 很全面了，厉害！很好很强大~~ 猛击这个链接看详情： Google Chrome Browser CSS Selector Support]]></description>
			<content:encoded><![CDATA[<p>加入了Chrome的支持情况<br />
包含：Safari，Chrome，FireFox3，FireFox2，FireFox1.5，Opera9，IE8，IE7，IE6<br />
另外还有MAC OS支持情况<br />
很全面了，厉害！很好很强大~~</p>
<p><img src="/attachments/month_0901/7200911521515.gif" border="0" alt=""/></p>
<p>猛击这个链接看详情：<br />
<a target="_blank" href="http://www.evotech.net/blog/2008/09/google-chrome-browser-css-selector-support/">Google Chrome Browser CSS Selector Support</a></p>
]]></content:encoded>
			<wfw:commentRss>http://foxling.org/html-css-xml/css-selectors/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSS实现星级评分效果</title>
		<link>http://foxling.org/html-css-xml/css-star-grade/</link>
		<comments>http://foxling.org/html-css-xml/css-star-grade/#comments</comments>
		<pubDate>Mon, 03 Nov 2008 17:13:19 +0000</pubDate>
		<dc:creator>FoxLing</dc:creator>
				<category><![CDATA[HTML/CSS/XML]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[星级评分]]></category>

		<guid isPermaLink="false">http://wp.foxling.cn/as-flex-air/css-star-grade/</guid>
		<description><![CDATA[利用z-index和相对定位，自己看例子去琢磨： /examples/star.html HTML+CSS代码： &#60;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&#62; &#60;html xmlns="http://www.w3.org/1999/xhtml"&#62; &#60;head&#62; &#60;meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&#62; &#60;title&#62;CSS实现星级评分&#60;/title&#62; &#60;style type="text/css"&#62; ul,li {margin:0; padding:0; list-style:none;} #star {position:relative;width:95px;height:19px;overflow:hidden;} #star li {display:inline;} #star {background:url(images/star.png);} #star_1, #star_2, #star_3, #star_4, #star_5, #current {position:absolute; top:0; left:0; display:block; height:19px; text-indent:-9999px; outline:none;} #current {background:url(images/star.png) 0 -19px;} #star_1:hover, #star_2:hover, #star_3:hover, #star_4:hover, #star_5:hover [...]]]></description>
			<content:encoded><![CDATA[<p>利用z-index和相对定位，自己看例子去琢磨：<br />
<a target="_blank" href="/examples/star.html">/examples/star.html</a></p>
<p>HTML+CSS代码：</p>
<pre>
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&gt;
&lt;title&gt;CSS实现星级评分&lt;/title&gt;
&lt;style type="text/css"&gt;
ul,li {margin:0; padding:0; list-style:none;}
#star {position:relative;width:95px;height:19px;overflow:hidden;}
#star li {display:inline;}

#star {background:url(images/star.png);}
#star_1,
#star_2,
#star_3,
#star_4,
#star_5,
#current {position:absolute; top:0; left:0; display:block; height:19px; text-indent:-9999px; outline:none;}
#current {background:url(images/star.png) 0 -19px;}
#star_1:hover,
#star_2:hover,
#star_3:hover,
#star_4:hover,
#star_5:hover {background:url(images/star.png) 0 -38px;}
#star_1 {width:20%; z-index:5;}
#star_2 {width:40%; z-index:4;}
#star_3 {width:60%; z-index:3;}
#star_4 {width:80%; z-index:2;}
#star_5 {width:100%; z-index:1;}
&lt;/style&gt;
&lt;/head&gt;

&lt;body&gt;
&lt;h1&gt;请评分(当前2.5分)：&lt;/h1&gt;
&lt;ul id="star"&gt;
	&lt;li&gt;&lt;a href="#" title="当前得分：2.5分" id="current" style="width:50%;"&gt;当前得分：2.5分&lt;/a&gt;&lt;/li&gt;

	&lt;li&gt;&lt;a href="#" title="1分" id="star_1"&gt;1分&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="#" title="2分" id="star_2"&gt;2分&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="#" title="3分" id="star_3"&gt;3分&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="#" title="4分" id="star_4"&gt;4分&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="#" title="5分" id="star_5"&gt;5分&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/body&gt;

&lt;/html&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://foxling.org/html-css-xml/css-star-grade/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>[CSS3]多背景图片设置 &#8211; multiple-backgrounds</title>
		<link>http://foxling.org/html-css-xml/css3-multiple-backgrounds/</link>
		<comments>http://foxling.org/html-css-xml/css3-multiple-backgrounds/#comments</comments>
		<pubDate>Wed, 22 Oct 2008 15:52:09 +0000</pubDate>
		<dc:creator>FoxLing</dc:creator>
				<category><![CDATA[HTML/CSS/XML]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[multiple-backgrounds]]></category>
		<category><![CDATA[多背景]]></category>

		<guid isPermaLink="false">http://wp.foxling.cn/as-flex-air/multiple-backgrounds/</guid>
		<description><![CDATA[一个宽为400px的自适应高度的BOX，在Safari下浏览哦（目前只有Safari支持该属性） Demo:/examples/multiple-backgrounds.html background-image: w1,…wM, w1,…wM, w1,… /* N values */ background-repeat: x1,…xR, x1,…xR, x1,… /* N values */ background-size: y1,…yS, y1,…yS, y1,… /* N values */ background-position: s1,…rP, s1,…rP,… /* N values */ 你可以这么写： background: url(images/multiple_bg.png) left top no-repeat, url(images/multiple_bg.png) -400px bottom no-repeat, url(images/multiple_bg.png) -800px top repeat-y; 也可以这么写： background-image: url(images/multiple_bg.png), url(images/multiple_bg.png), url(images/multiple_bg.png); background-position: left top, [...]]]></description>
			<content:encoded><![CDATA[<p>一个宽为400px的自适应高度的BOX，在Safari下浏览哦（目前只有Safari支持该属性）<br />
<a target="_blank" href="/examples/multiple-backgrounds.html">Demo:/examples/multiple-backgrounds.html</a></p>
<pre>
background-image: w1,…wM, w1,…wM, w1,… /* N values */
background-repeat: x1,…xR, x1,…xR, x1,… /* N values */
background-size: y1,…yS, y1,…yS, y1,… /* N values */
background-position: s1,…rP, s1,…rP,… /* N values */ </pre>
<p>你可以这么写：</p>
<pre>
background: url(images/multiple_bg.png) left top no-repeat,
url(images/multiple_bg.png) -400px bottom no-repeat,
url(images/multiple_bg.png) -800px top repeat-y;
</pre>
<p>也可以这么写：</p>
<pre>
background-image: url(images/multiple_bg.png), url(images/multiple_bg.png), url(images/multiple_bg.png);
background-position: left top, -400px bottom, -800px top;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://foxling.org/html-css-xml/css3-multiple-backgrounds/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Button在IE下的padding</title>
		<link>http://foxling.org/html-css-xml/button-padding/</link>
		<comments>http://foxling.org/html-css-xml/button-padding/#comments</comments>
		<pubDate>Tue, 21 Oct 2008 21:17:04 +0000</pubDate>
		<dc:creator>FoxLing</dc:creator>
				<category><![CDATA[HTML/CSS/XML]]></category>
		<category><![CDATA[css]]></category>

		<guid isPermaLink="false">http://wp.foxling.cn/as-flex-air/42/</guid>
		<description><![CDATA[.btn_default_1 {border:3px double #F90; height:25px;line-height:18px;padding:0 10px;font-size:12px; background-color:#FFF;cursor:pointer;-moz-background-clip:padding;} 在padding:0 10px的情况下，里面硬是多出了1px的白边，真是百思不得其解，Google,Baidu了一下也没找到什么结果&#8230;. 有空再研究，有朋友知道的请指教啊]]></description>
			<content:encoded><![CDATA[<p><img src="/attachments/month_0810/420081021211454.png" border="0" alt=""/></p>
<pre>
.btn_default_1 {border:3px double #F90; height:25px;line-height:18px;padding:0 10px;font-size:12px; background-color:#FFF;cursor:pointer;-moz-background-clip:padding;}
</pre>
<p>在padding:0 10px的情况下，里面硬是多出了1px的白边，真是百思不得其解，Google,Baidu了一下也没找到什么结果&#8230;.</p>
<p>有空再研究，有朋友知道的请指教啊</p>
]]></content:encoded>
			<wfw:commentRss>http://foxling.org/html-css-xml/button-padding/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSS3的background-clip和background-origin</title>
		<link>http://foxling.org/html-css-xml/css3-background-clip-and-background-origin/</link>
		<comments>http://foxling.org/html-css-xml/css3-background-clip-and-background-origin/#comments</comments>
		<pubDate>Tue, 21 Oct 2008 12:55:51 +0000</pubDate>
		<dc:creator>FoxLing</dc:creator>
				<category><![CDATA[HTML/CSS/XML]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[背景定位]]></category>

		<guid isPermaLink="false">http://wp.foxling.cn/as-flex-air/background-clip-and-background-origin/</guid>
		<description><![CDATA[background-clip 和 background-origin 是 CSS3 中新加的 background module 属性，用来确定背景的定位。 background-clip 用来判断 background 是否包含 border 区域。而 background-origin 用来决定 background-position 计算的参考位置。 background-clip: [border &#124; padding] [, [border &#124; padding]] background-origin: [border &#124; padding &#124; content] [, [border &#124; padding &#124; content]] 对于 background-clip： 如果是 padding 值，则 background 忽略 padding边缘，border 是透明的。如果是 border 值，则background 包括 border 区域。如果 background-image 图片有多个，对应的 [...]]]></description>
			<content:encoded><![CDATA[<p>background-clip 和 background-origin 是 CSS3 中新加的 background module 属性，用来确定背景的定位。</p>
<p>background-clip 用来判断 background 是否包含 border 区域。而 background-origin 用来决定 background-position 计算的参考位置。</p>
<p><img src="/attachments/month_0810/a20081021211147.png" border="0" alt=""/></p>
<pre>
background-clip: [border | padding] [, [border | padding]]
background-origin: [border | padding | content] [, [border | padding | content]]
</pre>
<p>对于 background-clip：<br />
如果是 padding 值，则 background 忽略 padding边缘，border 是透明的。如果是 border 值，则background 包括 border 区域。如果 background-image 图片有多个，对应的 background-clip 值之间用逗号分隔。</p>
<p>对于 background-origin：<br />
如果是 padding 值，则 position 相对于 padding 边缘（&#34;0 0&#34; 为 padding 边缘的左上角，而 &#34;100% 100%&#34; 为右下角）。如果是 border 值，则意味着相对 border 边缘。而 border 值则相对于内容边缘。与 background-clip 相同，多个值也用逗号分隔。如果 background-clip 是 padding 值，background-origin 是 border 值，并且 background-position 是 &#34;top left&#34;（默认初始值），则背景图左上角将会被截取掉部分。</p>
<p>这两个属性仅从 CSS3 才出现，在未使用该属性 background module 中的默认表现又如何呢？</p>
<p>background-clip 默认类似于 background-clip:border。<br />
background-origin 默认类似于 background-origin:padding。</p>
<p>但 IE 又是特例 （It sucks）。</p>
<p>在 IE6 、IE7 中，一般元素（button 等除外）的背景相当于：background-clip:border; ackground-origin:border;<br />
而 hasLayout 的元素（加上 button 等）的背景则相当于：background-clip:padding; background-origin:padding;</p>
<p>这一对 CSS3 属性已在 Mozilla, Safari 3 和 Konqueror 等浏览器中实现，不过都是通过其私有属性的表达方式。</p>
<blockquote><p>基本非 IE 的浏览器的私有属性一般都会以 -xxx- 这样开始，-o-就是以 Presto 为引擎的 Opera 私有的、-icab- 是 iCab 私有的，-khtml- 是以 KHTML 为引擎的浏览器（如 Konqueror Safari）、-moz- 就是以 Mozilla 的 Gecko 为引擎的浏览器（如Firefox，Mozilla）、-webkit- 就是以 Webkit 渲染引擎（是 KHTML 的衍生产品）的浏览器（如 Safari、Swift）。</p>
<p>即支持的私有属性分别为：</p>
<p>moz-background-clip<br />
webkit-background-clip<br />
khtml-background-clip<br />
moz-background-origin<br />
webkit-background-origin<br />
khtml-background-origin</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://foxling.org/html-css-xml/css3-background-clip-and-background-origin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IE伟大的haslayout</title>
		<link>http://foxling.org/html-css-xml/ie-haslayout/</link>
		<comments>http://foxling.org/html-css-xml/ie-haslayout/#comments</comments>
		<pubDate>Tue, 19 Aug 2008 11:44:50 +0000</pubDate>
		<dc:creator>FoxLing</dc:creator>
				<category><![CDATA[HTML/CSS/XML]]></category>
		<category><![CDATA[haslayout]]></category>
		<category><![CDATA[IE]]></category>

		<guid isPermaLink="false">http://wp.foxling.cn/as-flex-air/ie-haslayout/</guid>
		<description><![CDATA[有时候，你会发现，在缩小窗口或者拖选内容，又或者拉动滚动条的时候，奇怪的情况发生了： 恭喜你，你终于碰到了所谓的haslayout问题 何为Haslayout： 　　“Layout”是一个 IE/Win 的私有概念，它决定了一个元素如何显示以及约束其包含的内容、如何与其他元素交互和建立联系、如何响应和传递应用程序事件/用户事件等，这有点类似于一个窗体的概念。 　　微软的开发者们认为盒状元素(box-type elements)应该具有一个“属性(property)”(这是面向对象编程中的一个概念)，于是他们便使用了 layout , 也就是 hasLayout。 　　hasLayout 其实既不是一个属性更不是一个行为，而是 IE 这个渲染引擎代代继承一贯拥有的一个渲染概念，在这个概念下渲染的元素将具有一种特性。 　　实际上这种渲染特性在有些 HTML 元素中与身俱来，而在另外一些元素中也可以通过一些 CSS 属性将其触发为 true ，且一旦触发将不可逆转。 　　这真是一个伟大的属性，你经常遭遇到的一些浮动问题，滤镜未生效，背景、边框的渲染问题，都是拜他所赐，这个属性还会导致的问题： Many common IE float bugs. Boxes themselves treating basic properties differently. Margin collapsing between a container and its descendants. Various problems with the construction of lists. Differences in the positioning of [...]]]></description>
			<content:encoded><![CDATA[<p>有时候，你会发现，在缩小窗口或者拖选内容，又或者拉动滚动条的时候，奇怪的情况发生了：</p>
<div align="center"><img src="/attachments/month_0808/o2008819112952.gif" border="0" alt=""/></div>
<p>恭喜你，你终于碰到了所谓的haslayout问题</p>
<p>何为Haslayout：<br />
　　“Layout”是一个 IE/Win 的私有概念，它决定了一个元素如何显示以及约束其包含的内容、如何与其他元素交互和建立联系、如何响应和传递应用程序事件/用户事件等，这有点类似于一个窗体的概念。</p>
<p>　　微软的开发者们认为盒状元素(box-type elements)应该具有一个“属性(property)”(这是面向对象编程中的一个概念)，于是他们便使用了 layout , 也就是 hasLayout。</p>
<p>　　hasLayout 其实既不是一个属性更不是一个行为，而是 IE 这个渲染引擎代代继承一贯拥有的一个渲染概念，在这个概念下渲染的元素将具有一种特性。</p>
<p>　　实际上这种渲染特性在有些 HTML 元素中与身俱来，而在另外一些元素中也可以通过一些 CSS 属性将其触发为 true ，且一旦触发将不可逆转。</p>
<p>　　这真是一个伟大的属性，你经常遭遇到的一些浮动问题，滤镜未生效，背景、边框的渲染问题，都是拜他所赐，这个属性还会导致的问题：</p>
<blockquote><p>Many common IE float bugs.<br />
Boxes themselves treating basic properties differently.<br />
Margin collapsing between a container and its descendants.<br />
Various problems with the construction of lists.<br />
Differences in the positioning of background images.<br />
Differences between browsers when using scripting.</p></blockquote>
<p>IE 很多常见的浮动 bug 。</p>
<ul>
<li>元素本身对一些基本属性的异常处理问题。</li>
<li>容器和其子孙之间的边距重叠(margin collapsing)问题。</li>
<li>使用列表时遇到的诸多问题。</li>
<li>背景图像的定位偏差问题。</li>
<li>使用脚本时遇到的浏览器之间处理不一致的问题。</li>
</ul>
<p>下列元素默认 hasLayout=true</p>
<pre>
&lt;table&gt;
&lt;td&gt;
&lt;body&gt;
&lt;img&gt;
&lt;hr /&gt;
&lt;input&gt;, &lt;select&gt;, &lt;textarea&gt;, &lt;button&gt;
&lt;iframe&gt;, &lt;embed&gt;, &lt;object&gt;, &lt;applet&gt;
&lt;marquee&gt;
</pre>
<p>haslayout是不能设置的，只能触发，设置下列属性也会导致 hasLayout=true</p>
<blockquote><p>position: absolute<br />
Refers to its containing block, and that&#39;s wh&#101;re some problems begin.</p>
<p>float: left|right<br />
The float model has a lot of quirks due to some aspects of a layout element.</p>
<p>display: inline-block<br />
Sometimes a cure when the element is at inline level and needs layout. Applying layout is probably the only real effect of this property. The “inline-block behaviour” itself can be achieved in IE, but quite independently: IE/Win: inline-block and hasLayout.</p>
<p>width: any value<br />
This is often an implicit fix, more often the trigger when hasLayout does things wrong.</p>
<p>height: any value<br />
height: 1% is used in the Holly Hack.</p>
<p>zoom: any value (MSDN)<br />
MS proprietary, does not validate. zoom: 1 can be used for debugging.</p>
<p>writing-mode: tb-rl (MSDN)<br />
MS proprietary, does not validate.
</p></blockquote>
<p>inline 元素的特殊情况</p>
<blockquote><p>
width and height trigger hasLayout in IE 5.x and IE 6 in quirks mode only. As of IE6, when the browser is in “standards-compliance mode” inline elements will ignore the width and height properties, and setting the width and height properties will not cause the element to have layout.</p></blockquote>
<p>ie5.x和 ie 6 quirk 模式中，设置了 width 或者 height 属性的元素 hasLayout=true。ie 6 standards-compliance mode（标准兼容模式）时，设置了 width 或者 height 属性的元素 hasLayout=false</p>
<blockquote><p>zoom always triggers hasLayout, but it&#39;s not supported in IE5.0.</p></blockquote>
<p>zoom 会导致 hasLayout=true，但 ie 5 不支持该属性。</p>
<p>更详细，更YD的请参阅：<a target="_blank" href="http://forest.blogbus.com/logs/2006/04/2340409.html">http://forest.blogbus.com/logs/2006/04/2340409.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://foxling.org/html-css-xml/ie-haslayout/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

