I have prepared the following simple sample
This code does not apply max-height to .b
when flex-direction is row, and .b
overflows.
However, when the flex-direction is column, the max-height is applied and the .b
does not overhang due to the max-height. Why is this?
I tried changing align-items:stretch
to a value such as flex-start
, but I did not see any change.
<div class="a">
<div class="b">
</div>
</div>
.a {
max-height: 200px;
background: red;
display: flex;
flex-direction: row; /* or column */
}
.b {
overflow: auto;
background: blue;
flex: 1 1 auto;
height: 500px;
}
edit
When a large child element is created in .b
as shown below, it scrolls without overflowing, regardless of whether flex-direction
is specified for row
or column
.
The difference in behavior looks more and more unnatural, even though it should be doing almost the same thing as the code shown above. Why does it behave this way?
<div class="a">
<div class="b">
<div style="height: 500px; background-color: yellow"></div>
</div>
</div>
.a {
max-height: 200px;
background: red;
display: flex;
flex-direction: row; /* or column */
}
.b {
overflow: auto;
background: blue;
flex: 1 1 auto;
}