Breadcrumb-Navigation
Breadcrumb-Navigation hilft dem Benutzer, seine Position auf der Website zu verstehen, indem sie eine breadcrumb-Spur zurück zur Startseite bietet. Die Elemente werden typischerweise inline angezeigt, mit einem Trennzeichen zwischen jedem Element, das die Hierarchie zwischen den einzelnen Seiten anzeigt.
Anforderungen
Stellen Sie die Hierarchie der Website dar, indem Sie Links inline anzeigen, mit einem Trennzeichen zwischen den Elementen, das die Hierarchie zwischen den einzelnen Seiten anzeigt, wobei die aktuelle Seite zuletzt erscheint.
Rezept
Klicken Sie auf "Play" in den untenstehenden Codeblöcken, um das Beispiel im MDN Playground zu bearbeiten:
<nav aria-label="Breadcrumb" class="breadcrumb">
<ol>
<li><a href="#">Home</a></li>
<li><a href="#">Category</a></li>
<li><a href="#">Sub Category</a></li>
<li><a href="#">Type</a></li>
<li><span aria-current="page">Product</span></li>
</ol>
</nav>
body {
font: 1.2em sans-serif;
}
.breadcrumb {
padding: 0 0.5rem;
}
.breadcrumb ol {
display: flex;
flex-wrap: wrap;
list-style: none;
margin: 0;
padding: 0;
align-items: end;
}
.breadcrumb li:not(:last-child)::after {
display: inline-block;
margin: 0 0.25rem;
content: "→";
}
Hinweis:
Das obige Beispiel verwendet einen komplexen Selektor, um vor jedem li
Element außer dem letzten Inhalt einzufügen. Dies könnte auch durch einen komplexen Selektor erreicht werden, der alle li
-Elemente mit Ausnahme des ersten anspricht:
.breadcrumb li:not(:first-child)::before {
content: "→";
}
Wählen Sie die Lösung, die Ihnen besser gefällt.
Getroffene Entscheidungen
Um Listenelemente inline darzustellen, verwenden wir das Flexbox-Layout und zeigen so, wie eine CSS-Zeile unsere Navigation darstellen kann. Die Trennzeichen werden mithilfe von CSS generiertem Inhalt hinzugefügt. Sie können diese in ein beliebiges Trennzeichen ändern, das Ihnen gefällt.
Barrierefreiheitsaspekte
Wir haben die Attribute aria-label
und aria-current
verwendet, um Benutzern von unterstützenden Technologien zu helfen, zu verstehen, was diese Navigation ist und wo sich die aktuelle Seite in der Struktur befindet. Weitere Informationen finden Sie unter den verwandten Links.
Beachten Sie, dass die über die content
CSS-Eigenschaft hinzugefügten Trennpfeile →
aus dem obigen Beispiel an unterstützende Technologien (AT) weitergegeben werden, einschließlich Bildschirmlesern und Brailledisplays. Für eine ruhigere Lösung verwenden Sie ein dekoratives <img>
in Ihrem HTML mit einem leeren alt
-Attribut. Eine ARIA role
, die auf none
oder presentation
gesetzt ist, verhindert ebenfalls, dass das Bild an AT übermittelt wird.
Alternativ können Sie den CSS generierten Inhalt zum Schweigen bringen, indem Sie als Alternativtext eine leere Zeichenfolge einschließen, gefolgt von einem Schrägstrich (/
); zum Beispiel content: url("arrow.png") / "";
.
Falls generierte Trennzeichen enthalten sind, die an AT übermittelt werden, wählen Sie die Erstellung des generierten Inhalts mit dem Pseudo-Element-Selektor ::after
anstelle von ::before
, sodass der Trenninhalt nach dem HTML-Inhalt und nicht davor angesagt wird.