2015-02-20 10 views
5

ho questo caso:Flexbox non altezza di riempimento in IE11

http://codepen.io/anon/pen/radoPd?editors=110

Questo è il codice CSS:

.wrapper{ 
    background-color: red; 
    min-height: 100vh; 
    display: flex; 
} 

.sidebar{ 
    background: orange; 
    flex: 0 0 300px; 
} 
.main{ 
    background-color: green; 
    overflow-y: scroll; 
} 

Per qualche ragione, l'IE11, né il .sidebar né il. l'area principale riempirà l'intera altezza del wrapper.

Ciò è incoerenza tra i browser. è un insetto? Mi sto perdendo qualcosa?

+0

Al momento non ho accesso a IE11, quindi posso solo indovinare. Hai provato a impostare in modo esplicito 'align-items: stretch' su' .wrapper'? Reagisce ad altri valori, come 'center' o' flex-end'? – janfoeh

+0

Ho provato e non ha funzionato :(Funziona con gli altri.So sospetto che i conflitti di stretch in qualche modo con '100vh' –

+0

Non penso che sia probabile, dato che' min-height' funziona su '.wrapper', mentre' allinea La proprietà -items' ha un effetto sui flex-children, non sul contenitore flessibile stesso. – janfoeh

risposta

6

Questo è un noto IE bug che purtroppo è stato chiuso come Won't Fix da IE Team e descritto come segue:

In tutti gli altri browser che supportano FlexBox, una base contenitore flessibile flex-direction:column onorerà i contenitori min-height per calcolare flex-grow lunghezze. In IE10 & 11-preview sembra funzionare solo con un valore esplicito height.

AFAIK e nonostante questa descrizione, il bug si applica anche quando flex-direction è row. Come menzionato nei commenti, Philip Walton ha proposto una soluzione here, che include l'impostazione dell'altezza su un valore fisso, ma questa non è un'opzione per OP.

Come soluzione alternativa propongo di fissare un min-height: 100vh all'elemento main troppo:

.wrapper{ 
    background-color: red; 
    min-height: 100vh; 
    display: flex; 
} 

.sidebar{ 
    background: orange; 
    flex: 0 0 300px; 
} 
.main{ 
    background-color: green; 
    min-height: 100vh; 
} 

Pen here.

+0

Holy F! Ho risposto 2 anni e una mano dopo! Grazie compagno! :) –

+2

Ogni buona domanda merita una risposta adeguata;) –