Source

Seitennummerierung

Dokumentation und Beispiele zum Anzeigen von Paginierungen, um anzuzeigen, dass eine Reihe verwandter Inhalte auf mehreren Seiten vorhanden ist.

Überblick

Wir verwenden einen großen Block verbundener Links für unsere Paginierung, wodurch Links schwer zu übersehen und leicht skalierbar sind – und gleichzeitig große Trefferbereiche bieten. Die Paginierung besteht aus Listen-HTML-Elementen, sodass Screenreader die Anzahl der verfügbaren Links ankündigen können. Verwenden Sie ein Wrapping <nav>-Element, um es als Navigationsabschnitt für Screenreader und andere Hilfstechnologien zu kennzeichnen.

Da Seiten wahrscheinlich mehr als einen solchen Navigationsabschnitt haben, ist es außerdem ratsam, eine Beschreibung aria-labelfür den bereitzustellen <nav>, um seinen Zweck widerzuspiegeln. Wenn beispielsweise die Paginierungskomponente verwendet wird, um zwischen einer Reihe von Suchergebnissen zu navigieren, könnte eine geeignete Bezeichnung aria-label="Search results pages".

<nav aria-label="Page navigation example">
  <ul class="pagination">
    <li class="page-item"><a class="page-link" href="#">Previous</a></li>
    <li class="page-item"><a class="page-link" href="#">1</a></li>
    <li class="page-item"><a class="page-link" href="#">2</a></li>
    <li class="page-item"><a class="page-link" href="#">3</a></li>
    <li class="page-item"><a class="page-link" href="#">Next</a></li>
  </ul>
</nav>

Arbeiten mit Symbolen

Möchten Sie für einige Paginierungslinks ein Symbol oder Symbol anstelle von Text verwenden? ariaStellen Sie sicher, dass Sie mit Attributen und dem .sr-onlyDienstprogramm die richtige Screenreader-Unterstützung bereitstellen .

<nav aria-label="Page navigation example">
  <ul class="pagination">
    <li class="page-item">
      <a class="page-link" href="#" aria-label="Previous">
        <span aria-hidden="true">&laquo;</span>
        <span class="sr-only">Previous</span>
      </a>
    </li>
    <li class="page-item"><a class="page-link" href="#">1</a></li>
    <li class="page-item"><a class="page-link" href="#">2</a></li>
    <li class="page-item"><a class="page-link" href="#">3</a></li>
    <li class="page-item">
      <a class="page-link" href="#" aria-label="Next">
        <span aria-hidden="true">&raquo;</span>
        <span class="sr-only">Next</span>
      </a>
    </li>
  </ul>
</nav>

Deaktivierte und aktive Zustände

Paginierungslinks sind für verschiedene Umstände anpassbar. Verwenden Sie dies .disabledfür Links, die nicht angeklickt werden können, und .activeum die aktuelle Seite anzuzeigen.

Während die .disabledKlasse versuchtpointer-events: none , die Link-Funktionalität von s zu deaktivieren , ist diese CSS-Eigenschaft noch nicht standardisiert und berücksichtigt nicht die Tastaturnavigation. Daher sollten Sie immer deaktivierte Links hinzufügen und benutzerdefiniertes JavaScript verwenden, um ihre Funktionalität vollständig zu deaktivieren.<a>tabindex="-1"

<nav aria-label="...">
  <ul class="pagination">
    <li class="page-item disabled">
      <a class="page-link" href="#" tabindex="-1">Previous</a>
    </li>
    <li class="page-item"><a class="page-link" href="#">1</a></li>
    <li class="page-item active">
      <a class="page-link" href="#">2 <span class="sr-only">(current)</span></a>
    </li>
    <li class="page-item"><a class="page-link" href="#">3</a></li>
    <li class="page-item">
      <a class="page-link" href="#">Next</a>
    </li>
  </ul>
</nav>

Sie können optional aktive oder deaktivierte Anker durch <span>ersetzen oder den Anker im Fall der Zurück-/Weiter-Pfeile weglassen, um die Klickfunktionalität zu entfernen und den Tastaturfokus zu verhindern, während die beabsichtigten Stile beibehalten werden.

<nav aria-label="...">
  <ul class="pagination">
    <li class="page-item disabled">
      <span class="page-link">Previous</span>
    </li>
    <li class="page-item"><a class="page-link" href="#">1</a></li>
    <li class="page-item active">
      <span class="page-link">
        2
        <span class="sr-only">(current)</span>
      </span>
    </li>
    <li class="page-item"><a class="page-link" href="#">3</a></li>
    <li class="page-item">
      <a class="page-link" href="#">Next</a>
    </li>
  </ul>
</nav>

Dimensionierung

Lust auf größere oder kleinere Paginierung? Hinzufügen .pagination-lgoder .pagination-smfür zusätzliche Größen.

<nav aria-label="...">
  <ul class="pagination pagination-lg">
    <li class="page-item disabled">
      <a class="page-link" href="#" tabindex="-1">1</a>
    </li>
    <li class="page-item"><a class="page-link" href="#">2</a></li>
    <li class="page-item"><a class="page-link" href="#">3</a></li>
  </ul>
</nav>
<nav aria-label="...">
  <ul class="pagination pagination-sm">
    <li class="page-item disabled">
      <a class="page-link" href="#" tabindex="-1">1</a>
    </li>
    <li class="page-item"><a class="page-link" href="#">2</a></li>
    <li class="page-item"><a class="page-link" href="#">3</a></li>
  </ul>
</nav>

Ausrichtung

Ändern Sie die Ausrichtung von Paginierungskomponenten mit Flexbox-Dienstprogrammen .

<nav aria-label="Page navigation example">
  <ul class="pagination justify-content-center">
    <li class="page-item disabled">
      <a class="page-link" href="#" tabindex="-1">Previous</a>
    </li>
    <li class="page-item"><a class="page-link" href="#">1</a></li>
    <li class="page-item"><a class="page-link" href="#">2</a></li>
    <li class="page-item"><a class="page-link" href="#">3</a></li>
    <li class="page-item">
      <a class="page-link" href="#">Next</a>
    </li>
  </ul>
</nav>
<nav aria-label="Page navigation example">
  <ul class="pagination justify-content-end">
    <li class="page-item disabled">
      <a class="page-link" href="#" tabindex="-1">Previous</a>
    </li>
    <li class="page-item"><a class="page-link" href="#">1</a></li>
    <li class="page-item"><a class="page-link" href="#">2</a></li>
    <li class="page-item"><a class="page-link" href="#">3</a></li>
    <li class="page-item">
      <a class="page-link" href="#">Next</a>
    </li>
  </ul>
</nav>