Ich versuche, die ersten beiden untergeordneten Elemente in derselben Zeile beizubehalten, während sich das dritte Element in voller Breite unten befindet, während Flex verwendet wird.
Ich interessiere mich besonders für die in Verwendung flex-grow
und flex-shrink
Eigenschaften auf den ersten 2 Elemente (die nicht mit Prozent einer meiner Gründe ist) aber das dritte Element wirklich volle Breite und unterhalb der ersten beiden sein muss.
Das label
Element wird programmgesteuert nach dem text
Element hinzugefügt, wenn ein Fehler auftritt und ich den Code nicht ändern kann.
Wie erzwinge ich, dass das Beschriftungselement eine Breite von 100% unter den beiden anderen Elementen aufweist, die mit flex positioniert werden?
.parent {
display: flex;
align-items: center;
width: 100%;
background-color: #ececec;
}
.parent * {
width: 100%;
}
.parent #text {
min-width: 75px;
flex-shrink: 2.25;
}
<div class="parent">
<input type="range" id="range">
<input type="text" id="text">
<label class="error">Error message</label>
</div>
wrap
auf dem Container." <- Das hat mir gefehlt. Warum brauchen wir das?flex-wrap: nowrap
ist die Standardeinstellung in einem Flex-Container. @ FernandoBassowidth: 100%
oderflex-basis: 100%
war nicht genug, und es hat nur funktioniert, wenn ichwrap
den Flex-Container eingestellt habe. Habe gerade ein einfaches Beispiel anprobiert und das Flex-Kind geht 100% breit ohnewrap
auf den Container. In meinem Fall muss dann noch etwas los gewesen sein.Sie scheinen nach
min-width
Kind undflex-wrap:wrap
Eltern zu suchen :.parent { display: flex; align-items: center; flex-wrap: wrap; } .parent > * { flex-grow: 1; } .parent > .error { min-width: 100%; background-color: rgba(255,0,0,.3); }
<div class="parent"> <input type="range" id="range"> <input type="text" id="text"> <label class="error">Error message</label> </div>
quelle