<?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>焦秋野 &#124; 关注网站设计,前端资讯,用户体验,SEO,网站设计 &#187; bug</title>
	<atom:link href="http://www.imjqy.com/tag/bug/feed" rel="self" type="application/rss+xml" />
	<link>http://www.imjqy.com</link>
	<description></description>
	<lastBuildDate>Wed, 01 Feb 2012 00:17:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>10个修正IE6的bug的技巧</title>
		<link>http://www.imjqy.com/cssxhtml/10iebug</link>
		<comments>http://www.imjqy.com/cssxhtml/10iebug#comments</comments>
		<pubDate>Mon, 15 Feb 2010 05:18:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CSS+xHtml]]></category>
		<category><![CDATA[FrontNews]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[IE]]></category>
		<category><![CDATA[IE6]]></category>
		<category><![CDATA[技巧]]></category>

		<guid isPermaLink="false">http://www.imjqy.com/?p=110</guid>
		<description><![CDATA[我们知道，IE6可能过不了多久就会消失了，但是我们还能继续支持这个浏览器并且避免hack和有约束的CSS吗？这里是10个使用有效的HTML和CSS代码来修正IE6主要问题的方法。 1. 使用DOCTYPE 你应该在一直每个HTML文件的头部都使用DOCTYPE，并且我们推荐使用strict 版本，比如： &#60;!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01//EN” “http://www.w3.org/TR/html4/strict.dtd”&#62; 或者，对于XHTML使用: &#60;!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Strict//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”&#62; 2. 设置position: relative 将一个元素设置为”position:relative”可以解决很多问题，特别是你曾经遇到隐藏的或对齐诡异的盒子。显然，你需要非常小心点儿，因为绝对定位的子节点可能会因此重新定位。 3. 将浮动元素设置为display:inline 具有margin属性的浮动元素可能引起著名的IE6双倍margin问题，比如，你为一个元素指定margin-left为5px，但是IE6中实际上却表现为10px。”display:inline”将解决这个问题，尽管这不是必须的，你的CSS仍然是有效的。 4. 将一个元素设置为hasLayout 很多IE6(和IE7)的渲染问题可以通过设置元素的hasLayout来解决。 这是一个IE内部属性（IE隐藏的，更多关于haslayout的资料，可以参阅这里），用来确定相对于其他元素，内容是如何布局和定位的。如果你需要设置一个inline元素(比如一个链接)为block元素，或者是应用透明效果，设置hasLayout也可能是必须的。 最简单的设置hasLayout的方法是为CSS设置一个高度或宽度（zoom也可以用，但是zoom并不是CSS标准的一部分）。我们推荐设置实际尺寸，但是问题是这是不现实的，你可能需要使用”height:1%”。如果父元素并没有设置高度，该元素的实际高度并不受影响，而且这个时候hasLayout已经被启用。 5. 修正重复文字bug 复杂的布局可以触发在浮动元素的最后一些字符可能出现在出现在清除元素下面的bug。这里有几个解决方法，有些是完美的，但是做一些反复试验也是必须的： 确保所有的元素使用”display:inline;” 在最后一个元素上使用一个”margin-right:-3px;” 为浮动元素的最后一个条目使用一个条件注释，比如：    &#60;!&#8211;[if &#8230; <a href="http://www.imjqy.com/cssxhtml/10iebug">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.imjqy.com/wp-content/uploads/2010/02/howtofixie1.jpg"><img class="alignleft size-full wp-image-114" title="howtofixie" src="http://www.imjqy.com/wp-content/uploads/2010/02/howtofixie1.jpg" alt="" width="114" height="114" /></a>我们知道，IE6可能过不了多久就会消失了，但是我们还能继续支持这个浏览器并且避免hack和有约束的CSS吗？这里是10个使用有效的HTML和CSS代码来修正IE6主要问题的方法。<br />
<strong>1. 使用DOCTYPE</strong><br />
你应该在一直每个HTML文件的头部都使用DOCTYPE，并且我们推荐使用strict 版本，比如：</p>
<p><span style="color: #00ccff;">&lt;!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01//EN” “http://www.w3.org/TR/html4/strict.dtd”&gt;</span></p>
<p>或者，对于XHTML使用:</p>
<p><span style="color: #00ccff;">&lt;!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Strict//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”&gt;</span></p>
<p><span style="color: #00ccff;"><span id="more-110"></span></span></p>
<p><strong>2. 设置position: relative</strong><br />
将一个元素设置为”position:relative”可以解决很多问题，特别是你曾经遇到隐藏的或对齐诡异的盒子。显然，你需要非常小心点儿，因为绝对定位的子节点可能会因此重新定位。</p>
<p><strong>3. 将浮动元素设置为display:inline</strong><br />
具有margin属性的浮动元素可能引起著名的IE6双倍margin问题，比如，你为一个元素指定margin-left为5px，但是IE6中实际上却表现为10px。”display:inline”将解决这个问题，尽管这不是必须的，你的CSS仍然是有效的。</p>
<p><strong>4. 将一个元素设置为hasLayout</strong><br />
很多IE6(和IE7)的渲染问题可以通过设置元素的hasLayout来解决。 这是一个IE内部属性（IE隐藏的，更多关于haslayout的资料，可以参阅这里），用来确定相对于其他元素，内容是如何布局和定位的。如果你需要设置一个inline元素(比如一个链接)为block元素，或者是应用透明效果，设置hasLayout也可能是必须的。</p>
<p>最简单的设置hasLayout的方法是为CSS设置一个高度或宽度（zoom也可以用，但是zoom并不是CSS标准的一部分）。我们推荐设置实际尺寸，但是问题是这是不现实的，你可能需要使用”height:1%”。如果父元素并没有设置高度，该元素的实际高度并不受影响，而且这个时候hasLayout已经被启用。</p>
<p><strong>5. 修正重复文字bug</strong><br />
复杂的布局可以触发在浮动元素的最后一些字符可能出现在出现在清除元素下面的bug。这里有几个解决方法，有些是完美的，但是做一些反复试验也是必须的：</p>
<p>确保所有的元素使用”display:inline;”<br />
在最后一个元素上使用一个”margin-right:-3px;”<br />
为浮动元素的最后一个条目使用一个条件注释，比如：<br />
<span style="color: #00ccff;">   &lt;!&#8211;[if !IE]&gt;Put your commentary in here&#8230;&lt;![endif]&#8211;&gt;</span></p>
<p>在容器的最后元素使用一个空的div(它也有必要设置宽度为90%或类似宽度。)<br />
访问 positioniseverything.net 查看该问题的完整介绍。</p>
<p><strong>6. 在可点击和悬停的元素上只使用&lt;a&gt;标签</strong><br />
IE6只认识对a标签的CSS hover效果。</p>
<p>你也可以在基于JavaScript的组件内使用他们来控制，以使他们保持键盘的可操作性。是有一些可替代的选择，但是&lt;a&gt;标签比其它方案更可靠。</p>
<p><strong>7. 使用!important 或高级选择器来区分IE6</strong><br />
不使用传统Hack或在额外文件中的条件CSS的方法，写出特别针对IE6的可行的代码也还是有可能的。比如最小高度可以通过这段代码来定义：</p>
<p><span style="color: #00ccff;">#element<br />
{<br />
 min-height: 20em;<br />
 height: auto !important; /* 所有浏览器都理解这段代码 */<br />
 height: 20em; /* IE6 错误的使用这个值 /*<br />
}</span></p>
<p>IE6 不理解min-height并错误的用20em覆盖”auto”高度，但是，如果内容需要更多的空间的话，它会自动增加高度。</p>
<p>另外一个可选的方法是使用高级选择器，比如e.g.<br />
<span style="color: #99cc00;"> <span style="color: #00ccff;">#element {<br />
 min-height: 20em;<br />
 height: 20em;<br />
}<br />
 <br />
/* IE6 无视下面的代码*/<br />
#element[id] {<br />
  height: auto;<br />
}</span></span></p>
<p><strong>8. 避免百分比单位</strong><br />
百分比会把IE搞糊涂的。除非你可以确切的控制每一个父元素的大小，才可能做到最佳预防。你可以通过!important在其他浏览器中继续使用百分比，比如：<br />
 <span style="color: #00ccff;">body {<br />
 margin: 2% 0 !important;<br />
 margin: 20px 0; /* IE6 only */<br />
}</span></p>
<p><strong>9. 尽早测试并不断测试</strong><br />
不要等到你的网站或应用完成了才测试IE6;这样的话问题可能更糟糕，而且会花更多时间来修正。如果你的网站能够在Firefox和IE6中正常运行，那么一般在其它浏览器就不会有问题。</p>
<p><strong>10. 重构你的代码<br />
</strong>经常发生的事情是，修正bug要比重新考虑一个布局问题要花更长的时间。对HTML做些小改动和一些简单的CSS常常更有效。这可能意味着你要放弃完美的代码，但是会出现较少的长期问题而且将来你会很清楚如果处理这些可能出现的问题。<br />
原文：<span style="color: #00ccff;">http://www.qianduan.net/?p=6190</span><br />
译自：<span style="color: #00ccff;">www.sitepoint.com</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.imjqy.com/cssxhtml/10iebug/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

