Skip to content

Latest commit

 

History

History
28 lines (18 loc) · 3.11 KB

File metadata and controls

28 lines (18 loc) · 3.11 KB

Объясните, что такое z-index и как формируется контекст наложения.

Любой элемент в HTML документе может быть либо на переднем, либо на заднем плане. Если свойства z-index и позиционирование не заданы явно, то порядок наложения равен порядку следования элементов в HTML.

Если позиционирование элементов (и их детей) указано явно, то такие элементы будут перекрывать собой элементы без явно заданного свойства позиционирования.

Если задан z-index. Во-первых, z-index учитывается только на явно позиционированных элементах. Если попытаться установить z-index на непозиционированный элемент, то ничего не произойдет. Во-вторых, значения z-index могут создавать контекст наложения.

Контекст наложения

Элементы с общими родителями, перемещающиеся на передний или задний план вместе, известны как контекст наложения.

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

Новый контекст может быть сформирован в следующих случаях:

  • Если элемент — корневой элемент документа
  • Если элемент позиционирован не статически и его значение z-index не равно auto.
  • Если элемент имеет прозрачность менее 1.

Порядок наложения:

  1. Background и border элемента.
  2. Позиционированные элементы и его дети с z-index < 0.
  3. Элементы блочного уровня в нормальном потоке, то есть у которых position = static.
  4. Плавающие(float) элементы.
  5. inline-элементы.
  6. Элементы с z-index = 0 или auto. Элементы со свойством opacity < 1.