У меня возникли проблемы с тем, что Chrome обратит внимание на гибкую основу flex: 1 1 25%
в макете flex-direction: column
. Он отлично работает в макете row
.
Ниже представлен фрагмент ниже: желтые, синие и розовые полосы имеют гибкую основу 50px, 25% и 75%, как показано в обоих направлениях.
Если вы запустите его в Firefox (или IE11 или Edge), то столбец и строка разделите область как ожидалось:
Но если вы запустили его в Chrome (47) или в Safari (9.0.3), расположение столбцов слева, похоже, полностью игнорирует флеш-основу - высота баров, похоже, не имеет отношения к flex -базис:
Единственное различие между левым и правым - это flex-direction
.
.container {
width: 400px;
height: 200px;
display: flex;
background: #666;
position: relative;
}
.layout {
flex: 1 1 100%; /* within .container */
margin: 10px;
display: flex;
}
.row {
flex-direction: row;
}
.column {
flex-direction: column;
}
.exact {
flex: 1 1 50px;
background: #ffc;
}
.small {
flex: 1 1 25%;
background: #cff;
}
.large {
flex: 1 1 75%;
background: #fcf;
}
<div class="container">
<div class="layout column">
<div class="exact">50px</div>
<div class="small">25%</div>
<div class="large">75%</div>
</div>
<div class="layout row">
<div class="exact">50px</div>
<div class="small">25%</div>
<div class="large">75%</div>
</div>
</div>