2015-03-19 14 views
13

Ich verwende Flexbox zum Layout einer Seite, weil das wachsende Verhalten ist nützlich. Aber ich möchte das schrumpfende Verhalten vollständig verhindern.Flexbox schrumpfen

Wie auch immer, um dies zu verwalten?

Beispielcode:

<div class="flex-vertical-container"> 
    <div class="flex-box"> 
     This one should grow but not shrink 
    </div> 
    <div></div> 
    <div></div> 
</div> 

CSS

.flex-vertical-container { 
    display: flex; 
    flex-direction: column; 
} 

.flex-box { 
    flex: 1; 
} 

Antwort

23

Versuchen Sie, die flex-shrink Eigenschaft 0 auf der .flex-box Einstellung.

+0

Aus irgendeinem Grund hat 'flex-shrink: 0;' nicht funktioniert, aber manuell: 'flex-shrink: 1 0 auto;' hat gut funktioniert ... –

+1

flex-shrink: 1 0 auto; scheint keine gültige Eigenschaft zu sein. –

+2

sie wahrscheinlich bedeutete 'flex: 1 0 auto;' –

11

Fügen Sie eine min-width mit dem, was Sie wollen, den kleinstmöglichen Wert der Box zu sein. Flexbox wird die Breite unterhalb der Mindestbreite nicht verkleinern.

+0

min-Breite funktioniert gut, aber in responsive Design tut es nicht passen Sie mit dem Leerzeichen an, wenn es kleiner ist als angegeben. flex-shrink funktioniert bei mir überhaupt nicht. –

+0

Außerdem verwendet Safari immer noch eine Eigenschaft mit minimaler Breite für das Verhalten der Flexbox, was zu seltsamen Cross-Browser-Problemen zwischen IE - Safari und "dem Rest" führt. Überprüfen Sie die Hinweise auf kann ich verwenden: http://caniuse.com/#search=flexbox – Silom