IE7 Z-Index レイヤ化の問題: 包括的な理解
Internet Explorer 7 (IE7) は、z-index プロパティに関して独特の動作をします、Web ページ上の要素の積み重ね順序を決定する役割を果たします。この動作は、特に複数の重なり合う要素を操作する場合に、予期しない階層化の問題を引き起こす可能性があります。
IE7 の Z-Index の問題は何ですか?
IE7 では、z -index プロパティは、同じスタック コンテキスト内の要素に相対的です。ただし、ほとんどのブラウザとは異なり、IE7 は、z-index 値を明示的に設定せずに、位置決めされた要素に対して新しいスタッキング コンテキストを作成します。これは、異なるスタッキング コンテキストに属している場合、z インデックスが低い要素が z インデックスが高い要素と重なる可能性があることを意味します。
実践例
次の HTML および CSS コードの例を考えてみましょう。
<form> <label>Input #1:</label> <span>
input { border: 1px solid #000; } div { border: 1px solid #00f; } ul { border: 1px solid #f00; background-color: #f00; list-style-type: none; margin: 0; padding-left: 0; z-index: 1000; } li { color: #fff; list-style-type: none; padding-left: 0; margin-left: 0; } span.envelope { position: relative; } span.envelope ul { position: absolute; top: 20px; left: 0; width: 150px; }
この例では、最初のエンベロープのメニュー (
考えられる解決策
この問題に対処するには、主に 2 つのアプローチがあります:
明示的な Z インデックスを親に追加する要素:
#envelope-1 { position: relative; z-index: 1; }
親要素から location:relative を削除します:
<html> <head> <title>Z-Index IE7 Test</title> <style type="text/css"> ul { background-color: #f00; z-index: 1000; position: absolute; width: 150px; } </style> </head> <body> <div> <label>Input #1:</label> <input><br> <ul> <li>item</li> <li>item</li> <li>item</li> <li>item</li> </ul> </div> <div> <label>Input #2:</label> <input> </div> </body> </html>
以上がInternet Explorer 7 で Z-Index の動作が異なるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。