Comment avoir la classe=“choisis” en fonction de ce que la page en cours/url
Ceci est mon premier post donc pardonner comme je suis tout nouveau dans le monde du développement web.
Normalement, lorsque je tente de faire un site, j'ai créer un fichier appelé header.html et footer.html de sorte que je ne changer les données une seule fois dans toutes les pages plutôt que d'avoir plusieurs même les en-têtes sur beaucoup de fichiers html. Et tous les inclure dans un fichier php avec le contenu et le code php qui vient par page.
Maintenant mon problème est que je n'ai que 1 en-tête, le css est conçu de façon à ce que le menu/onglet est, il sera marqué comme "choisi" de sorte que son évidente pour l'utilisateur quelle page qu'ils sont actuellement.
Ma question est comment puis-je résoudre ce problème:
1.) Pour avoir la class="selected"
en fonction de ce que la page en cours/url.
<!--Menu Starts-->
<div class="menu">
<div id="smoothmenu" class="ddsmoothmenu">
<ul>
<li><a href="index.php" class="selected">Home</a></li>
<li><a href="about.php">About</a> </li>
<li><a href="services.php">Services</a> </li>
<li><a href="features.php">Features</a></li>
<li><a href="#">Support</a>
<ul>
<li><a href="support1.php">Support 1</a></li>
<li><a href="support2.php">Support 2</a></li>
</ul>
</li>
</ul>
</div>
</div>
<!-- Menu Ends--!>
Merci 🙂
OriginalL'auteur GitKidd | 2013-04-02
Vous devez vous connecter pour publier un commentaire.
Si vous êtes à la recherche pour un non-javascript /php approche...
Vous devez d'abord déterminer qui nav-lien doit être définie comme active, puis ajouter le sélectionné classe. Le code devrait ressembler à quelque chose comme ceci
HTML dans les fichiers php
Appeler une fonction php inline dans le lien hypertexte
<a>
balisage de passage dans les liens de destination uri de la demandeFonction PHP
La fonction php suffit de comparer le passé dans l'uri de la demande et si elle correspond à la page en cours en cours de rendu de sortie de la sélectionné classe
Moutray Omg! merci pour ça 🙂 , vraiment aidé! J'ai fait une nouvelle inclure le fichier appelé config.php et compris le présent code. Il a résolu mon problème. J'ai Toujours trouvé stackoverflow que vraiment une aide de la communauté pour aller 🙂 Merci encore à tous.
content que ça a aidé...
Génial, mec. Merci.
OriginalL'auteur Chris Moutray
Vous pourriez ID de chaque lien et de l'utilisation de JavaScript/Jquery pour ajouter le
selected
classe pour le lien approprié.Sur votre page de contenu utiliser jQuery pour faire quelque chose comme:
Une autre méthode que vous pouvez utiliser est:
Ajouter une classe de l'élément basé sur le nom de la page
OriginalL'auteur ajtrichards
Donner à chaque lien un id séparé puis utiliser jQuery sur les pages individuelles.
Sur la page services:
Ou même mieux comme robertc souligné dans les commentaires, il n'y a même pas besoin de s'embêter avec les id il suffit de faire le jquery ceci:
Pas besoin d'encombrer avec des Id:
$("[href='services.php']").addClass("selected");
Bon point, n'a jamais vraiment pensé à ça, encore un peu nouveau pour jQuery moi-même. Je vais l'ajouter comme une option, merci.
OriginalL'auteur Rick Calder
Une variante de Chris approche est à la sortie d'une classe particulière d'identifier la page, par exemple sur la
body
élément, puis utiliser des classes sur les éléments de menu, et une règle CSS que les objectifs de leur correspondance. Par exemple, cette page:...est jolie lumière sur la dynamique de code, mais devrait atteindre l'objectif; si vous l'enregistrez en tant que "about.php" puis le lien apparaîtra en gras, mais si vous l'enregistrez en tant que "services.php" puis le lien des Services sera gras, etc.
Si votre structure de code approprié, vous pourriez être en mesure de simplement coder en dur la page
body
classe dans le fichier de modèle, plutôt que d'utiliser toute dynamique de code. Cette approche de manière efficace vous donne un moyen de se déplacer, la "logique" pour le menu système le menu code, qui sera toujours le même pour chaque page, et à un niveau plus élevé.Comme un bonus supplémentaire, vous pouvez maintenant utiliser pur CSS pour cibler d'autres choses, fondé sur la page que vous êtes sur. Par exemple, vous pouvez tourner à tous les
h1
éléments sur laindex.php
page rouge juste en utilisant plus de CSS:OriginalL'auteur Matt Gibson
Vous pouvez le faire à partir de simples si et page PHP /basename() la fonction..
OriginalL'auteur adnanmn
Désolé pour mon mauvais anglais, mais peut-être qu'il pourrait les aider. Vous pouvez utiliser jQuery pour cette tâche. Pour cela, vous devez faire correspondre l'url de la page à l'ancre de menu, puis ajouter la classe sélectionnée. par exemple, le code jQuery serait
OriginalL'auteur Umair Hamid