Con lo siguiente HTML
yCSS
.container {
position: relative;
border: solid 1px red;
height: 256px;
width: 256px;
overflow: auto;
}
.full-height {
position: absolute;
top: 0;
left: 0;
right: 128px;
bottom: 0;
background: blue;
}
<div class="container">
<div class="full-height">
</div>
</div>
El interior div
ocupa la cabeza completa del recipiente como se desee. Si ahora agrego algún otro contenido de flujo al contenedor, como:
.container {
position: relative;
border: solid 1px red;
height: 256px;
width: 256px;
overflow: auto;
}
.full-height {
position: absolute;
top: 0;
left: 0;
right: 128px;
bottom: 0;
background: blue;
}
<div class="container">
<div class="full-height">
</div>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aspernatur mollitia maxime facere quae cumque perferendis cum atque quia repellendus rerum eaque quod quibusdam incidunt blanditiis possimus temporibus reiciendis deserunt sequi eveniet necessitatibus
maiores quas assumenda voluptate qui odio laboriosam totam repudiandae? Doloremque dignissimos voluptatibus eveniet rem quasi minus ex cumque esse culpa cupiditate cum architecto! Facilis deleniti unde suscipit minima obcaecati vero ea soluta odio cupiditate
placeat vitae nesciunt quis alias dolorum nemo sint facere. Deleniti itaque incidunt eligendi qui nemo corporis ducimus beatae consequatur est iusto dolorum consequuntur vero debitis saepe voluptatem impedit sint ea numquam quia voluptate quidem.
</div>
Luego, el contenedor se desplaza como se desee, sin embargo, el elemento absolutamente posicionado ya no está anclado al fondo del contenedor, sino que se detiene en el fondo visible inicial del contenedor. Mi pregunta es; ¿Hay alguna forma de que el elemento absolutamente posicionado tenga la altura de desplazamiento completa de su contenedor sin usarlo JS
?
top: 0;
, simplemente ya no funciona.
innerHeight
, eso será difícil. Desafortunadamente position:fixed
, no funciona dentro del contenedor porque está fuera del flujo, por lo que esta 'solución alternativa' no funcionaría también :(