2017-02-02 2 views
0

Hei,Выравнивание гибких элементов к гибкому концу

Я создаю схему сетки и, пытаясь выровнять элементы на гибком конце или начале, высота/ширина становится равной нулю. Что мне интересно, возможно ли выровнять элементы в контейнере гибких дисков с вершиной/дном/центром БЕЗ указания высоты/ширины? В моем случае я не указал высоту, и она не работает. Если я укажу его, он будет работать. Строка, которая не работает, комментируется в первом примере.

Вот код:

.flex-container { 
 
    display: flex; 
 
    background: silver; 
 
    width: 400px; 
 
    height: 200px; 
 
    //align-items: flex-start; 
 
} 
 

 
.flex-item { 
 
    background: blue; 
 
    flex: 1 0 10px; 
 
    margin: 5px; 
 
} 
 

 
.flex-container2 { 
 
    display: flex; 
 
    background: silver; 
 
    width: 400px; 
 
    height: 200px; 
 
    align-items: flex-end; 
 
} 
 

 
.flex-item2 { 
 
    background: blue; 
 
    height: 50px; 
 
    flex: 1 0 10px; 
 
    margin: 5px; 
 
}
<div class="flex-container"> 
 
    <div class="flex-item"></div> 
 
    <div class="flex-item"></div> 
 
    <div class="flex-item"></div> 
 
    <div class="flex-item"></div> 
 
</div> 
 

 
<br> 
 

 
<div class="flex-container2"> 
 
    <div class="flex-item2"></div> 
 
    <div class="flex-item2"></div> 
 
    <div class="flex-item2"></div> 
 
    <div class="flex-item2"></div> 
 
</div>

+0

Просьба уточнить вашу конкретную проблему или добавить дополнительные детали, чтобы выделить именно то, что вам нужно. Как это написано в настоящее время, трудно точно сказать, что вы просите. –

+0

Я прояснил все, есть ответ ниже. Я просто хотел, чтобы пустые контейнеры выровнялись сверху/снизу родительского контейнера с гибким концом или изгибом без указания высоты или ширины. Я забыл о содержании, хотя .. – Prototype

ответ

1

в качестве значения по умолчанию для ALIGN-элементов является stretch, следовательно, они заполняют их родителей высоту, и вы измените его flex-start/flex-end, строка Элементы flex становятся 0 в высоту и нуждаются в содержимом (или высоте/минимальной высоте), чтобы вы могли их видеть.

.flex-container { 
 
    display: flex; 
 
    background: silver; 
 
    width: 400px; 
 
    height: 200px; 
 
    align-items: flex-start; 
 
} 
 

 
.flex-item { 
 
    background: blue; 
 
    min-height: 20px; 
 
    flex: 1 0 10px; 
 
    margin: 5px; 
 
} 
 
.flex-item:nth-child(even) { 
 
    align-self: flex-end; 
 
} 
 

 
.flex-container2 { 
 
    display: flex; 
 
    background: silver; 
 
    width: 400px; 
 
    height: 200px; 
 
    align-items: flex-end; 
 
} 
 

 
.flex-item2 { 
 
    background: blue; 
 
    height: 50px; 
 
    flex: 1 0 10px; 
 
    margin: 5px; 
 
}
<div class="flex-container"> 
 
    <div class="flex-item">They need content or a height/min-height</div> 
 
    <div class="flex-item">They need content or a height/min-height</div> 
 
    <div class="flex-item"></div> 
 
    <div class="flex-item"></div> 
 
</div> 
 

 
<br> 
 

 
<div class="flex-container2"> 
 
    <div class="flex-item2"></div> 
 
    <div class="flex-item2"></div> 
 
    <div class="flex-item2"></div> 
 
    <div class="flex-item2"></div> 
 
</div>

+0

Полностью забыл о содержании. Я играл только с пустыми контейнерами, и я знал, что он работал в последний раз, но теперь он просто не хотел играть по-своему. Я использовал вариант с высотой или шириной, но я хотел, чтобы они росли без указания высоты или ширины. Спасибо! – Prototype

Смежные вопросы