Mam problem z próbą ułożenia tego zestawu #container
powinien być dokładnie taki height
z viewport
, #caption
powinien take as much height as it needs
i img in #image
powinien fill the remaining height
(zachowując proporcje). Nigdy nie powinien #container
przekroczyć rzutnię height
.
<div id="container">
<div id="image">
<img src="/images/my-image.jpg" alt="my-image">
</div>
<div id="caption">
<p>
Some info about this image.<br>
Sometimes this could be two lines.<br>
Maybe even three.
</p>
</div>
</div>
Oto przykład, jak to działa dynamicznie:
Jakieś sugestie? Bawiłem się flexem i stawiam też, ale bezskutecznie, strona zawsze kończy się powyżej widoku height
.
Odpowiedzi:
2 dla odpowiedzi № 1możesz użyć flexbox
za to
i możesz potrzebować zapytań o media.
body {
margin: 0
}
#container {
display: flex;
flex-direction: column;
height: 100vh
}
#caption {
flex: 1;
background: red
}
img {
display: block;
margin: auto
}
<div id="container">
<div id="image">
<img src="/images///lorempixel.com/300/500" alt="my-image">
</div>
<div id="caption">
<p>
Some info about this image.
<br>Sometimes this could be two lines.
<br>Maybe even three.
<br>
</p>
</div>
</div>