[CSS] attributs <hr> non valide

molgow

Vétéran
Club MacG
4 Janvier 2002
5 493
612
37
Suisse
www.monts-chevreuils.ch
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 ?!
 

minime

Vétéran
Club MacG
12 Novembre 2001
6 148
287
www.austinpowers.com
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>
 

molgow

Vétéran
Club MacG
4 Janvier 2002
5 493
612
37
Suisse
www.monts-chevreuils.ch
Merci beaucoup!

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!
 

molgow

Vétéran
Club MacG
4 Janvier 2002
5 493
612
37
Suisse
www.monts-chevreuils.ch
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.. :/
 

minime

Vétéran
Club MacG
12 Novembre 2001
6 148
287
www.austinpowers.com
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.