11
votes

Comment faire des menus de navigation HTML réutilisables?

Je suis sûr que ce sujet arrive tout le temps,
Mais je ne peux pas sembler une bonne réponse concise.

J'ai une barre de menus verticale que je veux réutiliser dans les pages Web (> 20). La barre de menu est codée en code HTML et utilise des utilisations: ul, Li, un ,

tags et css. Nous avons besoin de cela:
  1. réutilisable
  2. maintenable
  3. évolutif

    Nous n'avons donc pas à modifier toutes les pages à chaque fois que nous ajoutons une page.

    Nous préférerions éviter une approche de codage si possible. Nous pourrions vivre avec un seul fichier maître que nous édions au besoin. Puisque nous utilisons CSS et

    s, je ne pense pas que les cadres échelle pour nous. Que pouvons-nous faire?

    1 commentaires

    Vous avez probablement besoin d'une technologie côté serveur. Il y a beaucoup de choix de, PHP, ASP, JSP, ROR, Python, ColdFusion et / ou Nombre de cadres de développement Web construits sur ceux-ci.


10 Réponses :


0
votes

Si vous utilisez PHP, tout ce que vous avez à faire est d'utiliser la commande Inclure , aucun codage au-delà de cette commande une seule.
En outre, consultez Le côté serveur comprend


0 commentaires

2
votes

Pour ce faire, vous devrez utiliser une technologie latérale du serveur. Par exemple, vous pourriez ...


2 commentaires

Je me demande quels sont les inconvénients à l'aide du piratage JavaScript sur la technologie côté serveur.


@Tomato: Sauf si vous avez le contrôle de tous les périphériques accédant au site (par exemple, un intranet interne d'une entreprise où ils possèdent tous les ordinateurs et savent quels navigateurs sont installés), vous ne pouvez pas garantir que JavaScript sera disponible. Certaines personnes choisissent de le désactiver pour la sécurité; Certains navigateurs plus anciens, appareils mobiles ou lecteurs d'écran ne le soutiennent pas (au moins entièrement). Dans ces cas, un utilisateur peut obtenir la page principale, mais pas de menu!



8
votes

Le côté du serveur comprend la voie à suivre si vous ne voulez pas utiliser de langage de programmation.

Ils prennent ce formulaire: P>

<!--#include virtual="menu.html" -->


0 commentaires

0
votes

Jusqu'à présent, l'une des meilleures solutions que j'ai trouvées est de modéliser les menus après le fils de Suckerfish Solution XHTML / CSS assez bien documenté sur Internet, associé à une logique sur le serveur pour rendre la liste non ordonnée. En utilisant des listes non commandées, vous avez quelques options différentes sur la manière de générer les résultats, mais aussi longtemps que le menu contient une hiérarchie de base, vous pouvez le générer. Ensuite, pour la page réelle, tout ce que vous avez à faire est d'inclure une référence à la fonction de génération de menu.


0 commentaires

1
votes

J'ai fait ces deux manières distinctes - une utilisation du côté serveur (PHP) et une utilisation de JavaScript (pour les démos qui doivent pouvoir fonctionner sans aucune connexion Internet ni de fonctionnalités de serveur).

pour PHP inclut votre les pages devront se terminer avec .php plutôt que .htm ou .html, et celles-ci sont très idéales pour remplacer votre en-tête, votre pied de page, votre navigation, etc. tout ce qui est répété sur plusieurs pages. P>

essentiellement que vous voudriez Créez votre code normal puis copiez et collez le code que vous souhaitez sortir - dans cet exemple, votre navigation - et enregistrez-la dans un autre fichier appelé (par exemple) inc_navigation.htm (cette page peut être appelée .htm). P >

Dans vos pages réelles, vous utiliseriez le code suivant: p> xxx pré>

qui insérerait votre navigation à ce moment-là, si vous aviez un changement pour vous faire " d Faites-le au fichier .htm et il se propagerait à n'importe quelle page avec celle incluse. p>

Pour JavaScript inclut vous devrez inclure la ligne suivante en haut de chaque document où vous le souhaitez. inclure votre navigation: p> xxx pré>

alors vous créerez un document appelé inclut.js. p>

En haut de ce document, vous déclarerez votre Variable de navigation: P>

<script type="text/javascript">show(navigation);</script>


0 commentaires

2
votes

sans aucun script côté serveur ou JavaScript, vous pouvez utiliser des tags d'objet ou d'iframe.

http://www.w3schools.com/tags/tag_object.asp < / p>

http://www.w3schools.com/tags/tag_iframe.asp < / p>

La seule chose à soigner est d'indiquer cible = "parent" dans les liens.

espère qu'il aide


1 commentaires

C'était probablement la voie à suivre en 2011, mais c'est maintenant une solution obsolète. Cela fonctionne, mais ne devrait pas être utilisé car il gâche avec l'analyse d'URL et est une approche non conventionnelle. Voir d'autres réponses à la place.



1
votes

Je faisais face à la même chose. Ensuite, j'ai créé un nouveau fichier pour stocker le code HTML de la barre de navigation.

J'ai créé un fichier Navbar.html qui avait tout mon code à barres de navigation. Ensuite, dans votre fichier HTML principal où vous souhaitez que la barre de navigation, incluez simplement ce fichier à l'aide de jQuery. xxx

puis à l'endroit où vous voulez la barre de navigation, ajoutez simplement cette ligne. : xxx


1 commentaires

Fonctionne pour menu statique uniquement. Si vous avez la navigation sous-menue basée sur CSS, il ne fonctionne pas



1
votes

Réponse moderne à une question de six ans: Les composants Web sont des composants HTML spécifiquement réutilisables et polymère est peut-être la mise en œuvre la plus populaire en ce moment. Actuellement, pratiquement aucun navigateur n'a de prises de support native pour les composants Web, donc au moins une polyfill JavaScript est requise.


0 commentaires

2
votes

Utilisation d'un script w3 ..

index.html xxx

header.html xxx

nav.html xxx

Voir aussi: http://www.w3schools.com/howto/howto_html_include.asp

et n'oubliez pas de Testez ce code sur votre localhost.


1 commentaires

Bien que cela inclue le contenu, le problème est timing. Si vous essayez d'utiliser W3-Inclure-HTML pour inclure une barre NAV et avoir d'autres javascript sur cette barre NAV, le contenu est chargé après l'exécution de l'autre JavaScript. Lorsque je trouve une solution à cela sans utiliser de langage côté serveur (PHP, .NET, etc.) Je le posterai.



0
votes

Je cherchais un moyen d'écrire un menu de navigation réutilisable qui bascule (afficher / masquer) lorsque vous cliquez sur un bouton. Je veux partager une solution qui a fonctionné pour moi au cas où quelqu'un d'autre cherche à faire la même chose. Cette solution utilise jQuery, HTML et CSS.

Ajoutez cette ligne de code à votre étiquette de tête dans votre fichier principal.html: