CSS-Design Taming Listen · Ein A List Apart Artikel

Ich werde in diesem Artikel zeigt, wie CSS verwenden unhandlich Listen unter Kontrolle zu bringen. Es ist Zeit für Sie eine Liste zu sagen, wie sie sich verhalten, anstatt sie wilden auf Ihrer Webseite ausführen.

Die Bühne vorbereiten

Für die Zwecke dieses Artikels, verwende ich ungeordnete Listen. Das gleiche CSS können mit ähnlichen Ergebnissen angewendet werden, als auch auf geordnete Listen. Wenn nicht anders definiert, verwenden alle Beispiele in diesem Artikel den folgenden Code für die Listen.

Jede Liste wird einfach in einem anderen DIV platziert und die CSS geschrieben wird, so dass das Verhalten der Liste des DIV bestimmt wird es in ist jeder DIV eine Grundregel hat.:

Ohne zusätzliche Stile angewendet, wird die Liste auf diese Weise in der Basis DIV gemacht:

  • Gegenstand 1
  • Punkt 2
  • Punkt 3
  • Punkt 4
  • Punkt 5 werden wir ein wenig länger, so dass es umbrochen

Positionierung

  • Gegenstand 1
  • Punkt 2
  • Punkt 3
  • Punkt 4
  • Punkt 5 werden wir ein wenig länger, so dass es umbrochen
  • Gegenstand 1
  • Punkt 2
  • Punkt 3
  • Punkt 4
  • Punkt 5 werden wir ein wenig länger, so dass es umbrochen

Die Regel sieht wie folgt aus:

Und der Browser macht es:

  • Gegenstand 1
  • Punkt 2
  • Punkt 3
  • Punkt 4
  • Punkt 5 werden wir ein wenig länger, so dass es umbrochen

Um eine HTML-Kugel angeben zu verwenden, wenn der Browser nicht diesen Teil von CSS unterstützt, hinzu:

welches das Äquivalent von:

Dies ist, wie es in der Web-Seite aussieht:

  • Gegenstand 1
  • Punkt 2
  • Punkt 3
  • Punkt 4
  • Punkt 5 werden wir ein wenig länger, so dass es umbrochen

Die HTML enthält unser Standard UL, sondern mit dem, was Charakter oder HTML-Entität, die Sie anstelle der Kugel vor dem Inhalt des Listenelement verwendet werden soll. In unserem Fall werden wir verwenden .“Das richtige Doppelwinkel-Zitat:».

  • " Gegenstand 1
  • »Artikel 2
  • »Artikel 3
  • »Artikel 4
  • »Artikel 5 werden wir etwas länger so machen, dass es wickeln

Ich möchte darauf hinweisen, dass Netscape6 / 7 / Mozilla (und andere Gecko-basierten Browsern) und Opera können Inhalte über die CSS2 erzeugt create: vor Pseudo-Element. Wir können dies nutzen, um automatisch die »Zeichen (oder andere Zeichen) zu erzeugen für die Kugeln. Dies ermöglicht es uns, den Inhalt der UL allein zu lassen. Wenn Sie mit Opera oder einen Gecko-basierten Browser, wird die folgende CSS die gleiche Liste erstellen, wie oben, aber der Standard UL ohne zusätzliche Inhalte mit:

  • Gegenstand 1
  • Punkt 2
  • Punkt 3
  • Punkt 4
  • Punkt 5 werden wir ein wenig länger, so dass es umbrochen

Wirklich Inline-Listen

Ich höre Sie weinen, „foul! Ich dachte, Sie eine Liste innerhalb eines Absatzes setzen würden, nicht zwischen zwei Absätzen.“

Worauf ich antworten: „Nun, ja. Aber (X) HTML erlaubt keine Liste innerhalb eines Absatzes zu erscheinen. Doch mit Hilfe unserer Stylesheet, das ist, wie es in der Web-Seite aussehen wird.“

Hier ist, was die Stile wie folgt aussehen:

Die Ergebnisse sind unten (Liste erscheint fett und blau):

Ein bisschen Text vor der Liste erscheint. Vielleicht ist der Kontext etwas von einem Mann einen Anruf von seiner Frau bekommt ein paar Dinge auf dem Weg von der Arbeit nach Hause zu holen. Es ist nicht wirklich wichtig, für unsere Zwecke wir einige vorangegangenen Text, bevor die Liste nur brauchen:

  • Gegenstand 1,
  • Punkt 2,
  • Punkt 3,
  • Punkt 4,
  • Punkt 5 werden wir ein wenig länger, so dass sie wickeln wird.

Und dann gibt es den Text, der die Liste im Abschnitt folgt. Ein oder zwei Sätze sind für das Beispiel ausreichend.

Wie in dem benutzerdefinierten Aufzählungs obiges Beispiel könnten wir CSS verwenden, um automatisch die Kommas und Zeit zu erzeugen, die jedes Listenelement folgen. Wenn alles mußte man befürchten war Opera und Gecko angetrieben Browser, das ist. Dieses Mal sind die Stile würde wie folgt aussehen:

