web-dev-qa-db-fra.com

Navigation par onglets et double contenu

J'ai un site Web sur lequel j'utilise des onglets pour naviguer entre les pages. Par exemple, la page a affiche A comme onglet actif et les onglets d’arrière-plan B et C. Si le visiteur accède au site via la page B, je souhaite également afficher la page d, mais pas a et c.

Question: Je sais que je peux simplement créer index2 pour b par exemple, donc lorsque le visiteur arrive à b de a, j’affiche a, b, c et index1 lorsque le visiteur arrive à b de d par exemple. Est-ce une mauvaise pratique? Je sais que le double contenu n'est pas bon, mais de quelle autre manière puis-je ou dois-je aborder ce problème?

La navigation par onglet que je conçois utilise <li> et la balise id affiche un onglet actif, défini dans la balise <body>.

1
riseagainst

Vous devriez probablement utiliser des fragments d'URL pour déterminer quel onglet est affiché. Cela signifie que vous n’avez qu’une seule page avec laquelle travailler.

Un fragment d'URL est le bit après un symbole #. Par exemple;

http://mysite.com/index.html#a http://mysite.com/index.html#b http://mysite.com/index.html#c

Vous pouvez même utiliser des noms de fragments plus descriptifs si vous le souhaitez.

Une fois que vous avez ces fragments dans l'URL, vous pouvez utiliser javascript (ou jQuery) pour afficher/masquer les onglets.

La façon dont je construirais cela consisterait à "empiler" les différents onglets afin qu'ils soient tous visibles (l'un en dessous de l'autre). Ensuite, lors du chargement de la page, utilisez javascript pour les transformer en onglets et afficher/masquer l'onglet correspondant en fonction du fragment d'URL.

L'avantage est que si le visiteur n'utilise pas javascript, il pourra toujours naviguer sur le site et la page "passera" automatiquement à la bonne section à cause du fragment.

1
foamcow

Chaque URL doit clairement identifier un contenu. Par conséquent, en fonction de l’importance que vous portez à la convivialité, à l’accessibilité et aux pratiques associées, vous choisirez l’une ou l’autre des options.

Les pages séparées sont la meilleure option pour de nombreuses raisons, mais il va de soi que vous souhaitez en utiliser une et simplement en masquer le contenu. Si vous choisissez d’en utiliser un, vous avez le contrôle facile, comme vous l’avez mentionné, des liens, plus l’utilisation d’images en cache, le trafic ne va pas être important.

Si vous choisissez d’avoir une page, le mieux est de traiter la demande avec une langue de serveur et de supprimer le contenu que vous ne souhaitez pas afficher ou tout simplement d’ajouter ce que vous souhaitez afficher.

1
PatomaS