CSS, плавающий с перекрытием - PullRequest
30 голосов
/ 24 февраля 2009

Я пытаюсь настроить простую горизонтальную структуру вкладок для страницы, над которой я работаю, и у меня возникают некоторые проблемы с плавающим 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 ]

65 голосов
/ 24 февраля 2009

Свойство 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; }

Я дам тебе то, что ты хочешь. Я добавил положение: относительное; и изменил z-индекс .left до 3 (с 2) и изменил z-индекс .right до 2 (с 3).

8 голосов
/ 24 февраля 2009

z-index не влияет на элементы, которые не расположены (например, position:absolute;)

2 голосов
/ 26 марта 2015

Используйте свойство position для элемента upper. Добавление position:relative к .left.

0 голосов
/ 24 февраля 2009

Отрицательный margin-left?

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