Высота: 100% переполненного содержимого

Возможно ли, чтобы элемент с position: absolute; имел полную высоту своего родителя, включая переполненное содержимое?

В следующем фрагменте кода элемент .line обрезается при прокрутке .container:

.container {
  position: relative;
  height: 150px;
  width: 300px;
  overflow-y: scroll;
}

.line {
  position: absolute;
  background: #000;
  width: 2px;
  left: 50%;
  height: 100%;
}
<div class = "container">
  <div class = "line"></div>
  <div style = "height: 500px;"></div>
</div>

просто сделайте высоту очень-очень большой ... это вне потока, чтобы у вас не было проблем

Temani Afif 01.09.2018 16:31

@TemaniAfif Спасибо, но это увеличивает высоту родительского элемента.

Jan-Paul Kleemans 01.09.2018 16:34

ай да переполнение будет считаться ...

Temani Afif 01.09.2018 16:35

У пользователей @Roope IE и Edge уже много сломанных вещей, поэтому они этого не заметят: p

Temani Afif 01.09.2018 16:41
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
1
4
60
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

height: 100%; абсолютно позиционированного элемента относится к данной высоте CSS (то есть высоте, определенной в правиле CSS) относительного родителя, а не к его растянутой «реальной высоте» при переполнении. Таким образом, он всегда будет иметь начальную родительскую высоту, которая определяется через CSS.

Чтобы добиться того, чего вы хотите, вам нужно получить родительскую высоту через javascript и применить ее к дочернему элементу.

Ответ принят как подходящий

Добавление другой оболочки может решить проблему:

.container {
  height: 150px;
  width: 300px;
  overflow-y: scroll;
}
.container > div {
  position: relative;
}

.line {
  position: absolute;
  background: #000;
  width: 2px;
  left: 50%;
  height: 100%;
}
<div class = "container">
  <div>
    <div class = "line"></div>
    <div style = "height: 500px;"></div>
  </div>
</div>

Другие вопросы по теме