Hier verwenden wir das: nach pseudo-Elemente ein Komma nach jedem Listeneintrag hinzuzufügen, und eine Zeit nach einem Listenelement mit class = „liest“. in der folgenden resultierenden (denken Sie daran, es wird nur in Opera oder Mozilla / Netscape sichtbar sein):

Ein bisschen Text vor der Liste erscheint. Vielleicht ist der Kontext etwas von einem Mann einen Anruf von seiner Frau bekommt ein paar Dinge auf dem Weg von der Arbeit nach Hause zu holen. Es ist nicht wirklich wichtig, für unsere Zwecke wir einige vorangegangenen Text, bevor die Liste nur brauchen:

  • Gegenstand 1
  • Punkt 2
  • Punkt 3
  • Punkt 4
  • Punkt 5 werden wir ein wenig länger, so dass es umbrochen

Und dann gibt es den Text, der die Liste im Abschnitt folgt. Ein oder zwei Sätze sind für das Beispiel ausreichend.

Navigation

Diese Beispiele für die horizontalen Listen werden alle die gleiche Basis DIV mit den folgenden Arten verwenden:

Die nächsten beiden Beispiele verwenden die gleiche UL wie in den vorherigen Beispielen, aber ohne das letzte Listenelement mit seinem zusätzlichen Text. Dazu gehören auch eine zusätzliche Klasse, die neben einem der LIs in der Liste setzt.

Ein Pipe-Zeichen, |, wird häufig verwendet, um zwischen Entscheidungen zu unterscheiden. Es ist offensichtlich, dass die Trennzeichen, und kann durch Hinzufügen von Grenzen emuliert werden Elemente zur Liste:

Hier fügen wir class = „first“ zur ersten LI, so dass es nicht mit einer Grenze auf der linken Seite nicht am Ende.

Sie können diese Stile ändern, um einen Tabbed Navigation-Effekt zu erzeugen:

In diesem Beispiel das Hinzufügen class = „hier“ zu einem LI schafft eine untere Grenze, die die Hintergrundfarbe übereinstimmt, um anzuzeigen, dass die Lasche auf die aktuelle Seite verweist.

Hinweis: Diese Technik wurde zuerst von Randal Rust dargebotene. und riffed dann von vielen auf der css-discuss E-Mail-Liste

Brotkrumen-Routen

Mit dem folgenden:

Addiert man die folgenden Regeln für die Stylesheet für die Seite:

Auch hier können wir die »Zeichen (oder andere Zeichen, das Sie als Trennzeichen verwenden möchten) erzeugen mit der: vor Pseudoelement, kombiniert mit einer class =‚first‘, so dass der erste LI erzeugen keinen Separator:

Und das Endergebnis:

In der echten Welt

Ich möchte mit einer realen Welt Anwendung von einigen der Techniken beenden, die hier diskutiert wurden. Wir werden einen Standard UL enthält Links verwenden, um ein dynamisches Menü mit Hover-Effekte zu erzeugen. Um die Hover-Effekte zu erhalten, werden wir die UL lassen die Struktur liefern, und die Anker Stile werden die meisten der visuellen Effekte.

Schauen wir uns die Stylesheet-Regel durch die Regel aussehen, und ich werde erklären, warum jede Regel die Art und Weise aufgebaut ist, dass es ist.

Weiter I definiert, was die Liste aussehen wird. Da alle Listenelemente Links sein waren, und die Rollover-Funktionalität würde für die Links in den CSS gebaut werden, entfernte ich im Wesentlichen der gesamte Styling aus den Listen. Ich habe eine einzelne Pixel-Grenze auf der Unterseite jeder Verbindung hinzuzufügen, die den Hintergrund des #Button DIV abgestimmt, als Separator zu arbeiten. Im ursprünglichen Entwurf war dies ein Bild.

Schließlich definiert ich die Links. Der ursprüngliche Entwurf hat 10 Pixel Grenzen auf der rechten und linken Seite. Diese Grenzen, zusammen mit dem Hintergrund, ändern Farbe auf dem Rollover. Dies ist eine relativ einfache Sache zu steuern, mit der: Pseudoklasse in CSS schweben, so dass ich diesen Stil in die Anker Stile.

Es gibt eine Abhilfe, die in diesem Teil des Stylesheets. Um die Verbindungen aktiv für die volle Breite des DIV zu machen, habe ich sie display: block ;. Dies funktioniert für alles, aber IE / Sie Windows. Wenn Sie dem Block eine explizite Breite von 100% geben, dann IE / Windows-mitspielt. Aber dies zu tun schafft Probleme mit IE5 / Mac und Netscape / Mozilla. So habe ich das Kind Selektor „>“, um die Breite zu Auto neu zu definieren. Da IE / Windows nicht Kind-Selektoren verstehen, ignoriert es die Regel. IE5 / Mac, Opera und Netscape / Mozilla folgen die Regel, und jeder ist glücklich.

Die Regel für die: hover Pseudoklasse die Farbänderungen auf die Hintergründe und Grenzen schafft, wenn die Links moused über.

Spitze des Eisbergs

Mobile Geräte sind lieferbar mit immer höheren PPI und Desktops und Laptops folgen den Trend als auch. Da ist kein…

In Verbindung stehende Artikel