Comment appliquer des styles spécifiques à la page Web en cours dans un menu ? (2) Gérer une classe ou identifiant "en cours" pour un site dynamique

Si votre site est "statique", c'est-à-dire si vos pages sont des pages HTML séparées, vous devrez avoir un code HTML légèrement différent sur chaque page, pour placer votre "marqueur" (classe ou identifiant de votre choix) sur le bon élément. Il faudra faire ces modifications à la main, pour chaque page.

Mais si votre site est généré dynamiquement, à l'aide de scripts PHP ou d'un autre langage serveur, il est probable que votre menu de navigation n'est pas dupliqué sur chaque page, mais plutôt généré par des gabarits (templates), ou appelé via une fonction PHP include().

Comment générer un code HTML différent pour chaque page ou rubrique ?

Cela signifie que votre menu n'existe qu'à un seul endroit. Dans ce cas, comment générer un code HTML différent pour chaque page ou rubrique à partir de cette source unique...

Cela dépendra de la technologie utilisée. Si vous travaillez avec un CMS, lisez la documentation ou posez la question à la communauté pour savoir de quelle manière vous pouvez placer votre identifiant ou classe au bon endroit pour chaque page. Si vous utilisez uniquement la fonction include() en PHP comme décrit dans ce tutoriel, vous pouvez fonctionner ainsi:

1. Sur chaque page PHP, déclarer une variable comme ceci:

 <php $nav_en_cours = 'rubrique1'; ?>

2. Dans le fichier PHP qui contient votre menu, le code du menu devra ressembler à ceci:

 <ul id="navigation">
 <li<?php if ($nav_en_cours == 'rubrique1') {echo ' id="en-cours"';} ?>><a href="https://www.journaldunet.com/rub1/">Rubrique 1</a></li>
 <li<?php if ($nav_en_cours == 'rubrique2') {echo ' id="en-cours"';} ?>><a href="https://www.journaldunet.com/rub2/">Rubrique 2</a></li>
</ul>

Rentrer dans les détails demanderait un tutoriel plus complet. Retenez juste que réussir ce genre de chose vous demandera une connaissance correcte des bases les plus élémentaires de PHP, et que copier-coller ce dernier exemple ne vous servira à rien si vous n'en avez pas compris le principe à la première ou deuxième lecture.

De même, si vous travaillez avec le langage de template d'un CMS, il vous faudra bien connaitre ce langage de template et les possibilités du CMS, ou bien vous renseigner correctement.