Gestern haben wir die Zukunft des CSS-Layouts und einige der neuen Module diskutiert, die CSS3 in dieser Arena bietet. Eines davon haben wir kurz angesprochen: CSS3 Flexbox.
Heute werden wir tiefer in dieses Modell eintauchen und damit eine vollständige Webseite erstellen. Es wird auf keinen Fall bereit sein, Ihre Projekte umzusetzen, aber es wird Ihnen weitere Einblicke in eine mögliche Art und Weise geben, mit der wir Websites in den kommenden Jahren programmieren werden. Außerdem macht dieses Zeug einfach nur Spaß!
Sehr experimentell: Nur Webkit
Mein Ziel für diesen Beitrag war es, eine Arbeitsseite auf mehreren Browsern zum Laufen zu bringen. Das ist nicht geschehen. Zu diesem Zeitpunkt ist die Implementierung in allen Browsern fehlerhaft und inkonsistent. Selbst nach der Installation von Flexie.js habe ich immer noch sehr unterschiedliche Ergebnisse zwischen Firefox und Safari erhalten (ich denke, es hat mit dem Mischen von typischen Containern mit Margin-Center und Flexbox zu tun).
Aus diesem Grund wird das heutige Projekt in erster Linie anvisiert Safari und Chrome denn ehrlich gesagt ist es in anderen Browsern immer noch ein Durcheinander! Ich empfehle Ihnen auf jeden Fall, mit dem fertigen Produkt zu spielen, um zu sehen, ob Sie es in einer browserübergreifenden Implementierung einsetzen können. Wenn Sie Vorschläge haben, würde ich sie gerne in den Kommentaren hören!
Schritt 1: Wiederverwendbare Klassen
Da ich im gestrigen Beitrag kurz das Grundkonzept von Flexbox erläutert habe, werde ich mich hier auf die Implementierung konzentrieren. Aber mach dir keine Sorgen, du solltest den Kern der Sache verstehen.
Als Erstes möchten wir einige grundlegende Klassen erstellen, die uns bei der Definition unseres Layouts unterstützen. Diese Attribute können bei Bedarf auf eine ID angewendet werden, aber ich finde es hilfreich und ordentlich, dies auf diese Weise zu tun.
Lassen Sie uns besprechen, wie diese Klassen funktionieren. Die erste Klasse, hasflexwird auf einen übergeordneten Container angewendet, dessen untergeordnete Elemente mit diesem neuen Flexbox-System angelegt werden sollen. Sie werden feststellen, dass dieses gesamte Design komplett ohne Schwebekörper ist, so dass Sie einige gute Hinweise darauf erhalten, wo wir Flexbox in unseren Code implementieren werden.
Als Nächstes haben wir einige weitere Klassen eingerichtet, um verschiedene anzuwenden Box-Flex Werte. Flexbox verteilt unsere untergeordneten Elemente bequem über den Container und diese bestimmen die Proportionen. ich glauben dass der Standardwert? 0? Die Ergebnisse schienen jedoch bei dieser Annahme ein wenig fehlerhaft zu sein. Daher war es hilfreich, einen Wert immer nur manuell anzuwenden.
Schritt 2: Anfängliches HTML & CSS
Um Ihr HTML-Dokument zu starten, erstellen Sie einen Container und einen Header. An dieser Stelle sind dies grundlegende Elemente, die wir wie immer ohne die Hilfe von Flexbox erstellen werden.
Wenn Sie dies gefunden haben, geben Sie unten die grundlegenden Stile ein. Grundsätzlich habe ich einen dunklen Körper mit einem hellen 1.000px breiten Behälter aufgestellt, der unseren gesamten Inhalt aufnehmen kann. Werfen Sie ein paar Ränder in die Mitte und einige grundlegende Textstile, und wir sind bereit, mit dem Spaß zu beginnen.
Hinweis: Die Überschrift, die ich verwende, ist Oswald von Google Fonts.
Schritt 3: Navigation
Für den Navigationsbereich erstellen Sie jetzt normalerweise eine Liste mit Links und ziehen sie dann nach links. Bei Flexbox ist der Prozess etwas anders. Hier wenden wir einfach das an hasflex Klasse, die wir zuvor erstellt haben und dann verwenden box0 für jedes der Listenelemente. Bewirbt sich box0 Alle drei haben den Effekt, dass die Links nach links verschoben werden, sie werden jedoch nicht über die gesamte Breite des Containers verteilt.
Danach wenden wir einfach die gleichen Stile an, die wir auch auf anderen Webseiten anwenden würden. Das Hauptziel dabei ist es, die Links mit ein paar Rändern etwas zu entfernen und sicherzustellen, dass unsere Links korrekt gestaltet sind.
Schritt 4: Das Bild
Jede gute Webseite braucht ein Bild. Um zu veranschaulichen, wie Sie Flexbox selektiv nur auf die Elemente anwenden, die es benötigen, wird ein großes Header-Bild mit dem gleichen exakten Code eingefügt, den Sie normalerweise verwenden.