<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[Heck's  Blog]]></title> 
<link>https://www.heckjj.com/index.php</link> 
<description><![CDATA[一瞬间的决定，往往可以改变很多，事实上，让自己成功的往往不是知识，是精神！ 如果你总是为自己找借口，那只好让成功推迟。执行力，今天！]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[Heck's  Blog]]></copyright>
<item>
<link>https://www.heckjj.com/css-bug-compatible-html/</link>
<title><![CDATA[浏览器CSS BUG兼容汇总]]></title> 
<author>Heck &lt;@hecks.tk&gt;</author>
<category><![CDATA[前端开发]]></category>
<pubDate>Fri, 10 Sep 2010 13:08:19 +0000</pubDate> 
<guid>https://www.heckjj.com/css-bug-compatible-html/</guid> 
<description>
<![CDATA[ 
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="font-family: 微软雅黑;">有关于浏览器CSS BUG的一些兼容问题和具体案例总结如下，供自己以后查看，也分享给大家，以便大家节约学习和工作的时间，如果你有什么好的方法对浏览器兼容方面，那么也请你和大家一起分享下。<br/><br/><strong>1.div的垂直居中问题 </strong><br/>vertical-align:middle; 将行距增加到和整个DIV一样高 line-height:200px; 然后插入文字，就垂直居中了。缺点是要控制内容不要换行。<br/><br/><strong>2. margin加倍的问题</strong><br/>设置为float的div在ie下设置的margin会加倍。这是一个ie6都存在的bug。 <br/>解决方案是在这个div里面加上display:inline;&nbsp;&nbsp;</span><span style="font-family: 微软雅黑;"><br/>例如： <br/>&lt;#div&gt;<br/>相应的css为</span> <br/><textarea name="code" class="css" rows="15" cols="100">#IamFloat 
&#123; 
&nbsp;&nbsp; float:left; margin:5px;/*IE下理解为10px*/ 
&nbsp;&nbsp; display:inline;/*IE下再理解为5px*/ 
&#125;</textarea><br/><strong>3.浮动ie产生的双倍距离</strong><br/><textarea name="code" class="css" rows="15" cols="100">#box
&#123; 
&nbsp;&nbsp; float:left; width:100px; margin:0 0 0 100px; //这种情况之下IE会产生200px的距离 display:inline; //使浮动忽略 
&#125; </textarea><br/>这里细说一下block与inline两个元素： <br/>block元素的特点是,总是在新行上开始,高度,宽度,行高,边距都可以控制(块元素); <br/>Inline元素的特点是,和其他元素在同一行上,不可控制(内嵌元素);<textarea name="code" class="css" rows="15" cols="100">&nbsp;&nbsp;
#box 
&#123; 
&nbsp;&nbsp;&nbsp;&nbsp;display:block; //可以为内嵌元素模拟为块元素 
&nbsp;&nbsp;&nbsp;&nbsp;display:inline; //实现同一行排列的效果 
&nbsp;&nbsp;&nbsp;&nbsp;diplay:table; 
&#125;</textarea><br/><strong>4 IE与宽度和高度的问题 </strong><br/>IE 不认得min-这个定义，但实际上它把正常的width和height当作有min的情况来使。这样问题就大了，如果只用宽度和高度，正常的浏览器里这两 个值就不会变，如果只用min-width和min-height的话，IE下面根本等于没有设置宽度和高度。&nbsp;&nbsp;&nbsp;&nbsp; <br/>比如要设置背景图片，这个宽度是比较重要的。 <br/>要解决这个问题，可以这样：<textarea name="code" class="css" rows="15" cols="100">&nbsp;&nbsp;&nbsp;&nbsp; 
#box&#123; width: 80px; height: 35px;&#125; 
html&gt;body #box 
&#123; 
&nbsp;&nbsp; width: auto; height: auto; min-width: 80px; min-height: 35px; 
&#125;</textarea><br/><strong>5.页面的最小宽度&nbsp;&nbsp; </strong>&nbsp;&nbsp;<br/>min -width是个非常方便的CSS命令，它可以指定元素最小也不能小于某个宽度，这样就能保证排版一直正确。但IE不认得这个，而它实际上把width当 做最小宽度来使。为了让这一命令在IE上也能用，可以把一个&lt;div&gt; 放到 &lt;body&gt; 标签下，然后为div指定一个类, 然后CSS这样设计： <br/><textarea name="code" class="css" rows="15" cols="100">
#container
&#123;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;min-width: 600px; 
&nbsp;&nbsp;&nbsp;&nbsp;width:e-xpression(document.body.clientWidth &lt; 600? &quot;600px&quot;: &quot;auto&quot; );
&#125;</textarea>&nbsp;&nbsp;&nbsp;&nbsp; <br/>第一个min-width是正常的；但第2行的width使用了Javascript，这只有IE才认得，这也会让你的HTML文档不太正规。它实际上通过Javascript的判断来实现最小宽度。<br/><br/><strong>6.DIV浮动IE文本产生3象素的bug&nbsp;&nbsp;&nbsp;&nbsp;</strong> <br/>左边对象浮动，右边采用外补丁的左边距来定位，右边对象内的文本会离左边有3px的间距.<textarea name="code" class="css" rows="15" cols="100">&nbsp;&nbsp;&nbsp;&nbsp; 
#box&#123; float:left; width:800px;&#125;&nbsp;&nbsp;&nbsp;&nbsp;
#left&#123; float:left; width:50%;&#125;&nbsp;&nbsp;&nbsp;&nbsp;
#right&#123; width:50%;&#125;&nbsp;&nbsp;&nbsp;&nbsp;
*html #left&#123; margin-right:-3px; //这句是关键&#125;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;div &gt; 
&nbsp;&nbsp;&nbsp;&nbsp;&lt;div &gt;&lt;/div&gt; 
&nbsp;&nbsp;&nbsp;&nbsp;&lt;div &gt;&lt;/div&gt; 
&lt;/div&gt;</textarea><br/><strong>7.IE捉迷藏的问题&nbsp;&nbsp;&nbsp;&nbsp;</strong> <br/>当div应用复杂的时候每个栏中又有一些链接，DIV等这个时候容易发生捉迷藏的问题。有些内容显示不出来，当鼠标选择这个区域是发现内容确实在页面。 <br/>解决办法： <br/>对#layout使用line-height属性 或者给#layout使用固定高和宽。页面结构尽量简单。<br/><br/><strong>8.float的div闭合;清除浮动;自适应高度; </strong>&nbsp;&nbsp; <br/>例如：&lt;#div &gt;&lt;#div &gt;&lt;#div NOTfloatC” &gt;这里的NOTfloatC并不希望继续平移，而是希望往下排。(其中floatA、floatB的属性已经设置为 float:left;)&nbsp;&nbsp; 这段代码在IE中毫无问题，问题出在FF。原因是NOTfloatC并非float标签，必须将float标签闭合。在 &lt;#div &lt;#div &lt; #div 并且将clear这种样式定义为为如下即可： .clear&#123; clear:both;&#125;&nbsp;&nbsp;&nbsp;&nbsp;<br/>作为外部 wrapper 的 div 不要定死高度 <br/>为了让高度能自动适应，要在wrapper里面加上overflow:hidden; 当包含float的 box的时候，高度自动适应在IE下无效，这时候应该触发IE的layout私有属性(万恶的IE啊！)用zoom:1;可以做到，这样就达到了兼容。&nbsp;&nbsp;&nbsp;&nbsp;<br/>例如某一个wrapper如下定义：<textarea name="code" class="css" rows="15" cols="100">.colwrapper&#123; overflow:hidden; zoom:1; margin:5px auto;&#125;</textarea><br/><br/><strong>9.对于排版 </strong><br/>我们用得最多的css描述可能就是float:left.有的时候我们需要在n栏的float div后面做一个统一的背景, <br/>譬如:&nbsp;&nbsp; &lt;div &lt;div &lt;div &lt;div &lt;/div&gt;&nbsp;&nbsp;&nbsp;&nbsp;<br/>比如我们要将page的背景设置成蓝色,以达到所有三栏的背景颜色是蓝色的目的, <br/>但是我们会发现随着left center right的向下拉长,而 page居然保存高度不变,问题来了, <br/>原因在于page不是float属性,而我们的page由于要居中,不能设置成float, <br/>所以我们应该这样解决:<textarea name="code" class="css" rows="15" cols="100">&nbsp;&nbsp;&nbsp;&nbsp;
&lt;div 
&lt;div style=”float:left;width:100%”&gt;&nbsp;&nbsp; 
&lt;div 
&lt;div 
&lt;div 
&lt;/div&gt;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;/div&gt;</textarea><br/>再嵌入一个float left而宽度是100%的DIV解决之。<br/><br/><strong>10.万能float 闭合(非常重要!)&nbsp;&nbsp;</strong>&nbsp;&nbsp; <br/>关于 clear float 的原理可参见 [How To Clear Floats Without Structural Markup],将以下代码加入Global CSS 中,给需要闭合的div加上 即可,屡试不爽.<textarea name="code" class="css" rows="15" cols="100">&nbsp;&nbsp;&nbsp;&nbsp;
/* Clear Fix */ 
.clearfix:after &#123; content:&quot;.&quot;; display:block; height:0; clear:both; visibility:hidden; &#125;&nbsp;&nbsp;&nbsp;&nbsp;
.clearfix &#123; display:inline-block; &#125;&nbsp;&nbsp;&nbsp;&nbsp; 
/* Hide from IE Mac */&nbsp;&nbsp;&nbsp;&nbsp; 
.clearfix &#123;display:block;&#125;&nbsp;&nbsp;&nbsp;&nbsp;
/* End hide from IE Mac */&nbsp;&nbsp;&nbsp;&nbsp;
/* end of clearfix */&nbsp;&nbsp;&nbsp;&nbsp; 
或者这样设置：.hackbox&#123; display:table; //将对象作为块元素级的表格显示&#125;</textarea><br/><br/><strong>11.高度不适应&nbsp;&nbsp;&nbsp;&nbsp; </strong><br/>高度不适应是当内层对象的高度发生变化时外层高度不能自动进行调节，特别是当内层对象使用margin 或paddign 时。&nbsp;&nbsp;&nbsp;&nbsp; <br/>例：<textarea name="code" class="css" rows="15" cols="100">&nbsp;&nbsp;&nbsp;&nbsp; 
#box &#123;background-color:#eee; &#125;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
#box p &#123;margin-top: 20px;margin-bottom: 20px; text-align:center; &#125;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;div &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;p&gt;p对象中的内容&lt;/p&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;/div&gt; </textarea>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>解决方法： <br/>在P对象上下各加2个空的div对象CSS代码： <br/>.1&#123;height:0px;overflow:hidden;&#125;或者为DIV加上border属性。<br/><br/><strong>12 .IE6下为什么图片下有空隙产生 </strong><br/>解决这个BUG的方法也有很多, <br/>可以是改变html的排版, <br/>或者设置img 为display:block <br/>或者设置vertical-align 属性为 vertical-align:top &#124; bottom &#124;middle &#124;text-bottom 都可以解决.<br/><br/><strong>13.如何对齐文本与文本输入框 </strong><br/>加上 vertical-align:middle;&nbsp;&nbsp;<textarea name="code" class="css" rows="15" cols="100"> 
&lt;style type=&quot;text/css&quot;&gt; 
&lt;!-- 
input &#123;width:200px; height:30px;border:1px solid red;vertical-align:middle; &#125; 
--&gt; 
&lt;/style&gt; </textarea><br/><br/><strong>14.web标准中定义id与class有什么区别吗? </strong><br/>一.web标准中是不容许重复ID的,比如 div&nbsp;&nbsp;&nbsp;&nbsp;不容许重复2次,而class 定义的是类,理论上可以无限重复, 这样需要多次引用的定义便可以使用他. <br/>二.属性的优先级问题 ID 的优先级要高于class,看上面的例子 <br/>三.方便JS等客户端脚本,如果在页面中要对某个对象进行脚本操作,那么可以给他定义一个ID,否则只能利用遍历页面元素加上指定特定属性来找到它,这是相对浪费时间资源,远远不如一个ID来得简单.<br/><br/><strong>15. LI中内容超过长度后以省略号显示的方法 </strong><br/>此方法适用与IE与OP浏览器<textarea name="code" class="css" rows="15" cols="100">&nbsp;&nbsp;
&lt;style type=&quot;text/css&quot;&gt; 
&lt;!-- 
li &#123; 
width:200px; 
white-space:nowrap; 
text-overflow:ellipsis; 
-o-text-overflow:ellipsis; 
overflow: hidden;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&#125; 
--&gt; 
&lt;/style&gt; </textarea><br/>16.为什么web标准中IE无法设置滚动条颜色了 <br/>解决办法是 <br/>将body换成html<textarea name="code" class="css" rows="15" cols="100">&nbsp;&nbsp;
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt; 
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=gb2312&quot; /&gt; 
&lt;style type=&quot;text/css&quot;&gt; 
&lt;!-- 
html &#123;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
scrollbar-face-color:#f6f6f6;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
scrollbar-highlight-color:#fff;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
scrollbar-shadow-color:#eeeeee;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
scrollbar-3dlight-color:#eeeeee;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
scrollbar-arrow-color:#000;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
scrollbar-track-color:#fff;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
scrollbar-darkshadow-color:#fff;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&#125; 
--&gt; 
&lt;/style&gt; </textarea><br/><strong>17.为什么无法定义1px左右高度的容器 </strong><br/>IE6下这个问题是因为默认的行高造成的, 解决的方法也有很多，例如:overflow:hidden &#124; zoom:0.08 &#124; line-height:1px<br/><br/><strong>18.怎么样才能让层显示在FLASH之上呢 </strong><br/>解决的办法是给FLASH设置透明 &lt;param value=&quot;transparent&quot; /&gt;<br/><br/><strong>19.怎样使一个层垂直居中于浏览器中 </strong><br/>这里我们使用百分比绝对定位,与外补丁负值的方法,负值的大小为其自身宽度高度除以2 <br/><textarea name="code" class="css" rows="15" cols="100">&lt;style type=&quot;text/css&quot;&gt; 
&lt;!— 
div 
&#123;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;top:50%;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;left:50%;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;margin:-100px 0 0 -100px;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;width:200px;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;height:200px;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;border:1px solid red;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&#125; 
--&gt; 
&lt;/style&gt;</textarea><br/><br/>FF与IE<br/>1. Div居中问题 <br/>div设置 margin-left, margin-right 为 auto 时已经居中，IE 不行，IE需要设定body居中，首先在父级元素定义text-algin: center; <br/>这个的意思就是在父级元素内的内容居中。&nbsp;&nbsp;&nbsp;&nbsp;<br/><br/>2.链接(a标签)的边框与背景 <br/>a 链接加边框和背景色，需设置 display: block, 同时设置 float: left 保证不换行。参照 menubar, 给 a 和 menubar 设置高度是为了避免底边显示错位, 若不设 height, 可以在 menubar 中插入一个空格。 <br/><br/>3.超链接访问过后hover样式就不出现的问题 <br/>被点击访问过的超链接样式不在具有hover和active了，解决方法是改变CSS属性的排列顺序: L-V-H-A <br/><textarea name="code" class="css" rows="15" cols="100">
&lt;style type=&quot;text/css&quot;&gt; 
&lt;!-- 
a:link &#123;&#125; 
a:visited &#123;&#125; 
a:hover &#123;&#125; 
a:active &#123;&#125; 
--&gt; 
&lt;/style&gt;</textarea><br/><br/>4. 游标手指cursor <br/>cursor: pointer 可以同时在 IE FF 中显示游标手指状，hand 仅 IE 可以&nbsp;&nbsp; <br/><br/>5.UL的padding与margin <br/>ul标签在FF中默认是有padding值的, 而在IE中只有margin默认有值, 所以先定义 ul&#123;margin:0;padding:0;&#125;就能解决大部分问题&nbsp;&nbsp;&nbsp;&nbsp;<br/><br/>6. FORM标签&nbsp;&nbsp;&nbsp;&nbsp;<br/>这个标签在IE中,将会自动margin一些边距,而在FF中margin则是0, 因此,如果想显示一致,所以最好在css中指定margin和 padding, <br/>针对上面两个问题,我的css中一般首先都使用这样的样式 ul,form&#123;margin:0;padding:0;&#125; 给定义死了,所以后面就不会为这个头疼了.&nbsp;&nbsp; <br/><br/>7. BOX模型解释不一致问题&nbsp;&nbsp;&nbsp;&nbsp;<br/>在FF和IE 中的BOX模型解释不一致导致相差2px <br/>解决方法： <br/>div&#123;margin:30px!important;margin:28px;&#125; 注意这两个 margin的顺序一定不能写反， important这个属性IE不能识别，但别的浏览器可以识别。 所以在IE下其实解释成这样： div &#123;maring:30px;margin:28px&#125;重复定义的话按照最后一个来执行，所以不可以只写margin:xx<textarea name="code" class="css" rows="15" cols="100">px!important;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
#box 
&#123; 
width:600px; //for ie6.0&#92; 
- w&#92;idth:500px; //for ff+ie6.0&#125;&nbsp;&nbsp;&nbsp;&nbsp; 
#box&#123; 
width:600px!important //for ff 
width:600px; //for ff+ie6.0 
width /**/:500px; //for ie6.0-&#125;</textarea><br/><br/>8.属性选择器(这个不能算是兼容,是隐藏css的一个bug)&nbsp;&nbsp;&nbsp;&nbsp; <br/>p[id]&#123;&#125;div[id]&#123;&#125;这个对于IE6.0和IE6.0以下的版本都隐藏, FF和OPera作用.属性选择器和子选择器还是有区别的, 子选择器的范围从形式来说缩小了, 属性选择器的范围比较大, 如p[id]中,所有p标签中有id的都是同样式的.&nbsp;&nbsp; <br/><br/>9.最狠的手段 - !important;&nbsp;&nbsp;&nbsp;&nbsp; <br/>如果实在没有办法解决一些细节问题, 可以用这个方法.FF对于”!important”会自动优先解析, 然而IE则会忽略. 如下&nbsp;&nbsp;&nbsp;&nbsp;<br/><textarea name="code" class="css" rows="15" cols="100">.tabd1 
&#123;&nbsp;&nbsp;&nbsp;&nbsp; 
background:url(/res/images/up/tab1.gif) no-repeat 0px 0px !important; /*Style for FF*/&nbsp;&nbsp;&nbsp;&nbsp; 
background:url(/res/images/up/tab1.gif) no-repeat 1px 0px; /* Style for IE */&#125;</textarea>&nbsp;&nbsp;&nbsp;&nbsp;<br/>值得注意的是，一定要将xxxx !important 这句放置在另一句之上，上面已经提过&nbsp;&nbsp;&nbsp;&nbsp;<br/><br/>10.IE,FF的默认值问题&nbsp;&nbsp;&nbsp;&nbsp;<br/>或许你一直在抱怨为什么要专门为IE和FF写不同的CSS，为什么IE这样让人头疼，然后一边写css，一边咒骂那个可恶的M$ IE. 其实对于css的标准支持方面，IE并没有我们想象的那么可恶，关键在于IE和FF的默认值不一样而已，掌握了这个技巧， 你会发现写出兼容FF和IE的css并不是那么困难，或许对于简单的css，你完全可以不用”!important”这个东西了。我们都知道，浏览器在显示网页的时候，都会根据网页的 css样式表来决定如何显示，但是我们在样式表中未必会将所有的元素都进行了具体的描述，当然也没有必要那么做，所以对于那些没有描述的属性，浏览器将采用内置默认的方式来进行显示，譬如文字，如果你没有在css中指定颜色，那么浏览器将采用黑色或者系统颜色来显示，div或者其他元素的背景，如果在 css中没有被指定，浏览器则将其设置为白色或者透明，等等其他未定义的样式均如此。所以有很多东西出现FF和IE显示不一样的根本原因在于它们的默认显示不一样，而这个默认样式该如何显示我知道在w3中有没有对应的标准来进行规定，因此对于这点也就别去怪罪IE了。 <br/><br/>11.为什么FF下文本无法撑开容器的高度 <br/>标准浏览器中固定高度值的容器是不会象IE6里那样被撑开的, 那我又想固定高度,又想能被撑开需要怎样设置呢？办法就是去掉height设置min-height:200px; 这里为了照顾不认识min-height的IE6 可以这样定义: <br/><textarea name="code" class="css" rows="15" cols="100">&#123;
&nbsp;&nbsp;height:auto!important; 
&nbsp;&nbsp;height:200px;
&nbsp;&nbsp;min-height:200px;
&#125; </textarea><br/><br/>12.FireFox下如何使连续长字段自动换行 <br/>众所周知IE中直接使用 word-wrap:break-word 就可以了, FF中我们使用JS插入的方法来解决 <br/><textarea name="code" class="css" rows="15" cols="100">&lt;style type=&quot;text/css&quot;&gt; 
&lt;!-- 
div 
&#123;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
width:300px;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
word-wrap:break-word;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
border:1px solid red; &#125; 
--&gt; 
&lt;/style&gt; 
&lt;div &gt;这里是一行很长的文字Heck is a good man&lt;/div&gt; 
&lt;scrīpt type=&quot;text/javascrīpt&quot;&gt; 
/* &lt;![CDATA[ */ 
function toBreakWord(el, intLen) 
&#123;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
var ōbj=document.getElementById(el);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
var strContent=obj.innerHTML;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
var strTemp=&quot;&quot;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
while(strContent.length&gt;intLen) 
&#123;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
strTemp+=strContent.substr(0,intLen)+&quot; &quot;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
strContent=strContent.substr(intLen,strContent.length);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&#125;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
strTemp+=&quot; &quot;+strContent;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
obj.innerHTML=strTemp; 
&#125; 
if(document.getElementById&nbsp;&nbsp; &amp;&amp;&nbsp;&nbsp; !document.all)&nbsp;&nbsp;&nbsp;&nbsp;
toBreakWord(&quot;ff&quot;, 37); 
/* ]]&gt; */ 
&lt;/scrīpt&gt; </textarea><br/><br/><strong>13.为什么IE6下容器的宽度和FF解释不同呢 </strong><br/><textarea name="code" class="css" rows="15" cols="100">&lt;?xml version=&quot;1.0&quot; encoding=&quot;gb2312&quot;?&gt; 
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt; 
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=gb2312&quot; /&gt; 
&lt;style type=&quot;text/css&quot;&gt; 
&lt;!--div 
&#123;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
cursor:pointer;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
width:200px;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
height:200px;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
border:10px solid red&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&#125; 
--&gt; 
&lt;/style&gt;
&lt;div ōnclick=&quot;alert(this.offsetWidth)&quot;&gt;让FireFox与IE兼容&lt;/div&gt;</textarea><br/><br/>问题的差别在于容器的整体宽度有没有将边框（border）的宽度算在其内, 这里IE6解释为200PX ,而FF则解释为220PX,那究竟是怎么导致的问题呢？ <br/>大家把容器顶部的xml去掉就会发现原来问题出在这,顶部的申明触发了IE的qurks mode,关于qurks mode、 standards mode的相关知识,<br/>请参考:http: //www.microsoft.com/china/msdn/library/webservices/asp.net/ ASPNETusStan.mspx?mfr=true <br/>IE6,IE7,FF&nbsp;&nbsp; IE7.0 出来了，对CSS的支持又有新问题。浏览器多了，网页兼容性更差了，疲于奔命的还是我们 ，为解决IE7.0的兼容问题，找来了下面这篇文章：现在我大部分都是用!important来hack，对于ie6和firefox测试可以正常显示，但是ie7对!important可以正确解释，会导致页面没按要求显示！下面是三个浏览器的兼容性收集.<br/><br/>第一种，是CSS HACK的方法&nbsp;&nbsp;&nbsp;&nbsp; <br/><textarea name="code" class="css" rows="15" cols="100">height:20px; /*For Firefox*/&nbsp;&nbsp;&nbsp;&nbsp; 
*height:25px; /*For IE7 &amp; IE6*/&nbsp;&nbsp;&nbsp;&nbsp; 
_height:20px; /*For IE6*/</textarea>&nbsp;&nbsp;&nbsp;&nbsp; <br/>注意顺序。<br/>这样也属于CSS HACK，不过没有上面这样简洁。&nbsp;&nbsp;&nbsp;&nbsp; <br/><textarea name="code" class="css" rows="15" cols="100">#example &#123; color: #333; &#125; /* Moz */&nbsp;&nbsp;&nbsp;&nbsp; 
* html #example &#123; color: #666; &#125; /* IE6 */&nbsp;&nbsp;&nbsp;&nbsp; 
*+html #example &#123; color: #999; &#125; /* IE7 */</textarea><br/><br/>第二种,条件注释 <br/><textarea name="code" class="css" rows="15" cols="100">&lt;!--其他浏览器 –&gt;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;css.css&quot; /&gt;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;!--[if IE 7]&gt; &lt;!-- 适合于IE7 –&gt;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;ie7.css&quot; /&gt;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;![endif]—&gt;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;!--[if lte IE 6]&gt;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;!-- 适合于IE6及一下 –&gt;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;ie.css&quot; /&gt;&nbsp;&nbsp;&nbsp;&nbsp; 
&lt;![endif]—&gt;</textarea><br/><br/>第三种，css filter的办法，以下为经典从国外网站翻译过来的。 <br/>新建一个css样式如下：&nbsp;&nbsp;&nbsp;&nbsp; <br/><textarea name="code" class="css" rows="15" cols="100">#item 
&#123;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
width: 200px;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
height: 200px;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
background: red;&nbsp;&nbsp;&nbsp;&nbsp; 
&#125;</textarea><span style="font-family: 微软雅黑;"><br/>新建一个div,并使用前面定义的css的样式：&nbsp;&nbsp;&nbsp;&nbsp; <br/>&lt;div &gt;some text here&lt;/div&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>在body表现这里加入lang属性,中文为zh： &lt;body lang=&quot;en&quot;&gt; 现在对div元素再定义一个样式：*:lang(en) #item&#123; background:green !important;&#125; 这样做是为了用!important覆盖原来的css样式,由于:lang选择器ie7.0并不支持,所以对这句话不会有任何作用, 于是也达到了ie6.0下同样的效果,但是很不幸地的是,safari同样不支持此属性,所以需要加入以下css样式：#item:empty &#123;background: green !important&nbsp;&nbsp;&nbsp;&nbsp;&#125; :empty选择器为css3的规范,尽管safari并不支持此规范, 但是还是会选择此元素,不管是否此元素存在,现在绿色会现在在除ie各版本以外的浏览器上。对IE6和FF的兼容可以考虑以前的!important 个人比较喜欢用第一种，简洁，兼容性比较好。</span><br/>Tags - <a href="https://www.heckjj.com/tags/css/" rel="tag">css</a> , <a href="https://www.heckjj.com/tags/bug/" rel="tag">bug</a> , <a href="https://www.heckjj.com/tags/%25E6%25B5%258F%25E8%25A7%2588%25E5%2599%25A8%25E5%2585%25BC%25E5%25AE%25B9/" rel="tag">浏览器兼容</a>
]]>
</description>
</item><item>
<link>https://www.heckjj.com/css-bug-compatible-html/#blogcomment</link>
<title><![CDATA[[评论] 浏览器CSS BUG兼容汇总]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>https://www.heckjj.com/css-bug-compatible-html/#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>