[CSS] attributs <hr> non valide

molgow

Membre expert
Club iGen
4 Janvier 2002
5 496
613
40
Suisse
Voilà mon code simplifié (ça se trouve imbriqués dans 2 autres &lt;div&gt; mais c'est tout sinon, la class tcenter fait juste text-align:center) :

Bloc de code:
&lt;div class="tcenter"&gt;&lt;hr size="1" noshade="noshade" /&gt;&lt;/div&gt;

Et lorsque je passe ça au validateur, il me retourne :

# Line 125, column 15: there is no attribute "size" (explain...).

&lt;hr size="1" noshade="noshade" /&gt;
^

# Line 125, column 27: there is no attribute "noshade" (explain...).

&lt;hr size="1" noshade="noshade" /&gt;

Une précision importante, je travaille en XHTML 1.1.

Une idée de pourquoi ça me retourne ces erreurs ?!
 
Pour tirer un simple trait tu ferais mieux d'utiliser la propriété border sur un élément.

On peut créer des "boîtes" avec une division, à laquelle on applique une bordure ("border: 1px solid #999").

<div style="padding: 15px ; color: #000; border: 1px solid #999">blablablabla blabla blablablabla</div>

Mais la bordure peut s'appliquer à l'un des bords uniquement, par exemple le fond. Ici une ligne continue, épaisseur 1 pixel, de couleur gris foncé ("border-bottom: 1px solid #999").

<div style="padding: 15px ; border-bottom: 1px solid #999">blablablabla blabla blablablabla</div>

"border-bottom: 1px dotted #999" = points, épaisseur 2px

<div style="padding: 15px ; border-bottom: 2px dotted #999">blablablabla blabla blablablabla</div>

"border-bottom: 1px dashed #999" = hachures, épaisseur 1px

<div style="padding: 15px ; border-bottom: 1px dashed #999">blablablabla blabla blablablabla</div>
 
Merci beaucoup!
smile.gif

Je ne comprends pas pourquoi je n'y avais pas pensé plus tôt!

Au passage, jai un autre problème de validation qui n'a rien à voir, mais je ne vais pas faire un nouveau sujet pour ça.

Je veux définir des "anchor". Je le fais de cette manière :

&lt;a name="top"&gt;&lt;/a&gt;

Mais il me dit que l'attribut "name" n'existe pas!
confused.gif
 
en fait c'est bon, j'ai mis :

&lt;a id="top"&gt;&lt;/a&gt;

Mais c'est étrange, car id c'est pour le CSS d'habitude.. :/
 
Le langage HTML mélangeait les informations concernant la structure du document, c'est à dire la hiérarchie des éléments de la page, avec leur présentation, tout ce qui concerne la mise en forme : couleur, taille, distances entre les éléments, etc.

Le langage XHTML sert à structurer, pas à présenter, toute la présentation se fait avec les CSS.

Donc tu ne peux pas écrire : &lt;hr size="1" noshade="noshade" /&gt;

Le validateur te dit qu'il n'y a plus d'attribut "size", parce que cela concerne la présentation de l'élément, et que la présentation est du domaine des CSS.

Tu pourrais écrire par exemple : &lt;hr style="border-bottom: 1px solid #999" /&gt;

L'attribut "name" a été déprécié, on devrait utiliser "id" pour nommer un élément ("class" s'utilise pour nommer plusieurs éléments, et "id" pour nommer un élément unique). Mais pour l'instant cet attribut n'est pas supporté dans tous les navigateurs.