Avec ce qui suit HTMLetCSS
.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>
L'intérieur divoccupe toute la tête du récipient comme souhaité. Si j'ajoute maintenant un autre contenu, un flux, au conteneur tel que:
.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>
Ensuite, le conteneur défile comme souhaité, cependant l'élément positionné de manière absolue n'est plus ancré au fond du conteneur mais s'arrête au fond visible initial du conteneur. Ma question est; y a-t-il un moyen d'avoir l'élément positionné de manière absolue à la hauteur de défilement complète de son conteneur sans utiliser JS?
top: 0;cela ne fonctionne tout simplement plus.
innerHeight, ce sera difficile. Malheureusement, position:fixedne fonctionne pas à l'intérieur du conteneur car il est hors du flux, donc cette `` solution de contournement '' ne fonctionnera pas également :(