@@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 classcurrent, wird also hervorgehoben.
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