IE6/7 で絶対配置された要素が不可解に消えたりブロックされたりする問題を解決する方法

IE6/7 で絶対配置された要素が不可解に消えたりブロックされたりする問題を解決する方法
1. 絶対配置レイヤーの隣接フローティング レイヤーの幅が親レイヤーの幅と等しくなく、フロートがクリアされていない場合、IE6/7 と FF で表示が一貫しています。
2. 絶対配置レイヤーの隣接するフローティング レイヤーの幅が親レイヤーの幅と等しくない場合、フロートがクリアされると、IE6/7 では絶対配置レイヤーが表示されませんが、FF では表示されます。
3. 絶対配置レイヤーの隣接フローティング レイヤーの幅が親レイヤーの幅と等しく、フローティングがクリアされていない場合、IE6 では絶対配置レイヤーが表示されませんが、IE7/FF では表示されます。
4. 絶対配置レイヤーの隣接フローティング レイヤーの幅が親レイヤーの幅と等しい場合、フロートがクリアされると、IE6/7 では絶対配置レイヤーが表示されませんが、FF では表示されます。

このバグの解決方法は非常に簡単です。絶対配置レイヤーがフローティング レイヤーの隣に配置されていないことを確認するだけです。絶対配置要素と他の要素の間に空の div を追加するという、さらに簡単な方法もあります。
絶対配置された要素が不思議に消えてブロックされる現象を見てみましょう。まず、関連するいくつかの配置機能を理解しましょう。
1. 相対的に配置された要素のデフォルトの z-index 値は 0 です。
2. 相対配置が 2 つ同時に出現した場合、後のコードの z-index が優先されます。
3. 子は親によって設定された z-index に従います。子が絶対位置と z-index を設定すると、親を突破して表示できます。次のコードを参照してください。

コードをコピー
コードは次のとおりです。

<div style=”位置:相対; 背景:#FF0000; 幅:200px; 高さ:100px;”>
<div style="position:absolute; background:#FFFF00; width:49px; height:50px; left:106px; top:310px; z-index:100"></div>
</div>
<div style=”位置:相対; 背景:#000000; 幅:200px; 高さ:100px;”></div>
<div style=”位置:相対; 背景:#9900FF; 幅:200px; 高さ:100px;”></div>

コードの説明: 上には 3 つの隣接する相対配置レイヤーがあります。最初のレイヤーに対して絶対配置のレイヤーが追加されます。理論上、この絶対配置要素は 3 つの相対配置要素の上にあります。ただし、実際には表示されません。 z-index 値を設定しても効果はありません。
インターネット上のこのバグの解決策は、一般的に、ハックを使用して B を負の値にして、IE での B のレベルを下げることです。ただし、この方法では、z-index が負の場合に新しい IE バグが発生します。配置の特性に応じて、この IE バグを回避できます。
表面的には、下のレイヤーが絶対配置された上のレイヤーを覆っています。実際、下のレイヤーは絶対配置された親レイヤーを覆っています。親レイヤーの z-index を、その後ろのレイヤーの z-index よりも大きく設定するだけで済みます。

<<:  CSS で中空マスク レイヤーを実装するサンプル コード

>>:  MySQLサブクエリでorder byが効かない問題の解決方法

推薦する

面接で聞かれる可能性のあるCSSに関する質問

この記事は、100 回書かれ、質問された CSS の質問を記念するためのものです。聞く: CSS セ...

JavaScript イベント キャプチャ バブリングとキャプチャの詳細

目次1. イベントの流れ1. コンセプト2. DOMイベントフロー2. イベントの委任1. イベント...

JavaScript での正規表現の使用について詳しく学ぶ

目次1. 正規表現とは何か1. 正規表現の特徴2. 正規表現の使用2. 正規表現における特殊文字1....

js 実行コンテキストとスコープの概要

目次序文文章1. JavaScriptコードの実行プロセスに関連する概念2. 実行コンテキストと実行...

Dockerの基本的なネットワーク構成の詳細な説明

外部アクセスポートをランダムにマップする -P フラグを使用すると、Docker は 49000 か...

MySQLリモートアクセスの設定方法をステップバイステップで説明します

序文MySQL データベースを使用する場合、クライアントはデータベース サーバーにリクエストを送信す...

Dockerの一般的なコマンドとヒントのまとめ

インストールスクリプトUbuntu / CentOS Debian のインストールに問題があるようで...

Linux パーティションまたは論理ボリュームにファイルシステムを作成する方法

序文システムにファイル システムを作成し、それを永続的または非永続的にマウントする方法を学習します。...

MySQL の最適化: サブクエリの代わりに結合を使用する

サブクエリの代わりにJOINを使用するMySQL はバージョン 4.1 以降で SQL サブクエリを...

Javascript デザインパターン プロトタイプ モードの詳細

目次1. プロトタイプモード例1例2例3 2. オブザーバーパターン1. プロトタイプモードプロトタ...

Vue Element-ui フォーム検証ルールの実装

目次1. はじめに2. ルール検証の入力モード2.1 サンプルコード2.2、フォーム項目2.3. 小...

React プロジェクトで eslint の Baidu スタイルを使用する詳細な説明

1. Baidu Eslint Ruleプラグインをインストールする npm i -D eslint...

ポータルサイト再設計のユーザーエクスペリエンス

<br />2006年10月12日のNetEaseの新ホームページの公開から、2008年...

フローティングメニュー、上下スクロール効果を実現できます

コードはさらに合理化できますが、時間の制約があるため、まずはここで投稿して、自分で最適化してメニュー...

JavaScript オブジェクトを作成する 3 つの方法

目次1. オブジェクトリテラル2. newキーワードはオブジェクトを作成する3. Object.cr...