CSS3 で z-index が効かない問題の解決方法

CSS3 で z-index が効かない問題の解決方法

最近、CSS3 と js の組み合わせを作成したのですが、z-index が有効にならないケースが多数発生しました。

1. z-indexを使用する場合、要素には配置がありません(静的配置を除く)

2. 配置の場合、要素の子要素が後から来て要素を覆ってしまうため、要素の z-index は有効になりません。解決方法は、要素を覆っている子要素の z-index を負の数に設定することです。

ドロップダウンボックスの例:

1. カバーする場合:

2. ドロップダウンボックスのZインデックスを負の数に設定する

コード:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<ヘッド>
<meta http-equiv="コンテンツタイプ" コンテンツ="text/html; charset=utf-8">
<title>無題のドキュメント</title>
<スタイル タイプ="text/css">
* {
    パディング: 0;
    マージン: 0;
    リストスタイル: なし;
}
。全て {
    幅: 330ピクセル;
    高さ: 120px;
    オーバーフロー: 非表示;
    背景: url(img/bg.jpg) 繰り返しなし;
    マージン: 100px 自動;
    行の高さ: 30px;
    テキスト配置: 中央;
    左パディング: 10px;
    下マージン: 0;
}
.all ul {
    位置: 相対的;
    高さ: 30px;
    幅: 100%;
}
.all ul li {
    幅: 100ピクセル;
    高さ: 30px;
    背景: url(img/libg.jpg);
    フロート: 左;
    右マージン: 10px;
    位置: 相対的;
    カーソル: ポインタ;

}
.all ul ul {
    位置: 絶対;
    左: 0;
    上:-90px;
    /*display: none; 一瞬の問題です*/
    遷移: すべて 1;
    不透明度: 0;
    /* 前のボックスの z-index が大きい場合でも、後のボックスは前のボックスを覆います。
    ただし、後続のボックスのZインデックスを負の数に設定することもできます*/
    zインデックス:-1;

}

.all ul .lvTow {
    上:-90px;
    不透明度: 0;
}

.all ul .show{
    上:30px;
    不透明度: 1;
}

</スタイル>
</head>

<本文>
<div class="all" id="リスト">
    <ul>
        <li>第一レベルメニュー<ul>
                <li>セカンダリメニュー</li>
                <li>セカンダリメニュー</li>
                <li>セカンダリメニュー</li>
            </ul>
        </li>
        <li>第一レベルメニュー<ul>
                <li>セカンダリメニュー</li>
                <li>セカンダリメニュー</li>
                <li>セカンダリメニュー</li>
            </ul>
        </li>
        <li>第一レベルメニュー<ul>
                <li>セカンダリメニュー</li>
                <li>セカンダリメニュー</li>
                <li>セカンダリメニュー</li>
            </ul>
        </li>
    </ul>
</div>
</本文>
</html>
<スクリプト>
    // オブジェクトを取得する オブジェクトをトラバースする 操作 モジュールを表示する モジュールを非表示にする function List(id) { // オブジェクトを取得する this.id = document.getElementById(id);
        // id値を取得します this.lis = this.id.children[0].children; // 第1レベルメニュー内のすべてのliを取得します
    }
    // init 初期化 List.prototype.init = function() { // すべての li を走査して表示と非表示を切り替える var that = this;
        for(var i=0;i<this.lis.length;i++)
        {
            this.lis[i].index = i;
            this.lis[i].onmouseover = 関数() {
                that.show(this.children[0]); //表示する }
            this.lis[i].onmouseout = 関数() {
                that.hide(this.children[0]); // 非表示にする }
        }
    }
    // 表示モジュール List.prototype.show = function(obj) {
// obj.style.display = "ブロック";
        obj.className = "表示";

    }
    //モジュールを非表示 List.prototype.hide = function(obj) {
// obj.style.display = "なし";
        obj.className = "lvTow";
    }
    var list = new List("list"); // listというオブジェクトをインスタンス化します
    リストを初期化します。
</スクリプト>

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

<<:  HTML ベースタグ target=_parent の使用の紹介

>>:  MySQLのネクストキーロックのロック範囲についての簡単な説明

推薦する

CSSコンテンツ属性の具体的な使用法

コンテンツ属性は通常、::before および ::after 疑似要素で使用され、疑似要素のコンテ...

WeChatアプレットが計算機機能を実装

WeChatミニプログラムはますます人気が高まっています。多くの大学生が独学で学んでいるのも見てきま...

uniapp WeChatミニプログラムのグローバル共有を実装するためのサンプルコード

目次グローバル共有コンテンツファイルを作成するファイルをインポートしてグローバルに登録するページ共有...

MySQL パーティションテーブルの正しい使用方法

MySQL パーティションテーブルの概要数億、あるいは数十億ものレコードを格納するテーブルに遭遇する...

vscode を使用したリモート Linux 開発の実装

過去に別れを告げるvscode にリモート SSH が導入される前は、Linux サーバー開発者の多...

MySQL ストアド プロシージャにおけるループ ステートメント (WHILE、REPEAT、LOOP) の使用法の分析

この記事では、例を使用して、MySQL ストアド プロシージャでのループ ステートメント (WHIL...

MySQL でテーブルを削除する 3 つの方法 (要約)

ドロップテーブルドロップはテーブル情報を直接削除するため、最も高速ですが、データを取得することはでき...

MySQLコマンドが中国語で入力できない問題の解決方法

問題を見つける最近、MySQL コマンドを使用して MySQL サーバーに接続したときに、以下のよう...

mysql+mybatisはストアドプロシージャ+トランザクション+複数同時シリアル番号取得を実装します

データベースストアドプロシージャ`generate_serial_number_by_date` が...

HTML の iframe と frame の違いを例を使って説明します

プロジェクトで frameset 属性を使用したことがあるかどうかはわかりません。昨年、オンライン ...

du コマンドを使用して Linux システム ディレクトリのサイズを取得する方法

Linux システムを使用したことがある人なら、Linux システムの ls コマンドは通常、ファイ...

MySQL PXC は IST 送信のみで新しいノードを構築します (推奨)

需要シナリオ: 既存の PXC 環境には大量のデータがあります。新しく購入したサーバーをこのクラスタ...

WeChatアプレットが弾丸画面を送信するビデオプレーヤーを実装

この記事では、WeChatアプレットでビデオプレーヤーの集中砲火を実装するための具体的なコードを参考...

Linux での MySQL 5.7.18 バイナリ パッケージのインストール チュートリアル (デフォルトの構成ファイル my_default.cnf なし)

現在、MySQL を学習中です。私は完全な初心者で、Linux についてはあまり知りません。今後の作...

Dockerはコンテナにポートを動的に公開します

コンテナのIPアドレスを表示するdocker examine <コンテナ名またはID> ...