Порядок сложенных элементов HTML - PullRequest
0 голосов
/ 02 июня 2009

Я смотрю скринкаст jQuery ( jQuery для абсолютных новичков: день 8 ). У него есть этот код:

<script type="text/javascript">
    $(function() {
        $('.wrap').hover(function() {
            $(this).children('.front').stop().animate({ "top" : '300px'}, 900);   
        }, function() {
            $(this).children('.front').stop().animate({ "top" : '0'}, 700);       
        });
    });
</script>

<style type="text/css">

#container {
width: 850px;
text-align: center;
margin: auto;
}

.wrap {
width: 250px;
height: 140px;
position: relative;
overflow: hidden;
padding: 0 1em;
}

img {
position: absolute;
top: 0; left: 0;
}
</style>
</head>

<body>
<div id="container">
    <div class="wrap">
        <img src="back.jpg" alt="image" />
        <img src="front.jpg" class="front" alt="image" />
     </div>
</div>
</body>
</html>

Почему это front.jpg появляется поверх back.jpg? Это просто потому, что front.jpg находится в теге, который идет после тега back.jpg?

Ответы [ 2 ]

4 голосов
/ 02 июня 2009

Когда z-index опущен, следующие братья и сестры автоматически оказываются на более высоком уровне, чем предыдущие братья и сестры. Это ожидаемое поведение.

Цитировать со страниц MDC ниже:

Когда ни один элемент не имеет z-индекса, элементы располагаются в следующем порядке (снизу вверх):

  1. Фон и границы корневого элемента
  2. Потомки в нормальном потоке, в порядке появления (в HTML)
  3. Элементы с потомками в порядке появления (в HTML)

См .: https://developer.mozilla.org/en/understanding_css_z-index и, в частности, первый раздел, https://developer.mozilla.org/en/Understanding_CSS_z-index/Stacking_without_z-index

0 голосов
/ 02 июня 2009

Да, это немного случайность ... z-index должен быть действительно установлен на обоих, чтобы убедиться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...