5568 sujets

Sémantique web et HTML

Encore moi,

Est-il necessaire de répéter le doctype dans toutes les pages "html" de mon site ?

Ou bien uniquement dans la page "index.html" ?

Ou bien encore le doctype des autres pages que "index.html" peuvent-elles ou doivent-elles avoir un doctype différent ?

Il m'avait semblé lire quelque chose la dessus quelque part, mais je ne remet pas la main dessus !

Peut-être avez-vous un lien ?

merci Smiley smile
Modifié le 11 Dec 2004 - 00:30
Tu dois déclarer un DOCTYPE sur chacune des pages. Ce DOCTYPE peut être différent d'une page à l'autre, mais généralement on choisi un DOCTYPE qui couvre l'ensemble du site.
Administrateur
On peut arriver sur n'importe quelle page d'un site par un lien extérieur au site sans avoir visité index.html (et cette page n'existe pas toujours! Y a aucune norme sur index.html je suppose, mis à part un comportement d'Apache - qui n'est pas le seul serveur Web existant de plus) donc sans un Doctype par page, impossible de s'y retrouver, nan?
Stephan a écrit :
Tu dois déclarer un DOCTYPE sur chacune des pages. Ce DOCTYPE peut être différent d'une page à l'autre, mais généralement on choisi un DOCTYPE qui couvre l'ensemble du site.

Bonjour,
dans le cas d'un squelette avec plusieurs pages du style :
hearder.htm
sommaire.htm
menu.htm
article.htm
footer.htm etc...
Le conseil de n'avoir qu'une seule fois le doctype placée dans une page html (par exemple l'entête) m'a été donné ; ce qui semble contredire le fait de le mettre dans toutes les pages. Le problème n'est sûrement pas le même. Surtout lorsque l'on se retrouve avec une version du site en texte uniquement.
Je suis conffronté à une vraie difficulté :
"est-il possible de déclarer le doctype dans un fichier unique en php, lequel et comment?
Est-il plus rigoureux de mettre ce doctype dans chaque page html?

Cela semble laborieux. Cependant je ne vois pas pas pourquoi cela ne serait pas plus judicieux de le faire un peu à la manière du template.php de Dotclear.
Pouvez-vous m'aider s'il vous plaît?
Bonjour ivision18000,

ivision18000 a écrit :
dans le cas d'un squelette avec plusieurs pages du style :
hearder.htm
sommaire.htm
menu.htm
article.htm
footer.htm etc...


Tout dépend de ce que tu appelles un "squelette avec plusieurs pages" :
- s'il s'agit d'un jeu de frames dans un frameset, chaque page ci-dessus doit avoir son DocType adapté (Frameset pour la page framset, généralement transitional pour les pages de frames).
- s'il s'agit de "morceaux" assemblés côté serveur via des includes PHP, par exemple, seul celui qui correspond au début de la page finale devra comporter un Doctype.

Tu me sembles plutôt être dans le second cas. Donc, un seul doctype, au début de ton "header.htm" si c'est bien celui-ci qui contient le code du type :

<html...>
<head>

Modifié par Laurent Denis (16 Aug 2005 - 12:25)
Bonjour,
je te remercie pour la promptitude de ta réponse.
En effet, je suis dans le 2nd. cas : il est possible d'arriver sur le site d'au moins 3 façons ;
1-par l'index.php à la racine,
2-par la page de sommaire (sommaire.php qui inclut le menu et les autres pages)
3-par le(s) n° d'aricle(s) ou de bréve(s) référencés ou non...

Lorsque je met le doctype seulement dans le header, pas de doute, si en arrivant à la source c'est une page html née de l'index.php ; idem par le sommaire qui inclut le header.

Cependant lorsque le serveur est sollicité par le n° de l'article ou de la brève, là c'est tout nu : il n'y a pas le doctype. Smiley confused
Cela voudrait-il dire qu'il faut aller plus loin en en mettant un dans article.html et/ou breve.html?
Si c'est le cas, cela donnerait raison en partie au fait que presque toutes les pages de contenu (hormis le menu et le pied de page) en nécessitent un.
Mais Lequel? Le même?

Le bon choix serait que pour la solution graphique il faut d'tiliser : xhtml1-strict.dtd ; par contre pour la version texte, se tenir à DTD HTML 4.01 Transitional (je sens que je suis sur la bonne voie)
Pourrais-tu s'il te plaît juste me le confirmer.
Je te remercie par avance.
Amicalement,
aïe Smiley cligne

chacune des pages de ton site doit comporter un doctype et être une page HTML complète lorsqu'elle est vue dans un navigateur :


<!DOCTYPE html PUBLIC ... >

<html>
   <head>
   <meta http-equiv="Content-Type" content="text/html; charset=..." />
   <title>...</title>
...
   </head>

   <body>

   </body>
</html>


Autrement dit, les urls menant à tes articles et brèves ne doivent pas mener au fichier article_numero_x.html, si celui-ci est un simple "bout de page" incomplet.

Ces urls doivent mener par exemple à une page article.php qui peut utiliser des includes pour assembler :
- un doctype
- une section <head>
- une section <body>
- dans laquelle il y a sans doute l'include de article_numero_x.html
- etc.

Je te suggère la lecture de ce tutoriel sur l'inclusion de fichier avant tout autre chose Smiley cligne .
Bonjour ivision18000 Smiley smile

Si tu parles du site qui est dans ton profil, il s'agit d'un site sous spip, donc ça réduit tes possibilités de doctype.
Avec la version 1.8, le doctype sera :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


Ensuite, tu peux diviser tes squelettes en plusieurs morceaux et ainsi récupérer pour chacun d'eux : sommaire.html pour la page d'accueil, article.html, rubrique.html, etc..., les éléments identiques qui ne seront donc codés qu'en un seul exemplaire comme : le doctype, l'entête, les balises méta, les menus, le pied de page, etc.

Si une page est appelé par son identifiant d'acticle, de rubrique ou de brève, c'est le squelette en entier qui est lancé, donc il contient d'office tous les éléments inclus. Smiley cligne
il s'agit d'un site sous spip, donc ça réduit tes possibilités de doctype.
Avec la version 1.8, le doctype sera :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


Merci Dominique il ne me reste plus qu'à aller les changer.
Tchao! Smiley decu
Bonjour à toutes et tous Smiley smile

Allez ! tiens, je profite de cet échange pour faire passer un message à tous.

La réponse aurait été plus rapide et plus simple si toutes les infos avaient été données dès le premier post.

Si vous utilisez un cms, il peut être important de l'indiquer ainsi que la version du cms. Smiley cligne

Autre point, plutôt que poser une question dans un échange déjà résolu, il est préfèrable, même demandé, d'ouvrir un nouveau sujet, et rien ne vous empêche d'indiquer un lien vers un autre échange en référence.

Merci d'avance Smiley smile
Mea culpa!
En fait, lorsque j'ai posé cette question, il est vrai que je ne savais pas où la mettre et je trouvais que créer un nouveau sujet me parraissait un peu prétentieux et périlleux pour la bonne et simple raison que dans l'urgence je ne voulais pas commettre l'erreur d'aborder un sujet peut-être déjà épuisé.
Lorsqu'on démarre, on fait des bourdes forcément! Smiley confus
Je dois également reconnaître que je ne savais pas très bien ce que je voulais. De l'aide, c'est sûr et certain : mais je ne savais pas très bien ce que je voulais ni comment le formuler.
Au fond du labyrinthe, j'ai tenté ma chance...
(lorsque l'on ne sait pas, on craint toujours un peu les "gendarmes").
...Et l'on m'a très bien aidé et comment!!! Smiley ravi
Sorti du trou noir de l'ignorance, je retiens la leçon. Merci.
A bientôt.

Ps: le contexte du concours aidant, le manque de sommeil et le flou artistique m'ont fait vivre une belle aventure qui j'en suis sûr, va se poursuivre longtemps.