Aller au contenu

Centrage en XHTML


theprogrammeur

Sujets conseillés

Bonjour,

J'ai décidé de passer du bon vieux HTML au XHTML! J'ai donc fait une page basique pour m'entrainer et la valider pour voir s'il n'y avait pas d'erreur! Mais bug, il y a une erreur, et je ne vois pas comment la régler. Vlici mon code:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>Ma page</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" type="text/css" href="fond.css" />
</head>
<body>
<div align="center">
<img src="mon image.png" alt="erreur sur la page" /></div>
</body>
</html>

Le problème est qu'il me dit que <div align="center"> n'est pas juste.

Voici ce que le validateur dit:

Error Line 9 column 11: there is no attribute "align".
<div align="center">You have used the attribute named above in your document, but the document type you are using does not support that attribute for this element. This error is often caused by incorrect use of the "Strict" document type with a document that uses frames (e.g. you must use the "Transitional" document type to get the "target" attribute), or by using vendor proprietary extensions such as "marginheight" (this is usually fixed by using CSS to achieve the desired effect instead).

This error may also result if the element itself is not supported in the document type you are using, as an undefined element will have no supported attributes; in this case, see the element-undefined error message for further information.

How to fix: check the spelling and case of the element and attribute, (Remember XHTML is all lower-case) and/or check that they are both allowed in the chosen document type, and/or use CSS instead of this attribute. If you received this error when using the <embed> element to incorporate flash media in a Web page, see the FAQ item on valid flash.

Quelqu'un à une idée de de qu'il vaut taper?

Lien vers le commentaire
Partager sur d’autres sites

Tout simplement parce que tu utilises un doctype XHTML Strict, qui est trop restrictif par rapport à ce que tu veux faire (le align="center" n'est valide qu'en HTML).

Pour y remédier, il faudrait gérer l'alignement de tes éléments (et de manière générale, tout ce qui se réfère à la présentation), via des feuilles de style (CSS).

Pour une meilleure maintenabilité, il faudrait d'ailleurs que ces styles se trouvent sur un document à part, et non "en dur" dans la page.

Pour finir, je te déconseille toutefois de passer en XHTML. Tu pourras lire sur cet article que cela peut être néfaste.

Tu peux très bien conserver une certaine rigueur de balisage, et garder un doctype HTML transitional, qui te garantira que tous les navigateurs interprèteront convenablement ton code.

Lien vers le commentaire
Partager sur d’autres sites

Pour faire la même chose, tu dois utiliser un style : <div style="width:400px;margin-right:auto;margin-left:auto">blabla</div> Le div est alors centré au milieu de la page : il est indispensable de préciser une largeur.

Lien vers le commentaire
Partager sur d’autres sites

Salut,

Pour faire la même chose, tu dois utiliser un style : <div style="width:400px;margin-right:auto;margin-left:auto">blabla</div> Le div est alors centré au milieu de la page : il est indispensable de préciser une largeur.

Si c'est juste pour centrer l'image, il y a 2 autres possibilités, qui ne nécessitent pas de connaitre la largeur à l'avance : utiliser la propriété text-align: center sur l'élément parent de l'image, comme indiqué plus haut, ou passer l'image en display: block et utiliser les marges automatiques sur l'image :

HTML :
<div>
<p>Bla bla bla</p>
<img class="centrer" src="..." alt="..." />
</p>Bla bla bla</p>
</div>

CSS :
img.centrer {
display: block;
margin: 0 auto;
}

Re,

Pour finir, je te déconseille toutefois de passer en XHTML. Tu pourras lire sur cet article que cela peut être néfaste.

Tu peux très bien conserver une certaine rigueur de balisage, et garder un doctype HTML transitional, qui te garantira que tous les navigateurs interprèteront convenablement ton code.

Argh, si j'ai bien lu (en diagonale, j'avoue) l'article mentionné, les aspects "néfastes" du XHTML ne sont rencontrés que par les auteurs qui ne valident pas leur code. Mais si tu écris du HTML non valide, tu auras exactement les mêmes problèmes ! Un code valide, avec un doctype approprié est le garant d'un rendu correct et durable, car il respecte les normes que les navigateurs utilisent pour élaborer le rendu.

Utiliser XHTML 1.0, servi comme "text/html", ou du HTML 4.01, c'est exactement la même chose, il n'y a qu'un simple changement de syntaxe.

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...