Die Yahoo User Interface Library ist ein ziemlich umfangreicher Satz von JavaScript-Tools für Entwickler. Unbemerkt bleiben einige nützliche Komponenten der Bibliothek, die das Codieren beschleunigen: einige CSS-Bibliotheken. Heute möchte ich Ihnen die YUI Grids CSS-Bibliothek vorstellen.
Warum sollten Sie überhaupt die Verwendung der YUI-Grids-CSS-Bibliothek in Betracht ziehen (nachstehend als "YUI-Grids" bezeichnet)? Was zeichnet es aus? Andere Raster-Bibliotheken habe ich nicht ausführlich betrachtet, aber ich finde diese Dinge überzeugend:
YUI-Grids verwenden leicht zu merkende IDs und Klassen sowie Clean Markup. Wenn Sie es einmal gelernt haben, können Sie innerhalb eines Monats zu Ihrem Code zurückkehren und wissen, welche Teile von YUI stammen und was jedes Stück tut.
Dadurch wird die Last zweimal reduziert: Sie müssen die Datei nicht auf Ihrem Server hosten, und das Laden der Seite ist schneller, wenn der Client die Datei zwischengespeichert hat.
Yahoo hat in Seitenbreiten gebacken, die den Anzeigenrichtlinien des Interactive Advertising Bureau entsprechen.
Mit mehreren Vorlagen und der Möglichkeit, Seitenbereiche zu verschachteln, gibt Yahoo an, mehr als 1000 Layoutkombinationen zu bieten ... alles in weniger als 5 KB.
YUI-Grids sind natürlich nicht perfekt. Es ist ein wenig einschränkend, wenn es um die Breite der vorgebackenen Seitenleiste geht; Wenn sie jedoch Ihren Bedürfnissen entsprechen, sparen Sie beim Erstellen Ihrer Website viel Zeit, Programmieraufwand und Kopfschmerzen.
Zu Beginn sind hier einige Ressourcen, die hilfreich sein werden.
Bevor wir in das Nötigste geraten, wollen wir uns die Bausteine der YUI-Gitter ansehen. Es gibt fünf verschiedene Strukturen, mit denen Sie Ihr Layout entwickeln werden. Jede dieser Strukturen wird entweder durch eine ID oder eine Klasse (normalerweise eine Klasse) definiert. Sie sind wie folgt:
Offensichtlich ist Ihre gesamte HTML-Datei das Dokument, aber in unserem Fall ist es auch das div direkt im Körper - das div, das alles enthält. Hier definieren Sie die Breite Ihrer Site. YUI-Raster bieten Ihnen 4 Breitenoptionen: 750px, 950px, 100% oder 974px. Diese Breiten sind keine hartcodierten Pixel. Sie sind Ems. Die Seite wird also fließend angepasst, wenn der Benutzer die Schriftgröße ändert. Wenn dies nicht der Fall ist, hat Yahoo die Definition einer benutzerdefinierten Breite zu einem Kinderspiel gemacht. Hier ist der Code zum Erstellen eines Dokuments mit einer Breite von 800 Pixeln:
# custom-doc margin: auto; / * Diese beiden Werte sind als * / text-align: left erforderlich. / * Sie helfen YUI-Rastern, die Seite zu zentrieren * / width: 61.54em; / * 800px / 13 = em-Wert für die meisten Browser * / * width: 60.00em; / * 800px / 13.333 = em-Wert für IE * / min-Breite: 800px; / * optional, aber empfohlen * /
Verwenden Sie zum Festlegen der Breite einfach die ID von doc, doc2, doc3 oder doc4 entsprechend den oben angegebenen Werten.
Es stehen sieben Vorlagen zur Auswahl. Die ersten sechs definieren ein zweispaltiges Layout. Jedes hat eine andere Breite oder Ausrichtung für die Seitenleiste, wobei die Hauptspalte den Rest der Breite des Dokuments einnimmt. Die Vorlagen sind 1) 160px auf der linken Seite, 2) 180px auf der linken Seite, 3) 300px auf der linken Seite, 4) 180px auf der rechten Seite, 5) 240px auf der rechten Seite und 6) 300px auf der rechten Seite. Um die Vorlage Ihres Wunsches zu erhalten, fügen Sie einfach eine Klasse von yui-t # zu dem Div hinzu, in dem Sie Ihr Dokument definiert haben (ersetzen Sie das # durch die obigen Zahlen). Wie ich bereits erwähnt habe, handelt es sich bei diesen Seitenleisten um Standardwebbreiten für Anzeigen, so dass jede Werbung bequem in sie passen sollte.
Das siebte Template-yui-t7 ist nicht so gut dokumentiert (seltsam, es ist nicht auf dem Spickzettel, mit dem ich oben verlinkt habe, aber es ist auf dieser älteren Version). Es subtrahiert die Seitenleiste und gibt Ihnen eine Spalte mit voller Breite (die später in Spalten unterteilt werden kann)..
Die Blöcke sind die tatsächliche Manifestation der von Ihnen in der Vorlage definierten Spalten. Sie sind einfach zwei Divs innerhalb des Dok-Div, beide mit yui-b klassifiziert. Glücklicherweise müssen sie keine unmittelbaren Kinder des Hauptdivits sein. Yahoo gibt dieses Beispiel an:
<-- Header Content --><-- Main Content --><-- Sidebar Content --><-- Footer Content -->
Sie können am Beispiel sehen, dass Sie die Blöcke nicht direkt in das root -div einfügen müssen. Auf diese Weise können Sie Kopf- und Fußzeilen in voller Breite verwenden, was im Allgemeinen eine gute Idee ist. Sie werden feststellen, dass sich der Hauptinhaltsblock in einem Div mit einer ID von Yui-Main befindet. Mit YUI-Grids haben Sie die Möglichkeit, entweder die Sidebar oder die Hauptspalte an erster Stelle in Ihrem Code zu haben. Dies kann von Vorteil sein, wenn Sie über SEO oder Zugänglichkeit nachdenken.
Ich habe Gitter und Einheiten gruppiert, weil sie sich sehr ähnlich sind. beide sind divs. Ein Raster (definiert mit der Klasse yui-g) teilt zwei Kindern (normalerweise Einheiten) mit, ihre Breite gleichmäßig zu teilen. Eine Einheit (Klasse yui-u) sollte immer das untergeordnete Element eines Rasters und das übergeordnete Element Ihres Inhalts sein.
Was ist also der Unterschied zwischen einem Block und einem Gitter??
Immer, wenn Sie mehrere Gitter oder Einheiten in einem Raster haben, müssen Sie dem ersten eine Klasse von First geben. Dies liegt daran, dass nicht jeder Browser die Pseudoklasse anbietet: first-child.
Was aber, wenn Sie ein Raster ungleichmäßig teilen möchten? Das Leben ist nicht immer fair, oder? Glücklicherweise bietet YUI eine Reihe von Alternativen zur yui-g-Klasse. Hier ist eine Liste der anderen:
Das sind alles von ihnen. Schlagen Sie einfach 2 oder 3 Einheiten in jedes der oben genannten Raster, und Sie haben ungleiche Spalten.
Nun, da Sie die Seile kennen, gehen wir ein grundlegendes Beispiel durch. Nehmen wir an, wir möchten das standardmäßige Site-Layout - wissen Sie, Hauptinhaltsspalte mit einer Seitenleiste rechts - mit einer kleinen Drehung: Wir teilen die Hauptspalte in zwei kleinere auf und teilen eine davon weiter in zwei Teile auf.
Wie bereits erwähnt, bietet Yahoo Hosting für dieses Framework an, und es ist normalerweise eine gute Idee, dies zu nutzen. Außerdem empfiehlt Yahoo den HTML 4.01-strengen Doctype, also habe ich das eingefügt. Hier beginnen wir mit:
Ein einfaches YUI-Grids-CSS-Beispiel