Sie haben vielleicht kürzlich von Grid Style Sheets (GSS) in der Welt von HTML und CSS gehört. GSS stellt das CSS-Layout des CSS erneut vor und ersetzt die Layout-Engine des Browsers durch einen, der den Casowary Constraint Solver nutzt. Diejenigen von Ihnen, die ein Wort davon nicht verstanden haben ... Hallo und willkommen!
gSS verspricht eine bessere Zukunft. GSS verspricht relative Positionierung und Größe. GSS verspricht, jedes Element in einem anderen mit einer Codezeile zu zentrieren. Und GSS liefert. Die Frage ist: Wie?
In diesem Artikel werde ich eine kurze Geschichte von GSS und einen umfassenden Überblick über die Funktionen ergeben, die sie zu bieten hat. Ich werde mir auch GSS für einschränkende Layouts, den Cassowary Constraint-Algorithmus, ansehen und Sie durch den Prozess der Installation und Verwendung von GSS führen.
Diejenigen unter Ihnen, die lieber nicht warten würden, bis die W3C oder die Browser aufholen, ich fordere Sie auf, sich dort einzuhalten und genau darauf zu achten, während ich das Geheimnis erkläre, das GSS ist. Beginnen wir in diesem Sinne mit einer kleinen Geschichte.
GSS ist eine Schaffung des Netzes mit Dan Tocchini als Gründer und CEO. Dies antwortet, warum die nicht ganz so netzbasierten Stilblätter als Grid-Stilblätter bezeichnet werden.
Der Krieg zwischen Webentwicklern und Front-End-Technologie, um Ideen im Web zu präsentieren, dauert seit Jahren. CSS hat sich in den letzten zehn Jahren als triumphierend erwiesen. Das Erstellen immer komplexerer Benutzeroberflächen mit Tools, die sich nicht mit der Zeit entwickelt haben, wird von Webentwicklern regelmäßig erwartet. Zum Beispiel war vertikal ein Element mit CSS nicht die einfachste Aufgaben, insbesondere bei Elementen der variablen Höhe.
Flexbox ist eine der neuesten Lösungen, aber selbst kleine Änderungen müssen dort in Ihren HTML -Inhalt und CSS -Präsentation gehen und Änderungen vornehmen.
Es ist Zeit für GSS, die Arena zu nehmen. GSS befasst sich mit diesen und vielen weiteren Problemen - Probleme, die Entwickler seit über einem Jahrzehnt haben.
im Wesentlichen ist GSS ein CSS -Präprozessor und eine JavaScript -Laufzeit, die Cassowary.js ausnutzt. Diejenigen von Ihnen, die es noch nicht wissen, Cassowary.js ist der JavaScript -Port, den Apple in Cocoa Autolayout verwendet.
Sowohl GSS als auch Cassowary basieren auf der Einschränkungsprogrammierung, was es ideal für die Stärkung von deklarativen Sprachen wie CSS macht. Die Einschränkungsprogrammierung ist ein Paradigma, mit dem Webentwickler sich mit der Erklärung des „Was“ befassen und das „Wie“ einem mathematischen Löser überlassen.
Einschränkungsprogrammierung konzentriert sich auf Absichten, nicht auf die Implementierung.
Jetzt, da wir einige Hintergrundinformationen festgelegt haben, gehen wir mit den Funktionen GSS über.
Eines der größten Probleme mit CSS ist die Relativitätstheorie. Sie können erwarten, dass jedes CSS -Element eine unendliche Liste von Eigenschaften hat - Auffüllung, Höhe, Breite, Schwimmer, Ränder, Grenzen, Umrisse -, aber keine dieser Informationen sagt uns, wo sich das Element unter Bezugnahme auf andere Elemente auf der Seite befindet (( oder sogar die Seite als Ganzes). Die endlose Liste antwortet auch nicht, wo das Element mit unterschiedlichen Bildschirmgrößen angezeigt wird.
Dies bringt uns zum ersten Feature von GSS: Sie definieren, was das Layout sein soll. Vorbei sind die Tage, in denen unzählige Stunden Versuch und Irrtum verbringen, und strategisch, wie das Layout konstruiert werden sollte.
Da wir bereits diskutiert haben, dass GSS Cassowary.js verwendet, ist hier ein weiteres großartiges Merkmal von GSS: Ein Element kann in jedem anderen mit einer Codezeile zentriert werden. Dies macht viele Problemumgehungen unnötig und Dinge der Vergangenheit.
Wenn Sie beispielsweise eine Taste von Abonnieren in der Linie mit beispielsweise einer Überschrift auf der rechten Seite der Seite Ihrer Website hinzufügen möchten, verwenden Sie den folgenden Code:
.subscribe-button[right] == <span>::window[width]; </span>.subscribe-button[center-y] == .header[center-y]<span>;</span>
Ein weiteres Merkmal: GSS macht Schwimmer, Tabellenzellen, ClearFix und horizontale/vertikale Zentrierung veraltet. Bieten Sie Abschied von der gefährlichen Gefahr, die ein Schwimmer ist, weil wir das W3C selbst haben, dass Schwimmer nicht ideal für Anwendungslayouts sind.
„Wenn sich Websites aus einfachen Dokumenten in komplexe, interaktive Anwendungen entwickelt haben, Tools für Dokumentlayout, z. Floats, waren nicht unbedingt für das Anwendungslayout gut geeignet. “
- W3C Grid Layout -Modul (Arbeitsentwurf)
Was ist mit CSS -Funktionen wie! Wichtig? Das vierte Merkmal von GSS macht etwas Ähnliches: GSS verwendet eine Einschränkungshierarchie, um Einschränkungen mit Stärken zu priorisieren. Wir sprechen hier über vier eingebaute Kraftstufen:
Beachten Sie, dass! Erfordernis ist eine spezielle Stärke, die sicherstellt, dass die Einschränkung gilt und wenn dies nicht der Fall ist, bricht alles. Es ist ratsam, es sorgfältig und selten zu verwenden.
Die Stärke steigt die Liste um und stärkere Einschränkungen haben eine höhere Priorität während der Ausführung. Schauen wir uns ein Beispiel an:
#light[years] == <span>50 !weak; </span>#light[years] == <span>20 !medium; </span>#light[years] == <span>35 !strong; </span> <span>/* #light[years] will hold the value 35 */</span>
Sie haben es so weit geschafft, schauen wir uns jetzt einige einschränkende Layouts an.
Einschränkungen sind grundsätzlich Beziehungen zwischen zwei oder mehr Variablen, die möglicherweise gelten oder nicht. Alle numerischen Eigenschaften von Elementen qualifizieren sich als eingeschränkt. Hier ist ein Beispiel:
.subscribe-button[right] == <span>::window[width]; </span>.subscribe-button[center-y] == .header[center-y]<span>;</span>
In dem oben angegebenen Beispiel gelten beide Einschränkungen gültig. Hier ist ein Beispiel für Einschränkungen, die nicht gelten.
#light[years] == <span>50 !weak; </span>#light[years] == <span>20 !medium; </span>#light[years] == <span>35 !strong; </span> <span>/* #light[years] will hold the value 35 */</span>
Anfangs sind beide Elemente Elementa und ElementB auf eine Höhe von 150px eingeschränkt. In der dritten Zeile beträgt die Summe der beiden Elemente 225px. Daher wird eine der Einschränkungen des beiden Elements nicht gelten.
Selektoren in GSS sind Abfragen über eine Gruppe von HTML -Elementen und werden verwendet, um die Elemente zu bestimmen, die letztendlich von der Einschränkung beeinflusst werden. Selektoren sind wichtig, da Sie Elemente aus dem DOM auswählen und beobachten müssen, bevor Sie Einschränkungen auf diese anwenden.
Die folgenden grundlegenden Selektoren werden von GSS unterstützt.
p[line-height] >= <span>10; </span>p[line-height] <= <span>::window[height] / 20;</span>
Regeln können Sie mehrere Einschränkungen über einen einzelnen Selektor definieren. Sie können sie nisten und auch CSS -Eigenschaften verwenden.
Dieser verschachtelte Regeln:
#elementa[height] == <span>150; </span>#elementb[height] == <span>150; </span>#elementa[height] <span>+ #elementb[height] == 225;</span>
ist dasselbe wie:
#elementID[height] == <span>150; /* id */ </span>div[height] == <span>150; /* element */ </span>.className[height] == <span>150; /* class */</span>
Ich habe in den obigen Beispielen bereits Eigenschaften abgedeckt, aber schauen wir sie uns etwas genauer an. In GSS sind Eigenschaften die Variablen, die zu einem Element gehören. Wenn wir Eigenschaften verwenden, die durch CSS bekannt sind, wird ihr entsprechender GSS-kalkulierter Wert als Inline-Stil auf dem Element zugewiesen.
Etwas wie folgt:
<span>section < article { </span> <span><span>.aclass</span> { </span> <span>height: == 150; </span> <span>} </span><span>}</span>
wäre gleich:
<span>(section < article .aclass)[height] == 150;</span>
gs
Der Benutzer ist nicht verpflichtet, sicherzustellen, dass die Eingabebeschränkungen nicht gegenseitig widersprechen. Tatsächlich ist dies die Essenz des Kassowary -Algorithmus; Es bewertet inkrementell die Einschränkungen und entdeckt eine optimale Lösung automatisch.
<span><span>.container</span> { </span> <span>height: == #elm[height]; </span><span>}</span>
GSS
installieren<span><span>.container</span> { </span> &[height] == #elm[height]<span>; </span><span>}</span>
<span>/* this expression is not linear */ </span>#elementa[height] <span>* #elementb[width] == newElement;</span>
Sie können auch Version 2.0.0 über GitHub als ZIP -Datei herunterladen.
Sobald Sie GSS installiert haben, laden Sie Ihre .GSS -Stylesheets, indem Sie type = text/gSS auf einem -Tag hinzufügen:
.subscribe-button[right] == <span>::window[width]; </span>.subscribe-button[center-y] == .header[center-y]<span>;</span>
oder ein
#light[years] == <span>50 !weak; </span>#light[years] == <span>20 !medium; </span>#light[years] == <span>35 !strong; </span> <span>/* #light[years] will hold the value 35 */</span>
Sobald Sie alles in Betrieb haben, können Sie mit einigen Code -Beispielen beginnen. Unten werde ich ein Anfänger -Tutorial durchgehen.
Die Beispiele, die ich erstellen werde, werden über CodePen angezeigt, aber ich werde das Tutorial wie ein Standard -HTML -Dokument durchlaufen. Zuerst füge ich meinem HTML die folgende Codezeile hinzu, um das GSS -Engine -Skript hinzuzufügen:
p[line-height] >= <span>10; </span>p[line-height] <= <span>::window[height] / 20;</span>
Ich werde eine CodePen-veranstaltete Version der Datei verwenden, aber Sie finden hier eine CDN-veranstaltete Version. Als nächstes füge ich den folgenden Code im GSS -Referenzskript (die Zeile, die ich oben hinzugefügt habe) GSS an das Dokumentobjekt hinzu.
.#elementa[height] == <span>150; </span>#elementb[height] == <span>150; </span>#elementa[height] <span>+ #elementb[height] == 225;</span>
Wenn Sie es vorziehen, kann dies in einer separaten JavaScript -Datei platziert werden, die nach dem Engine -Skript enthalten ist.
Ich erstelle einen DIV und füge einige Text in H2 -Tags im GSS -Layout ein und füge diese dem HTML hinzu:
#elementID[height] == <span>150; /* id */ </span>div[height] == <span>150; /* element */ </span>.className[height] == <span>150; /* class */</span>
Nach dem Hinzufügen eines grundlegenden Stylings kann ich einige GSS hinzufügen, um das Layout zu erstellen. Hier beginnt der Spaß.
Mein Ziel ist es, das .foo -Element im Ansichtsfenster trotz seiner Größe vertikal zu zentrieren und die gleiche Ausrichtung beizubehalten, auch wenn sich die Größe des Elements ändert.
Hier sind die Einschränkungen, die ich bewerben werde, um dieses Ziel zu erreichen:
Zunächst füge ich dem HTML einen
<span>section < article { </span> <span><span>.aclass</span> { </span> <span>height: == 150; </span> <span>} </span><span>}</span>
a
<span>(section < article .aclass)[height] == 150;</span>
Und das ist alles, was erforderlich ist. Das Element wird jetzt mit GSS vertikal zentriert (mit dynamischer Höhe) zentriert. Unten finden Sie die Demo:
Siehe die vertikale Stift -Zentrierung mit GSS von SitePoint (@sinepoint) auf CodePen.
Versuchen Sie die Vollbild -Demo und versuchen Sie, den Browser vertikal zu ändern, um das Element in jeder Fenstergröße zentriert zu werden.
Für dieses nächste Beispiel erstelle ich eine einfache farbige quadratische Form und lasse sie dynamisch drehen. Lassen Sie uns zuerst GSS starten, indem wir die folgenden Codezeilen im Abschnitt
.subscribe-button[right] == <span>::window[width]; </span>.subscribe-button[center-y] == .header[center-y]<span>;</span>
Beachten Sie, dass Sie den obigen Code bearbeiten müssen, um auf den richtigen Speicherort für die Dateien zu verweisen. Hier können Sie die Datei Worker.js und die GSS.js -Datei hier erhalten.
Hinweis: Aufgrund einiger Fehler weisen die obigen Dateipfade auf Pre-2.0.0-Versionen von GSS hin, damit dies funktioniert.
Lassen Sie uns nun die quadratische Form erstellen, indem wir diese zum HTML hinzufügen:
#light[years] == <span>50 !weak; </span>#light[years] == <span>20 !medium; </span>#light[years] == <span>35 !strong; </span> <span>/* #light[years] will hold the value 35 */</span>
… und fügen Sie es in der CSS ein, um es zu gestylen:
p[line-height] >= <span>10; </span>p[line-height] <= <span>::window[height] / 20;</span>
Jetzt gehe ich zurück zum HTML und füge einige GSS -Einschränkungen hinzu.
Denken Sie daran, dass Sie mit GSS einfach eine Absicht machen und die mathematische Berechnung dem Algorithmus überlassen. In diesem Beispiel versuche ich, eine Einschränkung zwischen dem Element und dem Fenster zu erstellen, durch das eine Rotation im Element erzeugt wird, wenn sich die Breite des Fensters dynamisch ändert.
Hier sind die Einschränkungen, die ich bewerben werde, um dieses Ziel zu erreichen:
Ich füge dem HTML einen Stilblock mit einem auf Text/GSS festgelegten Typ hinzu, wie ich es im ersten Beispiel getan habe. Denken Sie daran, dass ein Stilblock erforderlich ist, um die GSS zu definieren, die ich hinzufügen werde.
#elementa[height] == <span>150; </span>#elementb[height] == <span>150; </span>#elementa[height] <span>+ #elementb[height] == 225;</span>
Ich werde das Quadratfeld mit dem Bildschirm mit GSS -Einschränkungen verbinden, indem ich den folgenden Code in den Style -Tags hinzufüge:
#elementID[height] == <span>150; /* id */ </span>div[height] == <span>150; /* element */ </span>.className[height] == <span>150; /* class */</span>
und damit ist es getan. Schauen Sie sich die endgültige Codepen -Demo an:
Siehe die dynamische Pen -Rotation mit GSS von SitePoint (@sinepoint) auf CodePen.
Wenn Sie die Vollbild -Demo anzeigen, versuchen Sie, das Fenster zu ändern. Sie werden feststellen, dass die Quadratbox die Rotationsposition ändert, wenn die Breite des Fensters geändert wird.
Die Zukunft von GSS sieht vielversprechend aus. Es ist an der Zeit, dass wir uns mit Front-End-Technologie vorantreiben. Ich schlage vor, dass Sie auf kleineren Prototypen üben, bevor Sie Ihre gesamte Stylesheet -Bibliothek auseinander reißen.
Was ich hier behandelt habe, ist nur ein kleines Beispiel von dem, was Sie mit GSS machen können, aber ich hoffe, dass Sie dieses Tutorial hilfreich und informativ gefunden haben, um Ihnen den Einstieg zu erlangen.
Haben Sie GSS schon verwendet? Wie war deine Erfahrung? Lassen Sie mich im Kommentarbereich wissen.
Wie kann ich mit GSS beginnen? in Ihrem Projekt. Dies kann durch Herunterladen der GSS -Bibliothek von der offiziellen Website oder mithilfe eines Paketmanagers wie NPM erfolgen. Sobald die GSS -Engine in Ihrem Projekt enthalten ist, können Sie mit dem Schreiben von GSS -Code in Ihren CSS -Dateien beginnen.
Was sind die Vorteile der Verwendung von GSS? Es ermöglicht eine genauere Steuerung über das Layout und erleichtert es, komplexe und reaktionsschnelle Designs zu erstellen. GSS vereinfacht auch den Code und erleichtert das Lesen und Verwalten. Darüber hinaus unterstützt GSS die Live-Bearbeitung, was bedeutet, dass Sie Änderungen in Echtzeit beim Code sehen können.
Ja, GSS ist ein Open-Source-Projekt. Dies bedeutet, dass jeder zu seiner Entwicklung beitragen und kostenlos in seinen Projekten nutzen kann. Der Quellcode für GSS ist auf GitHub verfügbar. Die leistungsstarken Merkmale und das wachsende Interesse an einem begrenzten Layout deuten jedoch darauf hin, dass es eine vielversprechende Zukunft hat. Da immer mehr Entwickler GSS übernehmen, können wir erwarten, dass diese innovative Technologie mehr Ressourcen, Tools und Community -Unterstützung sehen.
gs
Es ist Zeit für GSS, die Arena zu nehmen. GSS befasst sich mit diesen und vielen weiteren Problemen - Probleme, die Entwickler seit über einem Jahrzehnt haben.
im Wesentlichen ist GSS ein CSS -Präprozessor und eine JavaScript -Laufzeit, die Cassowary.js ausnutzt. Diejenigen von Ihnen, die es noch nicht wissen, Cassowary.js ist der JavaScript -Port, den Apple in Cocoa Autolayout verwendet.
Sowohl GSS als auch Cassowary basieren auf der Einschränkungsprogrammierung, was es ideal für die Stärkung von deklarativen Sprachen wie CSS macht. Die Einschränkungsprogrammierung ist ein Paradigma, mit dem Webentwickler sich mit der Erklärung des „Was“ befassen und das „Wie“ einem mathematischen Löser überlassen.
Einschränkungsprogrammierung konzentriert sich auf Absichten, nicht auf die Implementierung.
Jetzt, da wir einige Hintergrundinformationen festgelegt haben, gehen wir mit den Funktionen GSS über.
Eines der größten Probleme mit CSS ist die Relativitätstheorie. Sie können erwarten, dass jedes CSS -Element eine unendliche Liste von Eigenschaften hat - Auffüllung, Höhe, Breite, Schwimmer, Ränder, Grenzen, Umrisse -, aber keine dieser Informationen sagt uns, wo sich das Element unter Bezugnahme auf andere Elemente auf der Seite befindet (( oder sogar die Seite als Ganzes). Die endlose Liste antwortet auch nicht, wo das Element mit unterschiedlichen Bildschirmgrößen angezeigt wird.
Dies bringt uns zum ersten Feature von GSS: Sie definieren, was das Layout sein soll. Vorbei sind die Tage, in denen unzählige Stunden Versuch und Irrtum verbringen, und strategisch, wie das Layout konstruiert werden sollte.
Da wir bereits diskutiert haben, dass GSS Cassowary.js verwendet, ist hier ein weiteres großartiges Merkmal von GSS: Ein Element kann in jedem anderen mit einer Codezeile zentriert werden. Dies macht viele Problemumgehungen unnötig und Dinge der Vergangenheit.
Wenn Sie beispielsweise eine Taste von Abonnieren in der Linie mit beispielsweise einer Überschrift auf der rechten Seite der Seite Ihrer Website hinzufügen möchten, verwenden Sie den folgenden Code:
.subscribe-button[right] == <span>::window[width]; </span>.subscribe-button[center-y] == .header[center-y]<span>;</span>
Ein weiteres Merkmal: GSS macht Schwimmer, Tabellenzellen, ClearFix und horizontale/vertikale Zentrierung veraltet. Bieten Sie Abschied von der gefährlichen Gefahr, die ein Schwimmer ist, weil wir das W3C selbst haben, dass Schwimmer nicht ideal für Anwendungslayouts sind.
„Wenn sich Websites aus einfachen Dokumenten in komplexe, interaktive Anwendungen entwickelt haben, Tools für Dokumentlayout, z. Floats, waren nicht unbedingt für das Anwendungslayout gut geeignet. “
- W3C Grid Layout -Modul (Arbeitsentwurf)
Was ist mit CSS -Funktionen wie! Wichtig? Das vierte Merkmal von GSS macht etwas Ähnliches: GSS verwendet eine Einschränkungshierarchie, um Einschränkungen mit Stärken zu priorisieren. Wir sprechen hier über vier eingebaute Kraftstufen:
Beachten Sie, dass! Erfordernis ist eine spezielle Stärke, die sicherstellt, dass die Einschränkung gilt und wenn dies nicht der Fall ist, bricht alles. Es ist ratsam, es sorgfältig und selten zu verwenden.
Die Stärke steigt die Liste um und stärkere Einschränkungen haben eine höhere Priorität während der Ausführung. Schauen wir uns ein Beispiel an:
.subscribe-button[right] == <span>::window[width]; </span>.subscribe-button[center-y] == .header[center-y]<span>;</span>
Sie haben es so weit geschafft, schauen wir uns jetzt einige einschränkende Layouts an.
Einschränkungen sind grundsätzlich Beziehungen zwischen zwei oder mehr Variablen, die möglicherweise gelten oder nicht. Alle numerischen Eigenschaften von Elementen qualifizieren sich als eingeschränkt. Hier ist ein Beispiel:
#light[years] == <span>50 !weak; </span>#light[years] == <span>20 !medium; </span>#light[years] == <span>35 !strong; </span> <span>/* #light[years] will hold the value 35 */</span>
In dem oben angegebenen Beispiel gelten beide Einschränkungen gültig. Hier ist ein Beispiel für Einschränkungen, die nicht gelten.
p[line-height] >= <span>10; </span>p[line-height] <= <span>::window[height] / 20;</span>
Anfangs sind beide Elemente Elementa und ElementB auf eine Höhe von 150px eingeschränkt. In der dritten Zeile beträgt die Summe der beiden Elemente 225px. Daher wird eine der Einschränkungen des beiden Elements nicht gelten.
Selektoren in GSS sind Abfragen über eine Gruppe von HTML -Elementen und werden verwendet, um die Elemente zu bestimmen, die letztendlich von der Einschränkung beeinflusst werden. Selektoren sind wichtig, da Sie Elemente aus dem DOM auswählen und beobachten müssen, bevor Sie Einschränkungen auf diese anwenden.
Die folgenden grundlegenden Selektoren werden von GSS unterstützt.
#elementa[height] == <span>150; </span>#elementb[height] == <span>150; </span>#elementa[height] <span>+ #elementb[height] == 225;</span>
Regeln können Sie mehrere Einschränkungen über einen einzelnen Selektor definieren. Sie können sie nisten und auch CSS -Eigenschaften verwenden.
Dieser verschachtelte Regeln:
#elementID[height] == <span>150; /* id */ </span>div[height] == <span>150; /* element */ </span>.className[height] == <span>150; /* class */</span>
ist dasselbe wie:
<span>section < article { </span> <span><span>.aclass</span> { </span> <span>height: == 150; </span> <span>} </span><span>}</span>
Ich habe in den obigen Beispielen bereits Eigenschaften abgedeckt, aber schauen wir sie uns etwas genauer an. In GSS sind Eigenschaften die Variablen, die zu einem Element gehören. Wenn wir Eigenschaften verwenden, die durch CSS bekannt sind, wird ihr entsprechender GSS-kalkulierter Wert als Inline-Stil auf dem Element zugewiesen.
Etwas wie folgt:
<span>(section < article .aclass)[height] == 150;</span>
wäre gleich:
<span><span>.container</span> { </span> <span>height: == #elm[height]; </span><span>}</span>
gs
Der Benutzer ist nicht verpflichtet, sicherzustellen, dass die Eingabebeschränkungen nicht gegenseitig widersprechen. Tatsächlich ist dies die Essenz des Kassowary -Algorithmus; Es bewertet inkrementell die Einschränkungen und entdeckt eine optimale Lösung automatisch.
Der Einschränkungen des Lösers hinter GSS wird als Cassowary -Algorithmus bezeichnet. Dieser Algorithmus kann nur lineare Einschränkungen berechnen (d. H. der Form y = mx c). Die grundlegenden Operatoren (, -, *, /) werden vom Algorithmus unterstützt. Die Multiplikation und Aufteilung von zwei (oder mehr) eingeschränkten Variablen ist nicht linear und wirft daher einen Fehler auf.
.subscribe-button[right] == <span>::window[width]; </span>.subscribe-button[center-y] == .header[center-y]<span>;</span>
installieren
für die clientseitige Installation installieren Sie über Bower:#light[years] == <span>50 !weak; </span>#light[years] == <span>20 !medium; </span>#light[years] == <span>35 !strong; </span> <span>/* #light[years] will hold the value 35 */</span>
Fügen Sie diesen Code dann zu dem Abschnitt Ihres Markups Ihres Markups hinzu:
p[line-height] >= <span>10; </span>p[line-height] <= <span>::window[height] / 20;</span>
Sie können auch Version 2.0.0 über GitHub als ZIP -Datei herunterladen.
Sobald Sie GSS installiert haben, laden Sie Ihre .GSS -Stylesheets, indem Sie type = text/gSS auf einem -Tag hinzufügen:
#elementa[height] == <span>150; </span>#elementb[height] == <span>150; </span>#elementa[height] <span>+ #elementb[height] == 225;</span>
oder ein
#elementID[height] == <span>150; /* id */ </span>div[height] == <span>150; /* element */ </span>.className[height] == <span>150; /* class */</span>
Sobald Sie alles in Betrieb haben, können Sie mit einigen Code -Beispielen beginnen. Unten werde ich ein Anfänger -Tutorial durchgehen.
Die Beispiele, die ich erstellen werde, werden über CodePen angezeigt, aber ich werde das Tutorial wie ein Standard -HTML -Dokument durchlaufen. Zuerst füge ich meinem HTML die folgende Codezeile hinzu, um das GSS -Engine -Skript hinzuzufügen:
<span>section < article { </span> <span><span>.aclass</span> { </span> <span>height: == 150; </span> <span>} </span><span>}</span>
Ich werde eine CodePen-veranstaltete Version der Datei verwenden, aber Sie finden hier eine CDN-veranstaltete Version. Als nächstes füge ich den folgenden Code im GSS -Referenzskript (die Zeile, die ich oben hinzugefügt habe) GSS an das Dokumentobjekt hinzu.
<span>(section < article .aclass)[height] == 150;</span>
Wenn Sie es vorziehen, kann dies in einer separaten JavaScript -Datei platziert werden, die nach dem Engine -Skript enthalten ist.
vertikal zentrieren
Ich erstelle einen DIV und füge einige Text in H2 -Tags im GSS -Layout ein und füge diese dem HTML hinzu:<span><span>.container</span> { </span> <span>height: == #elm[height]; </span><span>}</span>
Nach dem Hinzufügen eines grundlegenden Stylings kann ich einige GSS hinzufügen, um das Layout zu erstellen. Hier beginnt der Spaß.
Mein Ziel ist es, das .foo -Element im Ansichtsfenster trotz seiner Größe vertikal zu zentrieren und die gleiche Ausrichtung beizubehalten, auch wenn sich die Größe des Elements ändert.
Hier sind die Einschränkungen, die ich bewerben werde, um dieses Ziel zu erreichen:
Zunächst füge ich dem HTML einen
Das obige ist der detaillierte Inhalt vonEinführung von GSS: Grid Style Sheets. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!