30

作業中のページに単純な水平タブ構造を設定しようとしていますが、フローティングdivとz-indexの組み合わせで問題が発生しています。

ブラウザで次のコードを表示する:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Untitled Document</title>
    <style type="text/css">
        #main { width: 500px; z-index: 1;}

        .left { float: left; width: 96px; background-color: red; border: 2px solid orange; z-index: 2; margin-right: -2px }
        .right { float: left; width: 396px; background-color: #09c; border: 2px solid green; z-index: 3; }

        .clear { clear: both; }
</style>
</head>

<body>
    <div id="main">
        <div class="left">
            LEFT
        </div>
        <div class="right">
            RIGHT
            <br />
            RIGHT
        </div>
        <div class="clear"></div>
    </div>
</body>
</html>

左側のdivのオレンジ色の境界線が右側のdivの緑色の境界線と重ならないのはなぜですか?

4

4 に答える 4

69

z-indexプロパティは、静的に配置された要素には適用されません。z-indexを使用するには、CSSに静的以外の位置値(相対、絶対、固定)も含める必要があります。

.left { float: left; width: 96px; background-color: red; border: 2px solid orange; z-index: 3; margin-right: -2px; position: relative; }
.right { float: left; width: 396px; background-color: #09c; border: 2px solid green; z-index: 2; position: relative; }

私が思うにあなたが欲しいものをあなたに与えるでしょう。位置を追加しました:相対; .leftのz-indexを3(2から)に変更し、.rightのz-indexを2(3から)に変更しました。

于 2009-02-23T23:01:43.720 に答える
8

z-index配置されていない要素には影響しません(例position:absolute;

于 2009-02-23T23:02:24.123 に答える
2

position要素の上部にプロパティを使用します。に追加position:relative.leftます。

于 2015-03-26T03:21:59.390 に答える
0

ネガティブmargin-left

.right { float: left; width: 396px; background-color: #09c; border: 2px solid green; z-index: 3; margin-left: -5px;}
于 2009-02-23T23:04:46.380 に答える