Почему внизу страницы не обрезается мой элемент с абсолютным позиционированием - PullRequest
4 голосов
/ 21 февраля 2020

У меня есть два <div> с position: absolute. Один вверху, а другой внизу страницы. Один внизу страницы опускается ниже, чем последний элемент (нижний колонтитул). Моя проблема в том, что даже если мой <div> находится в position: absolute и должен быть удален из потока, моя страница расширяется до размера "1005 *", который "переполнен". Как я могу заставить страницу обрезать все, что превышает мой нижний колонтитул?

Вот что я говорю:

body{
  position: relative;
}

p{
  width: 80%;
  font-size: 50px;
  margin: 0;
}

footer{
  margin-top: 200px;
  position: relative;
}

.bg_gradient.first{
  position: absolute;
  top: 0;
  left: 0;
  width: 1000px;
  height: 1000px;
  
  transform: translate(-400px, -400px);
  
  background: radial-gradient(circle, rgba(254,73,70,1) 0%, rgba(254,73,70,0) 70%);
  z-index: -1;
}

.bg_gradient.last{
  position: absolute;
  bottom: 0;
  left: 0;
  width: 1000px;
  height: 1000px;
  
  transform: translate(-400px, 400px);
  
  background: radial-gradient(circle, rgba(254,73,70,1) 0%, rgba(254,73,70,0) 70%);
  z-index: -1;
}
<body>
  <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Eum voluptas incidunt nulla necessitatibus rerum illum provident ea earum neque officia nam deserunt animi nostrum iusto velit distinctio, dolor eveniet voluptates.</p>
  
  <div class="bg_gradient first"></div>
  
  <div class="bg_gradient last"></div>
  
  <footer>
    <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Facere eligendi maiores dolore mollitia animi a fugit saepe perferendis unde, sequi debitis sint ratione, recusandae tempora quis culpa vitae sed assumenda!</p>
  </footer>
</body>

Ответы [ 2 ]

5 голосов
/ 21 февраля 2020

Почему нижняя часть страницы не обрезает мой элемент с абсолютным позиционированием

Это не должно обрезать его. Вот как это должно работать. Тот факт, что элемент абсолютно позиционирован, не означает, что родительский контейнер не растянется, чтобы вместить его.

1 голос
/ 21 февраля 2020

Спасибо @Mahatmasamatman, все дело в том, что это нормальное поведение.

Тот факт, что элемент абсолютно позиционирован, не означает, что родительский контейнер не растянется для его размещения. - @ Mahatmasamatman

Мое решение состоит в том, чтобы создать элемент div, который будет иметь такую ​​же ширину и высоту, что и мое тело, с помощью position: absolute и установить overflow: hidden, чтобы я мог получить желаемое поведение. Вот jsfiddle с решением

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