CSS - Z-Index: Maстерство分层元素的艺木

Здравствуйте, будущие волшебники веб-дизайна! Сегодня мы погрузимся в один из самых магических свойств CSS: z-index. Это как суперспособность, которая позволяет вам контролировать, какие элементы appear над другими. Волнующе, правда? Давайте начнем это путешествие вместе!

CSS - Z-Index

Что такое Z-Index?

Прежде чем мы углубимся в детали, давайте поймем, что такое z-index. Представьте, что вы раскладываете стопку бумаг на вашем столе. Z-index какждый выбор, какая бумага идет сверху. В веб-дизайне он помогает нам контролировать порядок стекающих элементов, которые перекрывают друг друга.

Краткий урок истории

В те давние времена веб-дизайна, создание многослойных макетов было кошмаром. Мы были вынуждены использовать неуклюжие таблицы или обращаться к фреймам (ую!). Затем появился z-index, и внезапно мы могли создавать сложные, перекрывающиеся дизайны с легкостью. Это было как discovery secret passage в видеоигре!

Possible Values

Теперь давайте посмотрим на различные значения, которые может принимать z-index:

Значение Описание
auto Значение по умолчанию. Элементы располагаются в соответствии с их порядком в HTML
number Может быть положительным или отрицательным. Больше числа appear сверху меньше чисел
initial Устанавливает z-index в значение по умолчанию
inherit Наследует значение z-index от родительского элемента

Применяется к

Z-index применяется к позиционированным элементам (position: relative, absolute, fixed или sticky). Он не работает на статических элементах, которые являются позиционированием по умолчанию.

Синтаксис DOM

Вот как вы можете установить z-index в вашем HTML:

<div style="z-index: 1;">Я сверху!</div>
<div style="z-index: 0;">Я снизу!</div>

Но помните, обычно лучше держать ваши стили в отдельном файле CSS. Давайте посмотрим, как это выглядит:

.on-top {
z-index: 1;
}
.below {
z-index: 0;
}
<div class="on-top">Я сверху!</div>
<div class="below">Я снизу!</div>

CSS z-index - значение auto

Когда вы не указываете z-index или устанавливаете его в 'auto', элементы стекаются в порядке, в котором они appear в HTML. Давайте посмотрим пример:

<div class="box red">Красный ящик</div>
<div class="box blue">Синий ящик</div>
<div class="box green">Зеленый ящик</div>
.box {
width: 100px;
height: 100px;
position: absolute;
}
.red {
background-color: red;
left: 0;
top: 0;
}
.blue {
background-color: blue;
left: 50px;
top: 50px;
}
.green {
background-color: green;
left: 100px;
top: 100px;
}

В этом случае зеленый ящик будет сверху, затем синий, затем красный. Это как если бы они играли в прыжки!

CSS z-index - с положительным целым числом

Теперь давайте немного изменим ситуацию. Мы можем использовать положительные целые числа для явного управления порядком стека:

.red {
background-color: red;
left: 0;
top: 0;
z-index: 3;
}
.blue {
background-color: blue;
left: 50px;
top: 50px;
z-index: 2;
}
.green {
background-color: green;
left: 100px;
top: 100px;
z-index: 1;
}

С этими значениями z-index, красный будет сверху, затем синий, затем зеленый. Это как если бы мы дали им ВИП-пропуска в эксклюзивный клуб, с красным как самым важным гостем!

CSS z-index - с отрицательным целым числом

Отрицательные значения z-index такие как отправка элементов в подвал. Они будут appear за элементами с положительным или kein z-index:

.background {
background-color: yellow;
z-index: -1;
}
.content {
z-index: 0;
}

Здесь желтый фон всегда будет позади контента. Это как если бы вы установили задник для спектакля!

CSS z-index - с позиционированием sticky

Позиционирование sticky как Giving element permission to leave its normal flow, but only under certain conditions. Z-index также работает с sticky позиционированием:

.sticky-header {
position: sticky;
top: 0;
z-index: 100;
}

Этот заголовок будет прилипать к вершине области просмотра при прокрутке, и он останется сверху другого контента благодаря своему высокому z-index. Это как верный друг, который всегда имеет вашу спину!

CSS z-index - с固定ной позицией

Фиксированное позиционирование похоже на абсолютное, но оно всегдаrelative к области просмотра. Z-indexочень полезен здесь:

.modal {
position: fixed;
z-index: 1000;
}
.overlay {
position: fixed;
z-index: 999;
}

Это обеспечивает, чтобы ваш modal dialog всегда appear сверху overlay. Это как сделать sure, что звезда шоу всегда в центре внимания!

CSS z-index - с статической позицией

Помните, когда я говорил, что z-index не работает с статическим позиционированием? Вот что происходит:

.static-element {
position: static;
z-index: 999; /* Это не зробитничего */
}

Это как пытаться использовать заклинание в мире маглов - это просто не работает!

CSS z-index - с относительной позицией

Относительное позиционирование это где z-index really shines. Оно позволяет вам создавать сложные макеты, не изменяя поток документа:

.parent {
position: relative;
}
.child1 {
position: relative;
z-index: 2;
}
.child2 {
position: relative;
z-index: 1;
}

Здесь child1 будет appear сверху child2, даже если child2 comes later в HTML. Это как давать вашим элементам суперсилы, чтобы violate gravity!

И вот вы и есть,folks! Вы только что повысили свои навыки CSS с силой z-index. Помните, с великой силой приходит великая ответственность. Используйте z-index мудро, и ваши макеты будут вам благодарны. Счастливого кодирования, и да будет с вами z-index!

Credits: Image by storyset