#html #css #image #flexbox #height
Вопрос:
эта базовая компоновка стека на основе flexbox отлично работает:
<body>
<div class="flexcontainer">
<header>
header text
</header>
<article>
bugs bunny
</article>
</div>
</body>
body{
height: 500px;
}
.flexcontainer{
height: 500px;
display: flex;
flex-direction: column;
}
header{
height:100px;
background:lightsalmon;
}
article{
flex: 1 0 200px;
background: lightseagreen;
}
корпус, а также флексконтейнер закреплены на высоте 500 пикселей.
заголовок фиксирован на высоте 100 пикселей.
статья имеет гибкий рост 1 и расширяется до 400 пикселей;
здесь все хорошо.
демо: https://jsfiddle.net/6Lkmf5qj/
но теперь я добавляю элемент изображения в статью:
- внутренняя высота изображения составляет 600.
- css устанавливает высоту: 100% для тега img.
<body>
<div class="flexcontainer">
<header>
headerino
</header>
<article>
text
<img src="https://cdn-blob.austria.info/cms-uploads-prod/default/0002/77/thumb_176893_default_gallery_big.jpeg?cachebuster=1625673026" />
</article>
</div>
</body>
body{
height: 500px;
}
.flexcontainer{
height: 500px;
display: flex;
flex-direction: column;
}
header{
height:100px;
background:lightsalmon;
}
article{
flex: 1 0 200px;
background: lightseagreen;
}
img{
height: 100%;
}
демо: https://jsfiddle.net/6Lkmf5qj/2/
теперь статья увеличивается до 600 пикселей, а тело становится больше.
есть ли способ создать макет стека с фиксированным заголовком и вторым элементом, который занимает оставшееся пространство и помещает изображение во второй элемент таким образом, чтобы это изображение занимало высоту этого элемента без его увеличения?