2015-08-05 9 views
7

Ich habe eine klebrige Fußzeile mit flexbox erstellt. Es funktioniert in allen Browsern außer IE11.Wie behebe ich eine Flexbox Sticky Footer In IE11

Codepen

html { 
 
    box-sizing: border-box; 
 
} 
 

 
*, *:before, *:after { 
 
    box-sizing: inherit; 
 
} 
 

 
.Page { 
 
    min-height: 100vh; 
 
    display: flex; 
 
    flex-direction: column; 
 
    flex: 1; 
 
} 
 

 
.Page-header { 
 
    background: blue; 
 
} 
 

 
.Page-footer { 
 
    background: green; 
 
} 
 

 
.Page-body { 
 
    background: red; 
 
    flex: 1; 
 
}
<div class="Page"> 
 
    <header class="Page-header"> 
 
    HEADER 
 
    </header> 
 
    <div class="Page-body"> 
 
    BODY 
 
    </div> 
 
    <footer class="Page-footer"> 
 
    FOOTER 
 
    </footer> 
 
</div>

Warum es in IE11 zu brechen und wie kann ich es beheben?

Antwort

6

Das Problem ist, dass in IE11 flexbox min-height nicht honoriert, so dass die Flexbox auf die Höhe ihres Inhalts zusammenfällt.

Sie können es beheben, indem Sie Ihre Flexbox in eine andere Flexbox, die auch flex-direction: column hat. Sie müssen auch flex: 1 auf Ihrer ursprünglichen flexbox setzen. Aus irgendeinem Grund zwingt dies die verschachtelte Flexbox, ihre min-height zu ehren.

Codepen

html { 
 
    box-sizing: border-box; 
 
} 
 

 
*, *:before, *:after { 
 
    box-sizing: inherit; 
 
} 
 

 
.Wrapper { 
 
    display: flex; 
 
    flex-direction: column; 
 
} 
 

 
.Page { 
 
    min-height: 100vh; 
 
    display: flex; 
 
    flex-direction: column; 
 
    flex: 1; 
 
} 
 

 
.Page-header { 
 
    background: blue; 
 
} 
 

 
.Page-footer { 
 
    background: green; 
 
} 
 

 
.Page-body { 
 
    background: red; 
 
    flex: 1; 
 
}
<div class="Wrapper"> 
 
    <div class="Page"> 
 
    <header class="Page-header"> 
 
     HEADER 
 
    </header> 
 
    <div class="Page-body"> 
 
     BODY 
 
    </div> 
 
    <footer class="Page-footer"> 
 
     FOOTER 
 
    </footer> 
 
    </div> 
 
</div>

+4

Ist in IE11 nicht gut funktionieren, wenn Inhalte von '.Seite-body' größer wird dann ist es Elternhöhe: [codepen] (http: // code pen.io/cakeseller/pen/xOopLk) –

+0

@Cake_Seller, hast du dieses Problem gelöst, wenn der innere Inhalt größer wird als der übergeordnete Container? –

+0

@ArtyomPranovich nein, leider nicht. –

14

Versuchen

flex: 1 0 auto; 

für Inhaltsblock

+0

Das hat bei mir funktioniert. – tptcat