CSS は Web デザインの非常に重要な部分ですが、異なるブラウザーでの CSS の互換性は非常に厄介な問題です。特に IE ブラウザでは、CSS の互換性の問題がより顕著になります。したがって、CSS スタイルを記述する場合は、IE ブラウザの互換性に注意する必要があります。この記事では、一般的に使用される IE 互換の記述方法をいくつか紹介します。
1. IE ブラウザーの一般的な互換性問題
IE ブラウザーでは、一般的な CSS 互換性問題は次のとおりです:
2. IEブラウザと互換性のある一般的な記述方法
IE6では、要素に背景画像と背景色の両方が設定されている場合、背景画像がカラーカバレッジは対象外となります。このとき、コンテナ要素に _filter 属性を追加し、その値を「inherit」に設定する必要があります。
<code>.container{ background:url(images/bg.png) no-repeat; background-color:#fff; _filter: inherit; }</code>
IE6では、2つのブロック要素または2つのインライン要素が接する場合、枠線は隠れません。このとき、空の div を設定することでこの問題を解決できます。
<code><div class="box"> <div class="inner"></div> </div> .box{ background:#fff; border:1px solid #ccc; position:relative; zoom:1; } .inner{ width:100%; height:100%; position:absolute; top:0; left:0; }</code>
上記のコードは、position:relativeとzoom:1を設定することでIEブラウザのhasLayoutメカニズムをトリガーし、空のdiv要素を設定することで境界線を表示します。
IE6では、隣接する2つの要素のmargin-topとmargin-bottomが重なると、マージンの重なりが発生します。このとき、マージンの重なりを避けるために、上記の要素にpadding-topを設定できます。
<code><div class="parent"> <div class="children"></div> </div> .parent{ padding-top:1px; } .children{ margin-top:10px; height:50px; background:#ccc; }</code>
IE6 で PNG24 画像の透明度をサポートするには、画像上に div のレイヤーを置き、その div に JavaScript コードを追加します。
HTML コード:
<code><div class="png"> <img src="images/logo_bg.png" /> </div></code>
CSS コード:
<code>div.png{ position:relative; _behavior: expression( function( ele ){ ele.innerHTML = '<span style="display:inline-block;width:' + ele.offsetWidth + 'px;height:' + ele.offsetHeight + 'px;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\''+ ele.getElementsByTagName('img')[0].src + '\',sizingMethod=\'scale\')"></span>'; }(this) ); }</code>
上記のコードでは、_behavior 属性は JavaScript コードを要素にバインドし、その中で実行できます。
IE ブラウザでは、position:fixed 属性はサポートされませんが、JavaScript を通じて同様の効果を実現できます。
JavaScript コード:
<code>function fixedPosition() { var obj = document.getElementById("fixed_obj"); var top = (document.documentElement.clientHeight - obj.offsetHeight) / 2 + document.documentElement.scrollTop; obj.style.top = top + "px"; } window.onscroll = fixedPosition; //初始时就调用一次以免刷新后没有滚动事件而没有效果 fixedPosition();</code>
IE7 以降のブラウザと互換性がある場合は、DOCTYPE を設定する必要があることに注意してください。そうしないと、IE が奇妙なモードでページをレンダリングし、互換性の問題が発生する可能性があります。
この記事は、よく使われる CSS IE 互換の記述方法をまとめたものです。皆様のお役に立てれば幸いです。実際のプロジェクトでは、Web ページの互換性とユーザー エクスペリエンスを向上させるために、IE と互換性のあるより良い記述方法をまとめ、検討し続ける必要があります。
以上がcss ie互換の書き方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。