Ich bin auf Problem mit Dehnungsflexen stecken. Ich habe flexbox Div mit Elementen. Diese Elemente können sich über die gesamte Breite erstrecken und haben eine minimale Breite, sodass 3-4 Elemente in große Bildschirme und 1-2 in kleine Bildschirme passen. Ich möchte ihre Breiten gleich machen, aber das Problem ist, dass eingewickelte Artikel breiter sind, wenn ihre Menge weniger als auf oberen Elementen ist.CSS machen flex umwickelte Elemente nicht überschreiten ihre Geschwister Breite
Angehängt unter meinem aktuellen Ergebnis und erwarteten Verhalten. Wie kann ich es schaffen?
.items {
display: flex;
justify-content: center;
flex-wrap: wrap;
width: 100%;
}
.item {
min-width: 400px;
border: 1px solid black;
margin: 0;
height: 200px;
flex-grow: 1;
}
<div class="items">
<div class="item">1</div>
<div class="item">1</div>
<div class="item">1</div>
<div class="item">1</div>
<div class="item">1</div>
</div>
Dank!
-Update 02.05.2016
Dank @vals kam ich mit prozentualer Breite Lösung für unterschiedliche Bildschirmgrößen ab. (Aber es scheint, ich bin etwas winziges Problem mit 33% Breite Elementen, in denen 1% Leerraum xD um sie links)
.items {
display: flex;
justify-content: center;
flex-wrap: wrap;
width: 100%;
box-sizing: border-box;
align-items: center;
}
@media only screen and (max-width: 820px) {
.item {
width: 100%;
}
}
@media only screen and (min-width: 821px) and (max-width: 1220px) {
.item {
width: 50%;
}
}
@media only screen and (min-width: 1221px) and (max-width: 1620px) {
.item {
width: 33%;
}
}
@media only screen and (min-width: 1621px) and (max-width: 2020px) {
.item {
width: 25%;
}
}
.item {
box-sizing: border-box;
border: 1px solid black;
margin: 0;
height: 200px;
}
<div class="items">
<div class="item">1</div>
<div class="item">1</div>
<div class="item">1</div>
<div class="item">1</div>
<div class="item">1</div>
</div>
Sie benutze 'flex: 1'. Dadurch werden Flex-Elemente angewiesen, den gesamten verfügbaren Speicherplatz im Container zu belegen. Wenn Ihre Priorität Elemente mit gleicher Breite über mehrere Zeilen hinweg hat, ist 'flex: 1' keine Lösung. –