Antwort an „Gunnar Bittersmann“ verfassen

@@borisbaer

if (!empty($_GET['subpage'])) { $current = $_GET['subpage']; }

Das tue ich, weil ich im Folgenden diese Variable benötige, nämlich bspw. an dieser Stelle:

<a class="<?= $current === 'releases' ? 'current' : ''; ?>" href="releases">Releases</a>

Das Umkopieren von $_GET['subpage'] in eine Variable macht keinen Sinn. Du verwendest einfach bei jedem Vergleich $_GET['subpage'] und gut ist.

Wenn also der aktuelle URL-Parameter mit dem jeweiligen if clause für $current übereinstimmt, dann bekommt dieser Link die class current, wird also hervorgehoben.

Verwende aria-current="page".

Eine Klasse current brauchst du dann nicht; du kannst den Attributselektor [aria-current="page"] zum Stylen verwenden. (Ein Klassenselektor ist auch nur eine andere Schreibweise für einen Attributselektor.)

Was du nicht tun solltest: die aktuelle Seite verlinken. Stattdessen den Link auf den Hauptinhalt setzen (also genau dorthin, wo auch der Skip-Link hinführt).

Live und in Schwarz/Weiß zu sehen, wo nie ein Mensch zuvor gewesen ist. Das PHP-Script, das die Seiten generiert, kann man sich auch ansehen.

Ich hab letztens was darüber erzählt, zu sehen ist das auf Folie 7.

Wenn es dir nicht behagt, wiederholt $_GET['subpage'] zu verwenden und damit immer wieder dasselbe zu tun, kannst du das auch mit einer Schleife machen; so in etwa:

<?php
$subpages = [
  [ 'title' => 'Spiel', 'path' => 'game' ],];
?>

<nav>
  <ul>
<?php foreach ($subpages as $subpage): ?>
    <li>
      <a
  <?php if ($subpage['path'] == $_GET['subpage']): ?>
        href="#main"
        aria-current="page"
  <?php elseif: ?>
        href="$subpage['path']"
  <?php endif; ?>
      >
        <?php echo htmlspecialchars($subpage['title']); ?>
      </a>
    </li>
<?php endforeach; ?>
  </ul>
</nav>

🖖 Живіть довго і процвітайте

--
When the power of love overcomes the love of power the world will know peace.
— Jimi Hendrix
freiwillig, öffentlich sichtbar
freiwillig, öffentlich sichtbar
freiwillig, öffentlich sichtbar

Ihre Identität in einem Cookie zu speichern erlaubt es Ihnen, Ihre Beiträge zu editieren. Außerdem müssen Sie dann bei neuen Beiträgen nicht mehr die Felder Name, E-Mail und Homepage ausfüllen.

abbrechen