當在div上設置flex-basis:auto時,div垂直展開以適應內容。如何使css彈性框行自動調整圖像水平
HTML:
<div class="parent">
<div class="image">
<img src="http://placebacon.net/400/103">
</div>
<div class="text">
-- Removed for readability --
</div>
</div>
SCSS:
.parent {
position:absolute;
top:0px;
left:0px;
right:0px;
bottom:0px;
display:flex;
flex-direction:column;
.image {
flex-basis:auto;
flex-grow:0;
flex-shrink:0;
img {
width:100%;
height:auto;
}
}
.text {
flex-basis:0px;
flex-grow:1;
flex-shrink:1;
overflow-y:scroll;
}
}
然而,這並不工作水平:
.parent {
position:absolute;
top:0px;
left:0px;
right:0px;
bottom:0px;
display:flex;
flex-direction:row;
.image {
flex-basis:auto;
flex-grow:0;
flex-shrink:0;
img {
height:100%;
width:auto;
}
}
.text {
flex-basis:0px;
flex-grow:1;
flex-shrink:1;
overflow-y:scroll;
}
}
如果您調整父級的高度,圖像將更改大小以保留寬高比。但是,彈出框會保留轉換前圖像的大小。
是否有我需要設置的CSS屬性來獲得預期的行爲?
非常感謝你,一直在我的頭髮一直在這個。是否有規範可以閱讀它描述這個怪癖的地方? – bluelightzero
@bluelightzero我可以告訴的唯一規格是高度:100%;需要一個直接的父母在CSS中設置一個可用的高度,否則它就是100%。表和柔性元素有一些有趣的行爲,它有時部分工作。這裏的情況很明顯;) –