1. W3C-Versionen von Flex Version 2009 Version 2011 Version 2012 Version 2014 2015 W3C-Redaktionsentwurf PS Bitte beachten Sie, dass es sich bei der Version 2015 um den W3C Editor's Draft handelt. Es handelt sich lediglich um einen Entwurf, der sich noch in der Überarbeitungsphase befindet. Die Meinungen der Browser-Anbieter wurden noch nicht eingeholt. 2. Browserkompatibilität W3C-Spezifikation zu Flex: http://dev.w3.org/csswg/css-flexbox-1/ Informationen zur Browserkompatibilität finden Sie unter CanIUse: http://caniuse.com/#feat=flexbox Laut den Daten von CanIUse lässt es sich wie folgt zusammenfassen:
Sie müssen also die neue Version 2012 berücksichtigen: http://www.w3.org/TR/2012/CR-css3-flexbox-20120918/ Und Android muss die alte Version 2009 berücksichtigen: http://www.w3.org/TR/2009/WD-css3-flexbox-20090723/ 3. Browserkompatible Flex-Syntax Die obige Analyse ist sehr klar. Verwenden Sie einfach die Syntax der entsprechenden Version für das Ziel, das kompatibel sein muss. Die häufig verwendeten Layoutcodes sind unten aufgeführt: /* Kindelemente - gleichmäßig aufgeteilte Spalten*/ .flex1 { -webkit-box-flex: 1; /* ALT – iOS 6-, Safari 3.1-6 */ -moz-box-flex: 1; /* ALT – Firefox 19- */ Breite: 20 %; /* Für alte Syntax, sonst bricht es zusammen. */ -webkit-flex: 1; /* Chrom */ -ms-flex: 1; /* IE 10 */ flex: 1; /* NEU, Spezifikation – Opera 12.1, Firefox 20+ */ } /* Übergeordnetes Element - horizontale Anordnung (Hauptachse) */ .flex-h { Anzeige: Box; /* ALT - Android 4.4- */ Anzeige: -webkit-box; /* ALT – iOS 6-, Safari 3.1-6 */ Anzeige: -moz-box; /* ALT – Firefox 19- (fehlerhaft, funktioniert aber größtenteils) */ Anzeige: -ms-flexbox; /* TWEENER – IE 10 */ Anzeige: -webkit-flex; /* NEU – Chrome */ Anzeige: flex; /* NEU, Spezifikation – Opera 12.1, Firefox 20+ */ /* Version 09 */ -webkit-box-orient: horizontal; /* Version 12 */ -webkit-flex-direction: Zeile; -moz-flex-direction: Reihe; -ms-flex-direction: Zeile; -o-flex-direction: Reihe; Flex-Richtung: Reihe; } /* Übergeordnetes Element - horizontaler Zeilenumbruch */ .flex-hw { /* Version 09 */ /*-webkit-box-lines: mehrere;*/ /* Version 12 */ -webkit-flex-wrap: umschließen; -moz-flex-wrap: umschließen; -ms-flex-wrap: umschließen; -o-flex-wrap: umwickeln; Flex-Wrap: Umwickeln; } /* Übergeordnetes Element - horizontale Mitte (funktioniert nur, wenn die Hauptachse horizontal ist) */ .flex-hc { /* Version 09 */ -WebKit-Box-Pack: Mitte; /* Version 12 */ -webkit-justify-content: zentrieren; -moz-justify-content: zentrieren; -ms-justify-content:center; -o-justify-content: zentrieren; Inhalt ausrichten: zentriert; /* Andere Werte sind wie folgt: align-items Richtet die Ursprungsrichtung der Hauptachse aus. flex-end Richtet die Verlängerungsrichtung der Hauptachse aus. space-between Mit gleichem Abstand anordnen, sodass am Anfang und Ende keine Leerzeichen bleiben. space-around Mit gleichem Abstand anordnen, sodass am Anfang und Ende keine Leerzeichen bleiben.*/ } /* Übergeordnetes Element - vertikale Anordnung (Hauptachse) */ .flex-v { Anzeige: Box; /* ALT - Android 4.4- */ Anzeige: -webkit-box; /* ALT – iOS 6-, Safari 3.1-6 */ Anzeige: -moz-box; /* ALT – Firefox 19- (fehlerhaft, funktioniert aber größtenteils) */ Anzeige: -ms-flexbox; /* TWEENER – IE 10 */ Anzeige: -webkit-flex; /* NEU – Chrome */ Anzeige: flex; /* NEU, Spezifikation – Opera 12.1, Firefox 20+ */ /* Version 09 */ -webkit-box-orient: vertikal; /* Version 12 */ -webkit-flex-direction: Spalte; -moz-flex-direction: Spalte; -ms-flex-direction: Spalte; -o-flex-direction: Spalte; Flex-Richtung: Spalte; } /* Übergeordnetes Element - vertikaler Zeilenumbruch */ .flex-vw { /* Version 09 */ /*-webkit-box-lines: mehrere;*/ /* Version 12 */ -webkit-flex-wrap: umschließen; -moz-flex-wrap: umschließen; -ms-flex-wrap: umschließen; -o-flex-wrap: umwickeln; Flex-Wrap: Umwickeln; } /* Übergeordnetes Element - vertikal zentriert (funktioniert nur, wenn die Hauptachse horizontal ist) */ .flex-vc { /* Version 09 */ -webkit-box-align: zentriert; /* Version 12 */ -webkit-align-items: zentrieren; -moz-align-items: zentrieren; -ms-align-items: zentrieren; -o-align-items: zentrieren; Elemente ausrichten: zentrieren; } /* Untergeordnetes Element – wird an der ersten Position von links nach rechts (von oben nach unten) angezeigt und dient zum Ändern der Anzeigereihenfolge des Quelldokuments */ .flex-1 { -webkit-box-ordinal-group: 1; /* ALT – iOS 6-, Safari 3.1-6 */ -moz-box-ordinal-group: 1; /* ALT – Firefox 19- */ -ms-flex-order: 1; /* TWEENER – IE 10 */ -webkit-order: 1; /* NEU – Chrome */ Reihenfolge: 1; /* NEU, Spezifikation – Opera 12.1, Firefox 20+ */ } /* Untergeordnetes Element – wird an der zweiten Position von links nach rechts (von oben nach unten) angezeigt und dient zum Ändern der Anzeigereihenfolge des Quelldokuments */ .flex-2 { -webkit-box-ordinal-group: 2; /* ALT – iOS 6-, Safari 3.1-6 */ -moz-box-ordinal-group: 2; /* ALT – Firefox 19- */ -ms-flex-order: 2; /* TWEENER – IE 10 */ -webkit-order: 2; /* NEU – Chrome */ Reihenfolge: 2; /* NEU, Spezifikation – Opera 12.1, Firefox 20+ */ } Für eine bessere Kompatibilität müssen wir für den Container flex-h/flex-v statt allgemeinem Flex deklarieren: /* Übergeordnetes Element - Flex-Container */ .flex { Anzeige: Box; /* ALT - Android 4.4- */ Anzeige: -webkit-box; /* ALT – iOS 6-, Safari 3.1-6 */ Anzeige: -moz-box; /* ALT – Firefox 19- (fehlerhaft, funktioniert aber größtenteils) */ Anzeige: -ms-flexbox; /* TWEENER – IE 10 */ Anzeige: -webkit-flex; /* NEU – Chrome */ Anzeige: flex; /* NEU, Spezifikation – Opera 12.1, Firefox 20+ */ } Daher wird empfohlen, flex-h/flex-v zu verwenden, um den Container so zu deklarieren, dass er den Flex-Modus verwendet, wenn Android-Kompatibilität erforderlich ist (Syntax der Version 2009), und flex zu verwenden, um den Container einzurichten, wenn Android-Kompatibilität nicht erforderlich ist (Syntax der Version 2012). Hinweis: Der oben angegebene Code ist nicht vollständig mit allen High-End-Browsern kompatibel, aber er ist kompatibler als jeder andere vorhandene Code. Spezifische Kompatibilitätstestergebnisse finden Sie in der Demo 4.Flex-Layout-Demo Onlinetest: Demo Testergebnisse:
Hinweis: Aus den Testergebnissen können wir ersehen, dass Flex Layout Pseudoelemente als Elemente behandelt, um Platz zuzuweisen (das Dokument scheint zu erwähnen, dass die Einstellung position: fixed/absolute; für Pseudoelemente diese Situation vermeiden kann, aber dieser Artikel hat dies noch nicht überprüft). Wir hoffen jedoch im Allgemeinen, dass Pseudoelemente nur dekorative Effekte haben und das Layout nicht beeinflussen, was nicht mit unseren Erwartungen übereinstimmt. Seien Sie daher bei der Verwendung von Pseudoelementen in Flex-Layouts besonders vorsichtig, führen Sie möglichst viele Browser-Kompatibilitätstests durch oder verwenden Sie stattdessen Float-Layouts. Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. |
<<: Vue3.0 verwendet das Plug-In vue-grid-layout, um Drag-Layout zu implementieren
Freunde, die Speicherplatz gekauft und Websites er...
Code kopieren Der Code lautet wie folgt: <Stil...
Tatsächlich haben die drei obigen Tabellen alle d...
Es gibt zwei Möglichkeiten, nodejs unter Linux zu...
Inhaltsverzeichnis Vorwort Was ist DrawCall Welch...
Verwenden Sie apk add ansible, um den Ansible-Die...
Inhaltsverzeichnis 1. filter() 2. fürJedes() 3. e...
Vorwort Js ist heutzutage die am häufigsten verwe...
Problem/Fehler/Szenario/Anforderung Die Festplatt...
In diesem Artikelbeispiel wird der spezifische Co...
Eine beträchtliche Anzahl von Websites verwendet d...
Inhaltsverzeichnis Warum react-beautiful-dnd wähl...
Im vorherigen Artikel haben wir über MySQL-Transa...
Inhaltsverzeichnis 1. LVS-Lastausgleich 2. Grundl...
Im vorherigen Artikel haben wir vorgestellt, wie ...