Flexbox Alternative für IE9
Entwickelt ich eine Webseite mit Chrome anfangs (als die einfachste design für die), aber jetzt bin ich immer auf den IE-support-Modell.
Das sagte, begann ich mit IE11 und die notwendigen änderungen für die skurrile Unterschiede zwischen IE & Chrom. Aber jetzt bin ich scheiden die IE-Versionen. Ich war in der Lage, 90% der Webseiten korrekt anzuzeigen, mit CSS für IE10. Aber jetzt sind die meisten der CSS-Elemente, die ich für diese beiden Browser sind zum größten Teil irrelevant für den IE9.
Ich würde gerne halten Sie von benötigen, um mehrere browser-spezifischen Stylesheets, wenn möglich.
Ersten Probleme ist die Umwandlung IE10+ Umsetzung der flexbox-Modell von CSS.
Aktuellen Implementierung für die flexbox-container:
div#navContainer{
display: flex; //Current browsers (IE11, Chrome, etc)
display: -ms-flexbox; //IE10 implementation
}
div#TeamsSection {
text-align: center;
}
div.NavSection {
margin: 0px 7px;
padding: 4px 0px 0px 0px;
}
div#teams {
margin: 0px;
select {
margin: 0px;
}
}
HTML:
<div id="navContainer" class="float-left">
<div id="LogoSection" class="NavSection">
<div id="Logo">
<img src="Images/Logo.png" />
</div>
</div>
<div id="TeamsSection" class="NavSection">
<label>Select a Team:</label><br />
<div id="teams"></div>
</div>
<div id="UserSection" class="NavSection hidden">
<label>Select a User:</label><br />
<div id="requestor"></div>
</div>
</div>
Weiß ich IE9 nicht implementiert Flexbox, also bitte beleidigen Sie nicht die Forschung, die ich bereits getan haben. Ich brauche eine gleichwertige Umsetzung, die mir erlauben, ändern Sie die HTML so wenig wie möglich.
#navContainer
- element ist das eine, was die out-of-flow-problem für IE9. Ich habe das HTML-und der erweiterte Kinder-CSS-Stile. # - teams
& #requestor
sind gefüllt Schnurrbart von Vorlagen. Wieder ist das problem wirklich mit der #navContainer
, wie IE10+ und Chrome funktioniert es wie erwartet. Seine IE9, die ich brauche, um zu versuchen und erhalten eine angemessene Umsetzung. InformationsquelleAutor der Frage GoldBishop | 2014-06-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden modernizr um zu erkennen, ob flex-Funktionen vorhanden sind, und bieten fallback-Stile, wo nötig. Modernizr wird hinzufügen von Klassen wie
flexbox
,no-flexbox
, undflexbox-legacy
auf das html-element, also in deinem Stile, die Sie verwenden können:Ich empfehle das Lesen durch Zoe Gillenwater (@zomigi) Präsentationen zum Thema, besonders Levelt Mit Flexbox (Smart-Web-Konferenz - September 2014)
display: inline-block;
display: table-cell;
In Ihre Präsentation CSS3-Layout, es gibt ein paar gute sideby-side-Vorschau des layouts mit und ohne flexbox:
Einige Imbissbuden für mich:
InformationsquelleAutor der Antwort ptim
Ich wie oben Antworten, aber Sie nicht haben, um mit modernizr.
Man könnte einfach die Verwendung von Tabellen-layout für ie9 und flexbox für andere.
InformationsquelleAutor der Antwort Scott Romack
Ein Jahr später, ist diese Lösung, mit Hilfe von JavaScript anpassen, das layout in älteren Browsern, scheint interessant => https://github.com/10up/flexibility
Fast 2000 Sterne auf Github aber der Letzte commit war vor 3 Monaten, ich weiß nicht, ob es noch aktiv gepflegt.
InformationsquelleAutor der Antwort Michael Rambeau