Как корректно разместить контент за шапкой, если у контента задано значение position: absolute?

  • 3 сентября 2023 г. 10:06
Ответы на вопрос 2
Если у контента задано значение position: absolute, то он будет смещаться относительно ближайшего родителя с позиционированием, установленным как relative, absolute или fixed. Если у вас нет такого родителя, вы можете создать его, обернув контент в другой элемент с позиционированием relative.

Пример кода:

HTML:
```html
<div class="wrapper">
  <header>Шапка</header>
  <div class="content">
    <p>Контент</p>
  </div>
</div>
```

CSS:
```css
.wrapper {
  position: relative; /* Ближайший родитель с позиционированием */
}

header {
  position: fixed; /* Зафиксированная шапка */
  top: 0;
  left: 0;
  width: 100%;
  background-color: #f1f1f1;
  padding: 10px;
}

.content {
  position: absolute; /* Контент с абсолютным позиционированием */
  top: 50px; /* Высота шапки */
  left: 0;
  width: 100%;
  padding: 10px;
}
```

В этом примере шапка будет зафиксирована сверху страницы, а контент будет находиться под шапкой и не перекрывать ее.

Если z-индекс не работает для фиксированной шапки, возможно, причина заключается в замороженном позиционировании элементов. Для исправления этой проблемы вы можете попробовать установить z-индекс для всех прочих элементов на странице на значение, меньшее, чем у фиксированной шапки:

```css
* {
  position: relative;
  z-index: 1;
}

header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  background-color: #f1f1f1;
  padding: 10px;
  z-index: 2; /* Установка z-индекса для фиксированной шапки */
}
```

Таким образом, все остальные элементы на странице будут отображаться ниже фиксированной шапки, даже если для них не задано явное позиционирование или z-индекс.
1. Создайте контейнер с фиксированной позицией и полосой прокрутки:
```html
``` ```css .container { position: fixed; overflow-y: scroll; scrollbar-width: none; /* Дополнительные стили */ } ``` 2. Установите z-index контейнера меньше, чем у шапки: ```css .container { position: fixed; overflow-y: scroll; scrollbar-width: none; z-index: 1; /* Задайте значение, меньшее, чем у шапки */ /* Дополнительные стили */ } ``` Обратите внимание, что здесь предполагается, что вы уже имеете шапку (навигационную панель, заголовок и т.д.), с которой возникла проблема перекрытия контента. Также, не забудьте вставить свои собственные стили вместо комментариев "Дополнительные стили".
Похожие вопросы