Une barre de navigation horizontale
Ce que je veux :
Une barre horizontale, placée immédiatement sous le top et présentant des liens vers diverses parties de mon blog qu'il me semble utile de rendre directement accessibles.
Plutôt que de faire un tuto général, je préfère vous en livrer un exemple commenté. On trouve sur le web plusieurs sites offrant des modèles, j'en retiendrais deux :
- Alsacréations, dont la fréquentation est en tout état de cause recommandée pour ses nombreux tutoriels et son forum.
- listamatic, chez css.maxdesign, également à placer dans vos signets.
Pour ma part, j'ai retenu Centred list navbar updated, un menu de Chris Hester pour Listamatic, que j'ai ensuite arrangé à ma sauce.
La source
Ordonques, placé juste en dessous du pararaphe
<p id="prelude"> ..... </p>
le contenu de cette navigation sous forme de liste :
<div id="nav-box"> <ul> <li><a href="<?php dcInfo('url'); ?>">Accueil</a></li> <li><a href="<?php dcInfo('url'); ?>?somcat" title="Table des matières par catégorie">Sommaire</a></li> <li><a href="<?php dcInfo('url'); ?>?aide">Aide</a></li> <li><a href="<?php dcInfo('url'); ?>?infos">Infos</a></li> </ul> </div>
Quelques précisions :
- Dans cet exemple, Sommaire, Aide et Info sont chez moi des pages connexes, mais les liens pourraient tout aussi bien aller vers des billets spécifiques ou vos catégories.
- Par souci de clarté, j'ai présenté la liste en retournant à la ligne pour chaque item, mais en fait il faut tout enchaîner pour faire face à un bug d'Internet Explorer lorsqu'il doit aligner des liens sur la même ligne.
Et maintenant la feuille de style :
/* Paramètres généraux de la boite (div) qui contient la liste : pas de marge, * indication essentielle pour IE qui en met par défaut ; définition de la couleur * du fond. Je réduis un peu la taille des caractères à une valeur de neuf * dixièmes et je demande que le contenu soit aligné à droite : */ #nav-box { margin : 0; padding : 0; background-color: #cc0; font-weight : bold; font-size : 0.9em; text-align: right; } /* Paramètres généraux de la liste (ul). Toujours mes marges à zéro, * le padding (marge intérieure) servira à dégager le texte en haut et en * bas de 5 pixels tout en le décollant également de 1em du bord droit * ce dernier point est indispensable pour Internet Explorer, comme on * le verra pour #nav-box ul li a { }. list-style-type : none; déclare que * je ne place pas de puces devant chaque item. */ #nav-box ul { margin : 0; padding : 5px 1em 5px 0; list-style-type : none; } /* Paramètres des liens. display : inline; donne comme instruction de ne * pas faire de saut de ligne pour chaque item. Je redonne également une * marge intérieure haute et basse de 5 pixels pour que les items occupent * toute la place verticale créée pour la liste */ #nav-box ul li { display: inline; padding : 5px 0; } /* On retrouve le padding haut et bas de 5 pixels (car sinon Internet Explorer * va n'en faire qu'à sa tête) et j'ajoute un espace latéral de 1em de chaque * côté des liens. J'indique également la couleur des caractères des liens et je * place un bord gauche continu et blanc de 1 pixel de large. text-decoration : * none; indique que je ne veux pas que les liens soient soulignés (ce qui serait * le cas par défaut. */ #nav-box ul li a { color: #4b4b69; text-decoration: none; padding : 5px 1em 5px 1em; border-left: 1px solid #fff; } /* Ici, ce qui se passe au survol des liens : changement de la couleur du fond, * de la couleur des caractères, je n'oublie pas de remettre à ce lien survolé le * bord gauche que j'ai défini pour les liens « au repos ». */ #nav-box ul li a:hover { background-color: #4b4b69; color: #d9d940; border-left: 1px solid #fff; } /* Le comportement des liens activés. Pour l'instant ne marche pas : le lien une * fois cliqué ne semble pas acquérir l'état actif... Si quelqu'un sait pourquoi ? */ #nav-box a:active { border-left: 1px solid #fff; }
Voilà, vous savez tout sur la réalisation de cette petite barrette logée sous le top. Attention : il ne faut pas oublier de donner au top une marge inférieure égale à 0 pour que cette barre soit collée juste en dessous.
[Mise à jour du 23/3/2005] A la suite de la lecture d'un article d'Openweb, Il y a des calques qui se perdent, j'ai corrigé le code de ce menu :
Pour la source :
Pour plus de clarté j'ai fait un retour à la ligne pour chaque lien mais pour contourner un bug d'Internet Explorer, vous devrez, si vous utilisez ce code, enchaîner toutes les lignes, à l'exception du commentaire initial.
<!-- barre de navigation horizontale --> <ul id="nav-box"> <li><a href="<?php dcInfo('url'); ?>">Accueil</a></li> <li><a href="<?php dcInfo('url'); ?>?somcat" title="Table des matières par catégorie">Sommaire</a></li> <li><a href="/pages/outils">Boîte à outils</a></li> <li><a href="<?php dcInfo('url'); ?>?aide">Première visite ?</a></li> <li><a href="<?php dcInfo('url'); ?>?infos">Infos</a></li> </ul>
Pour la feuille de style :
/*--- NAVIGATION HORIZONTALE--- */ ul#nav-box { margin : 0 0 1.5em 0; padding : 5px 1em 5px 0; list-style-type : none; background-color: #cc0; color: #4b4b69; font-weight : bold; font-size : 0.9em; text-align: right; } ul#nav-box li { display: inline; padding : 5px 0; } ul#nav-box li a { padding : 5px 1em 5px 1em; color: #4b4b69; text-decoration: none; border-left: 1px solid #fff; } ul#nav-box li a:hover { background-color: #4b4b69; color: #d9d940; border-left: 1px solid #fff; }
Commentaires
1. Le mercredi 2 mars 2005 à 20:49, par Lithium
2. Le mercredi 2 mars 2005 à 23:11, par Kozlika
3. Le jeudi 3 mars 2005 à 11:59, par Lithium
4. Le jeudi 3 mars 2005 à 12:23, par planeth
5. Le jeudi 3 mars 2005 à 12:36, par Kozlika
6. Le jeudi 3 mars 2005 à 13:17, par planeth
7. Le samedi 16 avril 2005 à 12:16, par Ju.
8. Le lundi 18 avril 2005 à 21:56, par Kozlika
9. Le mercredi 27 avril 2005 à 01:26, par Alain Dubois
10. Le mercredi 11 mai 2005 à 11:15, par Marie
11. Le mercredi 11 mai 2005 à 11:40, par Marie
12. Le vendredi 27 mai 2005 à 01:42, par Couster
13. Le lundi 30 mai 2005 à 08:26, par Kozlika
14. Le dimanche 5 juin 2005 à 18:01, par Antoine
15. Le dimanche 5 juin 2005 à 18:18, par Antoine
16. Le mardi 19 juillet 2005 à 18:24, par Claire
17. Le mercredi 20 juillet 2005 à 18:49, par Kozlika
18. Le jeudi 11 août 2005 à 20:06, par Claire
19. Le jeudi 11 août 2005 à 21:06, par Kozlika
20. Le mardi 13 septembre 2005 à 13:19, par Richard
21. Le mardi 13 septembre 2005 à 14:31, par Kozlika
22. Le dimanche 18 décembre 2005 à 23:32, par etto
23. Le lundi 26 décembre 2005 à 03:36, par oL
24. Le samedi 14 janvier 2006 à 01:56, par Caribou
25. Le samedi 14 janvier 2006 à 08:08, par Kozlika
26. Le samedi 14 janvier 2006 à 10:57, par Caribou
27. Le samedi 14 janvier 2006 à 12:04, par Kozlika
28. Le dimanche 15 janvier 2006 à 01:16, par Caribou
29. Le mercredi 15 mars 2006 à 20:48, par Zisco
30. Le lundi 20 mars 2006 à 12:44, par Fanch
31. Le lundi 20 mars 2006 à 19:47, par Kozlika
32. Le mardi 11 avril 2006 à 19:04, par Blz
33. Le mercredi 17 mai 2006 à 01:01, par Sof
34. Le mardi 23 mai 2006 à 15:43, par Kozlika
35. Le jeudi 8 juin 2006 à 23:13, par animatoon
36. Le vendredi 25 août 2006 à 15:11, par Cyclope
37. Le mercredi 11 octobre 2006 à 22:46, par jcl
38. Le mardi 12 décembre 2006 à 10:34, par lewo
39. Le samedi 30 décembre 2006 à 23:34, par antoine
40. Le samedi 6 janvier 2007 à 12:43, par Chtitecreme
41. Le samedi 6 janvier 2007 à 19:21, par Guillaume
42. Le samedi 6 janvier 2007 à 20:17, par Kozlika
43. Le samedi 6 janvier 2007 à 20:18, par Kozlika
44. Le vendredi 23 mars 2007 à 15:16, par Pedronislas
45. Le samedi 24 mars 2007 à 09:52, par Kozlika
46. Le mardi 29 mai 2007 à 09:19, par MoBs
47. Le vendredi 3 août 2007 à 08:35, par JM
48. Le vendredi 3 août 2007 à 14:37, par Kozlika
49. Le mercredi 5 septembre 2007 à 10:39, par Rémi&Lolo
50. Le mercredi 5 septembre 2007 à 18:05, par Kozlika
51. Le mercredi 26 septembre 2007 à 21:59, par mellechaaa
52. Le jeudi 27 septembre 2007 à 11:23, par Kozlika
53. Le mardi 30 octobre 2007 à 08:33, par mangepa
54. Le vendredi 31 octobre 2008 à 15:06, par Toine