IE 6-BUG-CSS互換詳細

8189 ワード

1、IE 6背景点滅


リンクやボタンにCSS spritesを背景にすると、IE 6の下で背景図が点滅する現象が見られるかもしれません.これは、IE 6がバックグラウンドマップをキャッシュしていないため、hoverがトリガーされるたびに再ロードされ、JavaScriptでIE 6キャッシュを設定できるためです.
document.execCommand(“BackgroundImageCache”,false,true);

2、最小高さ
IE 6はmin-height属性をサポートしていないが、heightは最小高さであると考えている.解決方法:ie 6でサポートされていないが、残りのブラウザでサポートされているプロパティを使用します.important.
#container {min-height:200px; height:auto !important; height:200px;}

3、最大高さ
//    ID          

var container = document.getElementByIdx_x(‘container’); container.style.height = (container.scrollHeight > 199) ? “200px” : “auto”; //       

function setMaxHeight(elementId, height){ var container = document.getElementByIdx_x(elementId); container.style.height = (container.scrollHeight > (height – 1)) ? height + “px” : “auto”; } //    

setMaxHeight(‘container1′, 200); setMaxHeight(‘container2′, 500);

4、100%高さ
IE 6では、要素に100%の高さを定義するには、親要素の高さを明確に定義する必要があります.要素にフルスクリーンの高さを定義する必要がある場合は、htmlとbodyにheight:100%を定義する必要があります.
5、最小幅
max-heightやmax-widthと同様に、IE 6もmin-widthをサポートしていません.
//    ID          

var container = document.getElementByIdx_x(‘container’); container.style.width = (container.clientWidth < width) ? “500px” : “auto”; //       

function setMinWidth(elementId, width){ var container = document.getElementByIdx_x(elementId); container.style.width = (container.clientWidth < width) ? width + “px” : “auto”; } //    

setMinWidth(‘container1′, 200); setMinWidth(‘container2′, 500);

6、最大幅
//    ID          

var container = document.getElementByIdx_x(elementId); container.style.width = (container.clientWidth > (width – 1)) ? width + “px” : “auto”; //       

function setMaxWidth(elementId, width){ var container = document.getElementByIdx_x(elementId); container.style.width = (container.clientWidth > (width – 1)) ? width + “px” : “auto”; } //    

setMaxWidth(‘container1′, 200); setMaxWidth(‘container2′, 500);

7、二国間距離Bug
要素が浮動すると、IE 6は浮動方向のmargin値を2倍に誤って計算します.個人的に良い解決策はfloatとmarginの同時使用を避けることだと思います.
8、フローティングのクリア
フローティング要素をdiv(または他のコンテナ)でラップしたい場合は、フローティング要素を厳密にラップするには、div(コンテナ)に明確なheight、width、overflowのプロパティ(auto値を除く)を定義する必要があります.
#container {border:1px solid #333; overflow:auto; height:100%;} #floated1 {float:left; height:300px; width:200px; background:#00F;} #floated2 {float:right; height:400px; width:200px; background:#F0F;}

9、フローティング層のずれ
コンテンツがアウトソーシングコンテナ定義の幅を超えている場合、定義されたwidth値はIE 6で無視され、幅はコンテンツ幅の増加に伴って誤って増加する.
浮動層転位問題はIE 6の下で本当に満足できる解決方法はないが、overflow:hiddenを使用することができる.またはoverflow:scroll;修正しますが、hiddenは他の問題を引き起こしやすく、scrollは設計を破壊します.JavaScriptもこの問題をうまく解決できません.したがって、レイアウト上でこの問題を回避し、固定されたレイアウトを使用するか、コンテンツの幅を制御することをお勧めします(内層にwidthを追加します).
10、隠れ猫バグ
IE 6とIE 7の下で、猫のバグを避けるのはとても悩ましい問題です.容器を破ったフローティング要素は、彼の後にフローティングされていない内容があり、いくつかの定義があります:hoverのリンクは、マウスがそれらのリンクに移動すると、IE 6の下で隠れた猫をトリガーします.
解決方法は簡単です:1.(そのフローティングされていない)コンテンツの後に2.これらのリンクを含むコンテナをトリガするhasLayoutは、height:1%を定義する簡単な方法です.
11、絶対位置決め要素の1画素間隔bug
IE 6でのこのエラーは、キャリー処理誤差(IE 7が修復された)によるものであり、絶対位置決め要素の親要素の高さまたは幅が奇数の場合、bottomおよびrightはエラーを生じる.唯一の解決策は、親要素に明確な高幅値を定義することであるが、液体レイアウトには完璧な解決策はない.
12、3画素ピッチバグ
IE 6では、テキスト(またはフローティング要素なし)がフローティング要素に続くと、テキストとこのフローティング要素の間に3画素の間隔が多くなります.フローティングレイヤにdisplay:inlineと-3 pxの負の値marginを追加し、中間のコンテンツレイヤにmargin-rightを定義して-3 pxを修正します.
13、IE下z-indexのバグ
IEブラウザでは、位置決め要素のz-indexレベルは、それぞれの親コンテナに対して異なるため、z-indexのエラー表現を引き起こす.解決策は、親要素にz-indexを定義することであり、position:relativeを定義する必要がある場合もあります.
14、Overflow Bug
IE 6/7では、overflowは相対位置決めposition:relativeを正しく隠すことができません.で行ないます.解決策は外注容器を与えることである.wrapにposition:relativeを加える.
15、横リスト幅bug
float:leftを使用すると、
横に並べて、(またはその他)hasLayoutがトリガーされ、IE 6の下で誤った表現があります。解決策は簡単で、ただ同じfloat:leftを定義します。できます。が含まれています.
16、リスト階段バグ
リストステップbugは、通常、float:leftを
  • のサブ要素を使用します。由此,意图制作横方向的名单(通常是ナビゲーションバー),IE垂直或阶段状的可能性.解决方案
  • float:定義left.サブエレメントではなく、
  • にdisplay:inlineを定義します。可以解决.17,如果包括垂直风险隙间bug布洛克勒贝尔的悬疑文件在1个内的话,IE 6(IE 7也可)在各风险文件()之间追加错误赌博.解決方法:flaot把float弄清楚,解决这个问题;もう一つの方法は(例如,定义空间,使用zoom:1).
  • 也可以定义display:inline.解决这个问题.另1个更有趣的方法是,包括在内的网站的末尾追加空间.18,IE 6的:hoverIE 6以外,除了(href程序需要)之外,可以把hover动作转移.这很有帮助实现许多机器效果,但有几个方法.不是将重要的功能在hover中实现,而是仅此就能强化效果。19,将调整IE 6温德乌萨兹的Bugbody在中央配置,改变IE布拉乌萨的尺寸,body内的相对性的位置决定要素没有固定。解决:bodyにposition:relativeを定義する;这样就行了.20,在网站重复BugIE 6中,注释、display:none等隐藏的要素包含在弗洛汀要素中,有可能会发生网站重复巴格.解决方案:在自由要素上追加display:inline.Set Position:relative要素にPositionを指定する:relative,位置合わせや表示が正しくない等,解决了很多奇怪的问题.Position的专业人员请注意absolute设定.22.Floatの要素にinline属性を加えて2倍のmarginを避けるのが最も有名なバグで、IE 6の下でフロンティア要素に対して、分からない2倍の空白の辺ができて、解決方法も非常に分からないので、display:inlineの属性を設定すればいいのですが、float要素的这个属性本身没有什么意义.23,span标识的高度问题在图像的菲勒特时经常看到,background-position在span水平下加上line-height:0,就可以了。font-size:0;可以解决