Lieber Ralf,
ein Link führt grundsätzlich zu einer Resource im Internet, üblicherweise zu einem Dokument, oft zu einem HTML-Dokument. Das bedeutet, dass man das aktuelle Dokument verlässt und zu einem neuen Dokument navigiert. Damit verlässt man die (Unter-)Seite, um zu einer neuen (Unter-)Seite zu gelangen.
Willst Du mit dem Link die Seite nicht verlassen, benötigst Du einen seiteninternen Verweis. Das kann man von der Darstellung so gestalten, dass je nach Verweisziel unterschiedliche Darstellungen gelten, darunter auch die Sichtbarkeit von Elementen.
Der Lösungsweg mit :target
hat den Nachteil, dass keiner der möglichen Inhalte angezeigt wird, wenn man nicht mit JavaScript dafür sorgt, dass in der URL ein Sprungziel enthalten ist.
Liebe Grüße
Felix Riesterer