Com o seguinte HTMLeCSS
.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>
O interior divocupa toda a parte superior do recipiente conforme desejado. Se eu adicionar algum outro conteúdo de fluxo ao contêiner, 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>
Em seguida, o contêiner rola conforme desejado, no entanto, o elemento posicionado absolutamente não está mais ancorado ao fundo do contêiner, mas para no fundo visível inicial do contêiner. Minha pergunta é; existe alguma maneira de ter o elemento posicionado absolutamente ser a altura de rolagem completa de seu contêiner sem usar JS?
top: 0;lo, ele simplesmente não funcionará mais.
innerHeight, isso será difícil. Infelizmente position:fixednão funciona dentro do contêiner porque está fora do fluxo, então essa 'solução alternativa' também não funcionaria :(