HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-26
1 <p>В уроке про плавающие элементы вы могли увидеть, что элементы HTML могут накладываться друг на друга. Такое же поведение было при выставлении позиционирования отличного от нормального. Наложением элементов можно управлять и с помощью CSS-свойства z-index. Из названия свойства можно увидеть, что речь идет об оси z.</p>
1 <p>В уроке про плавающие элементы вы могли увидеть, что элементы HTML могут накладываться друг на друга. Такое же поведение было при выставлении позиционирования отличного от нормального. Наложением элементов можно управлять и с помощью CSS-свойства z-index. Из названия свойства можно увидеть, что речь идет об оси z.</p>
2 <p>Эта ось отвечает за то, какие элементы будут располагаться на переднем, а какие на дальнем плане. Попробуем использовать на трех блоках абсолютное позиционирование:</p>
2 <p>Эта ось отвечает за то, какие элементы будут располагаться на переднем, а какие на дальнем плане. Попробуем использовать на трех блоках абсолютное позиционирование:</p>
3 <p><a>https://codepen.io/hexlet/pen/MWgRmQK</a></p>
3 <p><a>https://codepen.io/hexlet/pen/MWgRmQK</a></p>
4 <p>Возникнет естественный вопрос: "А где остальные два блока?". Они скрылись за последним блоком .block-three. Когда мы дали каждому блоку абсолютное позиционирование, то начали в одном и том же месте накладывать блоки друг на друга. Первым в угол встал блок .block-one, после этого у браузера возникла задача переместить блок .block-two ровно на это же место. Для этого он выставил приоритет по оси z второму блоку и наложил его на первый. Данная операция повторилась с последним блоком, и он занял видимую позицию, "заслонив" своих братьев.</p>
4 <p>Возникнет естественный вопрос: "А где остальные два блока?". Они скрылись за последним блоком .block-three. Когда мы дали каждому блоку абсолютное позиционирование, то начали в одном и том же месте накладывать блоки друг на друга. Первым в угол встал блок .block-one, после этого у браузера возникла задача переместить блок .block-two ровно на это же место. Для этого он выставил приоритет по оси z второму блоку и наложил его на первый. Данная операция повторилась с последним блоком, и он занял видимую позицию, "заслонив" своих братьев.</p>
5 <p>При таком взаимодействии блоки никуда не исчезают из кода, это можно проверить, выставив разные свойства ширины и высоты для каждого из блоков:</p>
5 <p>При таком взаимодействии блоки никуда не исчезают из кода, это можно проверить, выставив разные свойства ширины и высоты для каждого из блоков:</p>
6 <p><a>https://codepen.io/hexlet/pen/BaBERqe</a></p>
6 <p><a>https://codepen.io/hexlet/pen/BaBERqe</a></p>
7 <p>Свойство z-index позволяет указать, какие элементы и в каком порядке будут накладываться друг на друга. Свойство принимает числовое значение, указывая слой, на котором будет расположен элемент. Чем больше число, тем выше элемент находится по оси z. Важно, что свойство z-index работает только с элементами, у которых установлено свойство position с одним из значений:</p>
7 <p>Свойство z-index позволяет указать, какие элементы и в каком порядке будут накладываться друг на друга. Свойство принимает числовое значение, указывая слой, на котором будет расположен элемент. Чем больше число, тем выше элемент находится по оси z. Важно, что свойство z-index работает только с элементами, у которых установлено свойство position с одним из значений:</p>
8 <ul><li>absolute</li>
8 <ul><li>absolute</li>
9 <li>relative</li>
9 <li>relative</li>
10 <li>fixed</li>
10 <li>fixed</li>
11 <li>sticky</li>
11 <li>sticky</li>
12 </ul><p>Важным для понимания моментом является то, как браузер по умолчанию позиционирует элементы:</p>
12 </ul><p>Важным для понимания моментом является то, как браузер по умолчанию позиционирует элементы:</p>
13 <ol><li>Первым всегда идет элемент HTML. Поверх него накладываются все остальные элементы.</li>
13 <ol><li>Первым всегда идет элемент HTML. Поверх него накладываются все остальные элементы.</li>
14 <li>Далее идут все элементы в нормальном потоке документа. Элементы идут по всем правилам расположения блочных и строчных элементов. Они позиционируются в том порядке, в котором определены внутри HTML-документа.</li>
14 <li>Далее идут все элементы в нормальном потоке документа. Элементы идут по всем правилам расположения блочных и строчных элементов. Они позиционируются в том порядке, в котором определены внутри HTML-документа.</li>
15 <li>В конце накладываются все элементы с position в том порядке, в котором они определены внутри HTML-документа. Это можно увидеть на примерах выше.</li>
15 <li>В конце накладываются все элементы с position в том порядке, в котором они определены внутри HTML-документа. Это можно увидеть на примерах выше.</li>
16 </ol><p>Попробуем поменять порядок элементов в последнем примере. Для этого установим второму и третьему блоку такие значения, чтобы они поменялись местами. Необходимо для блока .block-two установить значение z-index больше, чем у блока .block-three. В результате третий блок "исчезнет", так как имеет меньшие размеры:</p>
16 </ol><p>Попробуем поменять порядок элементов в последнем примере. Для этого установим второму и третьему блоку такие значения, чтобы они поменялись местами. Необходимо для блока .block-two установить значение z-index больше, чем у блока .block-three. В результате третий блок "исчезнет", так как имеет меньшие размеры:</p>
17 <p><a>https://codepen.io/hexlet/pen/XWrQapG</a></p>
17 <p><a>https://codepen.io/hexlet/pen/XWrQapG</a></p>
18 <p>Свойство<strong>z-index</strong>может принимать отрицательные, положительные значения и ноль. Здесь нет никакой магии и отрицательные значения будут находиться "ниже" положительных. В реальных проектах хорошей практикой считается установка значения<strong>z-index</strong>с шагом в<em>100</em>при достаточно больших значениях. Это делается для удобства чтения и правок стилей:</p>
18 <p>Свойство<strong>z-index</strong>может принимать отрицательные, положительные значения и ноль. Здесь нет никакой магии и отрицательные значения будут находиться "ниже" положительных. В реальных проектах хорошей практикой считается установка значения<strong>z-index</strong>с шагом в<em>100</em>при достаточно больших значениях. Это делается для удобства чтения и правок стилей:</p>
19 <p>Определить, в каком порядке расположатся элементы, при таких значениях достаточно трудно. Необходимо вчитываться в каждую цифру. Сравните это с таким вариантом:</p>
19 <p>Определить, в каком порядке расположатся элементы, при таких значениях достаточно трудно. Необходимо вчитываться в каждую цифру. Сравните это с таким вариантом:</p>
20 <p>При использовании значений менее<em>100</em>можно игнорировать эту рекомендацию.</p>
20 <p>При использовании значений менее<em>100</em>можно игнорировать эту рекомендацию.</p>