Problème de validation XHTML 1.0

WRInaute discret
Bonjour,


Voici quelques problèmes répertoriés par le W3C sur certaines de mes pages, avec en rouge l'erreur du W3C :

Line 27, column 129: there is no attribute "border" (explain...).

<div class="entete"><a href="index.html"><img src="logo.jpg" alt="logo" title="Accueil" width="778" height="74" border="0" /></a></div>


L'attribut "border" serait-il interdit en XHTML 1.0 ? Dans ce cas, si l'on veut une bordure autour d'une image, comment faire, peut-être faut-il dire cette info à l'agent-utilisateur en mettant un sélecteur .img dans une CSS avec la propriété border ?


De plus, y-a-t'il des exceptions du W3C ? Je veux dire par là, peut-être qu'une page n'est pas valide parce qu'elle contient parfois des syntaxes redondantes afin que la page soit compatible avec des agents-utilisateurs plus anciens, non ?

C'est le cas je crois avec <br> par exemple :

Valide pour le W3C mais incompatible avec les vieux butineurs :

<br></br>

Invalide pour le W3C mais compatible avec les nouveaux et anciens butineurs :

<br />


J'espère que je n'ai pas pris un mauvais exemple avec le BR.
 
WRInaute passionné
Bonjour,

Déja en HTML strict, la propriété border d'une image est interdite.
Il faut donc passer par la feuille de style :
Code:
 img {
border: 0;
}
tu donnes la valeur qui te convient, tu peux aussi définir la couleur de la bordure éventuelle.

En HTML, que ce soit </br> ou < br />, les deux sont refusés (cela n'existait pas encore quand les spécifications ont été établies).
En XHTML, toutes les balises doivent être fermées, d'où le </br>.
C'est pour éviter des problèmes d'affichage avec les anciens navigateurs que l'écriture <br /> de même que <img />) est utilisée et elle est acceptée par le validateur en mode XHTML.

Amicalement,
Monique
 
WRInaute occasionnel
L'attribut border n'est pas interdit, c'est juste qu'il n'existe pas en XHTML 1.0 et qu'utiliser un attribut non déclaré est invalide. D'accord, ca revient au même.

La solution est effectivement de contrôler les bordures en CSS, avec par exemple

Code:
IMG { border :0}
IMG.bordered { border:1px solid red}
et le code correspondant pour une image avec bordure
Code:
<img class='bordered' ... />
Tous les tags doivent être fermés pour être valides, la syntaxe <br /> étant tout à fait correcte.

[edit]Tiens, trop tard[/edit]
 
WRInaute impliqué
Le seul problème du border:0 en css, est que Netscape 4 n'en tient pas compte.

Donc personnellement, bien qu'écrivant en xhtml strict, je conserve le border 0 dans certaines balises IMG. Cela me fait invariablement une erreur quand je valide. :wink:
 
WRInaute discret
A propos des CSS et de l'attribut IMG :

Voulant centrer une image contenue dans un bloc et y supprimer les bordures, je me suis dit que je pouvais faire comme ça :

CSS :

Code:
img {
	border: 0;
}
img.center {
	text-align : center;
}

Et dans la page HTML :

Code:
<img class="center" src="banniere.jpg" alt="Accueil" title="Accueil" width="460" height="68" border="0" />


Bet ben le problème, c'est que cette image ne se centre pas !!!

Pouvez-vous m'expliquer pourquoi ?[/code]
 
WRInaute impliqué
Mais pour répondre plus précisement à ta question, c'est le contenant qui devrait avoir text-align:center.
Là tu as dit que si tu mets qqchose dans ton image, tu voudrais qu'il soit centré... :?
 
WRInaute discret
<a href="..." target="_blank"> : N

Mais malheuresement le W3C ne valide apparemment pas la valeur _blank.
Dans ce cas, quelle valeur ou attribut faudrait-il utiliser ?

Bonjour,

Si tu veux absolument utiliser target_blank, tu ne peux valider qu'en transitional.
Si non, tu peux toujours utiliser la popup intelligente de url=http://openweb.eu.org/articles/popup/]openweb[/url]
Code:
<a href="page.htm" onclick="window.open(this.href);">

Amicalement,
Monique

Oups... désolée, j'ai cliqué sur Editer au lieu de citer et j'ai effacé une partie de ton message... :oops:
 
WRInaute impliqué
Aucune...

En mode strict, on est censé laisser l'utilisateur décider si oui ou non une page doit s'ouvrir dans une nouvelle fenêtre ou non.

Ceci dit, je mets quelques _blank tout de même... :wink:
Je trouve le _blank plus intéressant quand on sort du domaine.
 
Discussions similaires
Haut