<?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>Pivot Code &#187; BUG</title>
	<atom:link href="http://www.pivotcode.com/tag/bug/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.pivotcode.com</link>
	<description>欢迎来我的小思想绽放的地方……</description>
	<lastBuildDate>Sun, 30 Oct 2011 13:37:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>IE6固定定位position属性fixed BUG</title>
		<link>http://www.pivotcode.com/ie6-position-fixed-bug/</link>
		<comments>http://www.pivotcode.com/ie6-position-fixed-bug/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 04:53:25 +0000</pubDate>
		<dc:creator>Vidar Liu</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[学习笔记]]></category>
		<category><![CDATA[absolute]]></category>
		<category><![CDATA[BUG]]></category>
		<category><![CDATA[fixed]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[IE6]]></category>
		<category><![CDATA[position]]></category>
		<category><![CDATA[relative]]></category>
		<category><![CDATA[renren]]></category>
		<category><![CDATA[人人网]]></category>
		<category><![CDATA[固定定位]]></category>
		<category><![CDATA[定位]]></category>
		<category><![CDATA[相对定位]]></category>
		<category><![CDATA[绝对定位]]></category>

		<guid isPermaLink="false">http://www.pivotcode.com/?p=430</guid>
		<description><![CDATA[当需要把一个元素永远固定在浏览器的一个位置的时候，那么就需要用到position的fixed属性。然后用top和left设置元素的位置。 这个效果也应用在人人网的个人首页底部的工具栏。 常去人人网的朋友肯定会发现，如果用IE6浏览器访问人人网的话，这个工具条以前是不存在的。后来，人人已经通过js实现此功能，但是它的效果和正常浏览器下访问是不同的，即每当拖动滚动条它就会隐藏，当停止时再出现。所以，值得肯定的是IE6不支持这个position的fixed属性。 这个问题也一直都在困扰着我，因为我一直都在想把这个效果实现在我的一个项目上，而又避开使用javascript。 后来在‘幸福收藏夹’博客，找到了解决方案——利用position:absolute定位在IE6下实现固定定位的效果，以下是实现原理： fixed元素的绝对位置相对于HTML元素，滚动条则是基于body元素而不属于html元素。 当我们拖动滚动条滚动的时候，内容都会随窗口滚动，这时滚动的是body元素。HTML元素被浏览器判定为相对定位的根级元素，而我们定义的position:absolute元素也在HTLML元素当中，属于HTML元素的子元素。因此我们所定义的absolute元素会根据HTML元素的大小而进行绝对定位。如果我们未曾对HTML元素设置样式的情况下，它的大小是随内容的大小而变的,这样一来如果我们在其中使用绝对定位，并不能实现我们想得到的固定定位的效果。因此我们需要给我们需要绝对定位元素的相对定位盒模型指定一个绝对大小，即窗口当前的大小。但是body元素仍需保持其原有大小，否则就没有滚动条了。这时我们需要将超出HTML元素的内容隐藏掉，就可以让HTML元素永远保持在一个固定大小了。 代码如下： html&#123;overflow:hidden;&#125; // Important（必须）。 body&#123;overflow:auto;height:100%&#125; 代码规定了html将只有当前窗口的大小，溢出的内容隐藏。但是body仍会随高度自动变化。于是我们就可以利用position:absolute来把元素固定在窗口任意位置了。例如仿人人网定位元素在底边： 示例的完整代码： &#60;!DOCTYPE html PUBLIC &#34;-//W3C//DTD XHTML 1.0 Transitional//EN&#34; &#34;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&#34;&#62; &#60;html xmlns=&#34;http://www.w3.org/1999/xhtml&#34;&#62; &#60;head&#62; &#60;meta http-equiv=&#34;Content-Type&#34; content=&#34;text/html; charset=utf-8&#34; /&#62; &#60;title&#62;ie6-position-fixed-bug&#60;/title&#62; &#60;style&#62; * { padding:0; margin:0; } html{_overflow:hidden;}/*IE6hack,必须*/ body{height:100%;overflow:auto;} #footer .bottom { width:580px; height:20px; background-color:#ddd; border:1px solid #aaa; position:fixed; _position:absolute;/*IE6hack,必须*/ bottom:0; left:50%; margin-left:-290px; } &#60;/style&#62; [...]]]></description>
			<content:encoded><![CDATA[<p>当需要把一个元素永远固定在浏览器的一个位置的时候，那么就需要用到position的fixed属性。然后用top和left设置元素的位置。</p>
<p>这个效果也应用在人人网的个人首页底部的工具栏。</p>
<p>常去人人网的朋友肯定会发现，如果用IE6浏览器访问人人网的话，这个工具条以前是不存在的。后来，人人已经通过js实现此功能，但是它的效果和正常浏览器下访问是不同的，即每当拖动滚动条它就会隐藏，当停止时再出现。所以，值得肯定的是IE6不支持这个position的fixed属性。</p>
<p>这个问题也一直都在困扰着我，因为我一直都在想把这个效果实现在我的一个项目上，而又避开使用javascript。<br />
<span id="more-430"></span><br />
后来在‘幸福收藏夹’博客，找到了解决方案——利用position:absolute定位在IE6下实现固定定位的效果，以下是实现原理：</p>
<blockquote><p>fixed元素的绝对位置相对于HTML元素，滚动条则是基于body元素而不属于html元素。<br />
当我们拖动滚动条滚动的时候，内容都会随窗口滚动，这时滚动的是body元素。HTML元素被浏览器判定为相对定位的根级元素，而我们定义的position:absolute元素也在HTLML元素当中，属于HTML元素的子元素。因此我们所定义的absolute元素会根据HTML元素的大小而进行绝对定位。如果我们未曾对HTML元素设置样式的情况下，它的大小是随内容的大小而变的,这样一来如果我们在其中使用绝对定位，并不能实现我们想得到的固定定位的效果。因此我们需要给我们需要绝对定位元素的相对定位盒模型指定一个绝对大小，即窗口当前的大小。但是body元素仍需保持其原有大小，否则就没有滚动条了。这时我们需要将超出HTML元素的内容隐藏掉，就可以让HTML元素永远保持在一个固定大小了。</p></blockquote>
<p>代码如下：</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;">html<span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">overflow</span><span style="color: #00AA00;">:</span><span style="color: #993333;">hidden</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span> // Important（必须）。
body<span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">overflow</span><span style="color: #00AA00;">:</span><span style="color: #993333;">auto</span><span style="color: #00AA00;">;</span>height<span style="color: #00AA00;">:</span><span style="color: #933;">100%</span><span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>代码规定了html将只有当前窗口的大小，溢出的内容隐藏。但是body仍会随高度自动变化。于是我们就可以利用position:absolute来把元素固定在窗口任意位置了。例如仿人人网定位元素在底边：</p>
<p><iframe width='580' height='300' src='http://www.pivotcode.com/demo/ie6-position-fixed-bug.html'></iframe></p>
<p>示例的完整代码：</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
&lt;title&gt;ie6-position-fixed-bug&lt;/title&gt;
&lt;style&gt;
* {
	padding:0;
	margin:0;
}
html{_overflow:hidden;}/*IE6hack,必须*/
body{height:100%;overflow:auto;}
#footer .bottom {
	width:580px;
	height:20px;
	background-color:#ddd;
	border:1px solid #aaa;
	position:fixed;
	_position:absolute;/*IE6hack,必须*/
	bottom:0;
	left:50%;
	margin-left:-290px;
}
&lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;div&gt;
&lt;h1&gt;测试定位&lt;/h1&gt;
占位文字
&lt;/div&gt;
&lt;div id=&quot;footer&quot;&gt;
  &lt;div class=&quot;bottom&quot;&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;</pre></div></div>

<p>注：本文参考自幸福收藏夹</p>
<h2  class="related_post_title">相关日志</h2><ul class="related_post"><li><a href="http://www.pivotcode.com/ie-6-overflow-element/" title="也谈IE6下block元素float多出文字BUG">也谈IE6下block元素float多出文字BUG</a></li><li><a href="http://www.pivotcode.com/microsoft-expression-web-3-superpreview/" title="体验篇：Microsoft Expression Web 3 SuperPreview全攻略">体验篇：Microsoft Expression Web 3 SuperPreview全攻略</a></li><li><a href="http://www.pivotcode.com/css-text-shadow/" title="css文字阴影">css文字阴影</a></li><li><a href="http://www.pivotcode.com/ie6-img-max-widht/" title="IE6下图像的最大宽度">IE6下图像的最大宽度</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.pivotcode.com/ie6-position-fixed-bug/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>也谈IE6下block元素float多出文字BUG</title>
		<link>http://www.pivotcode.com/ie-6-overflow-element/</link>
		<comments>http://www.pivotcode.com/ie-6-overflow-element/#comments</comments>
		<pubDate>Tue, 01 Dec 2009 06:28:17 +0000</pubDate>
		<dc:creator>Vidar Liu</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[学习笔记]]></category>
		<category><![CDATA[block]]></category>
		<category><![CDATA[BUG]]></category>
		<category><![CDATA[float]]></category>
		<category><![CDATA[IE6]]></category>
		<category><![CDATA[overflow]]></category>
		<category><![CDATA[溢出]]></category>

		<guid isPermaLink="false">http://mingsenliu.com/?p=113</guid>
		<description><![CDATA[最近做的一个项目经常会用到块级元素（block）浮动定位（float）的方式做的一个类似于BBS文章列表多行多列的布局方案。 我大概看了一下网上对于此种布局的布局办法，发现大多都是用表格来做的。连豆瓣、discuz的论坛也都是表格布局。 但是我对表格的布局有种敬而远之的畏惧感，一个是它的代码量很大，虽然用DW里添加表格的工具很快的添加，但是对于它的自适应元素的问题，我始终难以控制的行云流水。因此，我还是决定用css来做。 我选择用ul元素做列表框架，li元素做列表行，span元素做各列的容器的布局方式实现。 【css部分】 @charset &#34;utf-8&#34;; /* CSS Document */ ul li&#123;margin:0; padding:0; list-style:none; font-size:12px; color:#333&#125;/*初始化ul,li元素，让我们更方便使用*/ ul li&#123;width:800px; height:35px; line-height:35px; border-bottom:1px dashed #ccc&#125;/*定义高35像素的li元素，宽是布局的宽，还定义了一个虚线的下边框*/ ul li span&#123;display:block; float:left; height:35px; line-height:35px;&#125;/*定义span元素为块级元素，左浮动，高为li元素的高*/ &#160; /*分别定义需要的列span元素的宽度*/ ul li span.listOne&#123;width:300px;&#125; ul li span.listTwo&#123;width:200px;&#125; ul li span.listThr&#123;width:100px;&#125; ul li span.listFou&#123;width:100px;&#125; ul li span.listFiv&#123;width:100px;&#125; 【html部分】 &#160; &#160; &#160; &#160; &#160; &#160; &#60;ul&#62; [...]]]></description>
			<content:encoded><![CDATA[<p>最近做的一个项目经常会用到块级元素（block）浮动定位（float）的方式做的一个类似于BBS文章列表多行多列的布局方案。</p>
<p>我大概看了一下网上对于此种布局的布局办法，发现大多都是用表格来做的。连豆瓣、discuz的论坛也都是表格布局。</p>
<p>但是我对表格的布局有种敬而远之的畏惧感，一个是它的代码量很大，虽然用DW里添加表格的工具很快的添加，但是对于它的自适应元素的问题，我始终难以控制的行云流水。因此，我还是决定用css来做。</p>
<p>我选择用ul元素做列表框架，li元素做列表行，span元素做各列的容器的布局方式实现。</p>
<h2>【css部分】</h2>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #a1a100;">@charset &quot;utf-8&quot;;</span>
<span style="color: #808080; font-style: italic;">/* CSS Document */</span>
ul li<span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span> <span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span> <span style="color: #000000; font-weight: bold;">list-style</span><span style="color: #00AA00;">:</span><span style="color: #993333;">none</span><span style="color: #00AA00;">;</span> <span style="color: #000000; font-weight: bold;">font-size</span><span style="color: #00AA00;">:</span><span style="color: #933;">12px</span><span style="color: #00AA00;">;</span> <span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#333</span><span style="color: #00AA00;">&#125;</span><span style="color: #808080; font-style: italic;">/*初始化ul,li元素，让我们更方便使用*/</span>
ul li<span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">800px</span><span style="color: #00AA00;">;</span> <span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span><span style="color: #933;">35px</span><span style="color: #00AA00;">;</span> <span style="color: #000000; font-weight: bold;">line-height</span><span style="color: #00AA00;">:</span><span style="color: #933;">35px</span><span style="color: #00AA00;">;</span> <span style="color: #000000; font-weight: bold;">border-bottom</span><span style="color: #00AA00;">:</span><span style="color: #933;">1px</span> <span style="color: #993333;">dashed</span> <span style="color: #cc00cc;">#ccc</span><span style="color: #00AA00;">&#125;</span><span style="color: #808080; font-style: italic;">/*定义高35像素的li元素，宽是布局的宽，还定义了一个虚线的下边框*/</span>
ul li span<span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">display</span><span style="color: #00AA00;">:</span><span style="color: #993333;">block</span><span style="color: #00AA00;">;</span> <span style="color: #000000; font-weight: bold;">float</span><span style="color: #00AA00;">:</span><span style="color: #000000; font-weight: bold;">left</span><span style="color: #00AA00;">;</span> <span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span><span style="color: #933;">35px</span><span style="color: #00AA00;">;</span> <span style="color: #000000; font-weight: bold;">line-height</span><span style="color: #00AA00;">:</span><span style="color: #933;">35px</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span><span style="color: #808080; font-style: italic;">/*定义span元素为块级元素，左浮动，高为li元素的高*/</span>
&nbsp;
<span style="color: #808080; font-style: italic;">/*分别定义需要的列span元素的宽度*/</span>
ul li span<span style="color: #6666ff;">.listOne</span><span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">300px</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
ul li span<span style="color: #6666ff;">.listTwo</span><span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">200px</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
ul li span<span style="color: #6666ff;">.listThr</span><span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">100px</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
ul li span<span style="color: #6666ff;">.listFou</span><span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">100px</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span>
ul li span<span style="color: #6666ff;">.listFiv</span><span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">100px</span><span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span></pre></div></div>

<h2>【html部分】</h2>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&nbsp;
&nbsp;
&nbsp;
&nbsp;
&nbsp;
&nbsp;
&lt;ul&gt;
&nbsp;
	&lt;li&gt;
&lt;span&gt;帖子列表&lt;/span&gt;
&lt;span&gt;帖子分类&lt;/span&gt;
&lt;span&gt;发布者&lt;/span&gt;
&lt;span&gt;最后回复&lt;/span&gt;
&lt;span&gt;发布时间&lt;/span&gt;&lt;/li&gt;
&nbsp;
&nbsp;
	&lt;li&gt;
&lt;span&gt;&lt;a href=&quot;#&quot;&gt;这里是帖子标题&lt;/a&gt;&lt;/span&gt;
&lt;span&gt;&lt;a href=&quot;#&quot;&gt;这里是帖子分类&lt;/a&gt;&lt;/span&gt;
&lt;span&gt;&lt;a href=&quot;#&quot;&gt;发布者姓名&lt;/a&gt;&lt;/span&gt;
&lt;span&gt;回复者姓名&lt;/span&gt;
&lt;span&gt;2009-10-10 20：10&lt;/span&gt;&lt;/li&gt;
&nbsp;
&lt;/ul&gt;</pre></div></div>

<p>这样，如果在IE6+浏览器看的话，会是预想的两行5列的效果，没有任何问题。但是，如果在IE6下看，右侧会多出最后一列中的末字到下一行，如图所示</p>
<p><a href="http://mingsenliu.com/wp-content/uploads/2009/12/overflow.jpg" target="_blank"><img class="aligncenter size-full wp-image-133" title="overflow" src="http://mingsenliu.com/wp-content/uploads/2009/12/overflow.jpg" alt="overflow" width="456" height="89" /></a></p>
<p>代码是没有任何问题的，因为在其他浏览器没有任何问题。所以那肯定是IE6的问题。</p>
<p>以前没有用过此种布局，因此并没有过处理此问题的经验。后来去往上搜了一下，往上大多都是出自同门师傅的答案，内容如下：</p>
<p>“1.是注释引起的,删除所有注释即可.<br />
2.hidden的input直接放在form下.<br />
3.display为none的div也有可能引发此bug.<br />
2,3可以通过外面再包一次DIV解决”</p>
<p>另外有一篇很详细的解说，但是他是通过宽度的调整解决的我没有尝试，有兴趣的可以试一下，奉上地址如下：<br />
<span style="color: #99cc00;">《IE6/IE7文字溢出bug原因及解决办法》</span><a href="http://www.yarak.net.cn/default.asp?id=82">http://www.yarak.net.cn/default.asp?id=82</a><br />
后来问了一下同事，他对此问题有过相应经验，不过他所知道的答案也是网上流传的方式。但是我的代码里并没有注释和以上类似的任何条件。<br />
后经尝试，得出以下方案：<br />
<span style="color: #ff0000;">1、在span的父元素上定义溢出隐藏overflow：hidden;可以解决此问题。</span><br />
<span style="color: #ff0000;">2、span元素在html中书写时不进行换行（块级元素的特性）</span><br />
<span style="color: #ff0000;">3、span元素去掉浮动（float）并把显示方式改成display：inline-block</span><br />
<span style="color: #000000;">如此，溢出BUG问题解决</span></p>
<h2  class="related_post_title">相关日志</h2><ul class="related_post"><li><a href="http://www.pivotcode.com/ie6-img-max-widht/" title="IE6下图像的最大宽度">IE6下图像的最大宽度</a></li><li><a href="http://www.pivotcode.com/css-five-common-functions/" title="CSS五个常见却不常用的属性">CSS五个常见却不常用的属性</a></li><li><a href="http://www.pivotcode.com/ie6-position-fixed-bug/" title="IE6固定定位position属性fixed BUG">IE6固定定位position属性fixed BUG</a></li><li><a href="http://www.pivotcode.com/css-text-shadow/" title="css文字阴影">css文字阴影</a></li><li><a href="http://www.pivotcode.com/cssimg-position-vote/" title="CSS结合单图定位制作的一个漂亮的投票应用">CSS结合单图定位制作的一个漂亮的投票应用</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.pivotcode.com/ie-6-overflow-element/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

