ホームページ >ウェブフロントエンド >フロントエンドQ&A >CSS IE互換の記述方法とは何ですか?
CSS は Web デザインの非常に重要な部分ですが、ブラウザーによっては CSS の互換性が非常に厄介な問題になります。特に IE ブラウザでは、CSS の互換性の問題がより顕著になります。そのため、CSS スタイルを記述する際には IE ブラウザとの互換性に注意する必要がありますが、この記事ではよく使われる IE 互換の記述方法をいくつか紹介します。
1. IE ブラウザの一般的な互換性問題
IE ブラウザでは、一般的な CSS 互換性問題には次のようなものがあります:
2. 一般的に使用される IE ブラウザ互換の書き込み方法
IE6 では、要素に背景画像と背景色の両方が設定されている場合、背景画像が背景色で覆われない場合があります。このとき、コンテナ要素に _filter 属性を追加し、その値を「inherit」に設定する必要があります。
.container{ background:url(images/bg.png) no-repeat; background-color:#fff; _filter: inherit; }
IE6 では、2 つのブロック要素または 2 つのインライン要素が接する場合、境界線が隠されません。このとき、空の div を設定することでこの問題を解決できます。
<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; }
上記のコードは、position:relativeとzoom:1を設定することによってIEブラウザのhasLayoutメカニズムをトリガーし、空のdiv要素を設定することによって境界線を表示します。
IE6 では、隣接する 2 つの要素の margin-top と margin-bottom が重なると、マージンの重なりが発生します。このとき、マージンの重なりを避けるために、上記の要素にpadding-topを設定できます。
<div class="parent"> <div class="children"></div> </div> .parent{ padding-top:1px; } .children{ margin-top:10px; height:50px; background:#ccc; }
IE6 で PNG24 画像の透明度をサポートするには、画像に div のレイヤーを配置して、この div に配置します。 JavaScript コードを追加します。
HTML コード:
<div class="png"> <img src="images/logo_bg.png" /> </div>
CSS コード:
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) ); }
上記のコードでは、_behavior 属性によって JavaScript コードを要素にバインドし、その中で実行できます。
IE ブラウザでは、position:fixed 属性はサポートされませんが、JavaScript を通じて同様の効果を実現できます。
JavaScript コード:
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();
IE7 以降のブラウザと互換性がある場合は、DOCTYPE を設定する必要があることに注意してください。設定しないと、IE が奇妙なモードでページをレンダリングし、互換性の問題が発生します。が発生する可能性があります。
この記事ではよく使われる CSS IE 互換の記述方法をまとめましたので、皆様のお役に立てれば幸いです。実際のプロジェクトでは、Web ページの互換性とユーザー エクスペリエンスを向上させるために、IE と互換性のあるより良い記述方法をまとめ、検討し続ける必要があります。
以上がCSS IE互換の記述方法とは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。