5568 sujets

Sémantique web et HTML

Bonjour à tous,

Dans le header de mon projet, j'ai un espace qui vient se greffer sous un lien qui contient une image. Le problème n'apparait que sous IE (qui a dit "je m'en doutais" ? Smiley smile ), et je sais le corriger en mettant après la fermeture du lien, une balise <br />.

Cependant je trouve que cette correction n'est pas très propre.

Voici mes questions :

1°) Pouvez-vous m'expliquer pourquoi cet espace apparait sous IE ?

2°) Est-il possible de le corriger grâce à une propriété css ?


Voici les images :

- Sous firefox, ca passe niquel :
upload/7625-headerok.jpg

- Sous IE, il y a un espace sous l'image :
upload/7625-headerespac.jpg

Voici mon code HTML :

<div id="header">
	<a href="#"><img src="img/logo.gif" /></a>
</div>
<p id="heure_serveur">L'heure du serveur est 19h27</p>


Voici mon code css :

#header {
background-color:#990000;
padding: 0 0 0 0;
color: #FFFFFF;
height:80px;
}

#heure_serveur {
padding: 0;
margin: 0;
width: 100%;
text-align: right;
border-top:1px solid #000000;
border-bottom:1px solid #000000;
background-color:#CC0000;
color: #FFFFFF;
}

#header a {
padding: 0;
margin: 0;
}

#header img {
border: 0;
padding: 0;
margin: 0;
}


Comme vous pouvez le voir, j'ai essayé de mettre des padding 0 et des margin 0 sur le lien ou sur l'image, sans succès...

Si vous avez des remarques sur le code, n'hésitez pas, même si c'est hors sujet, c'est toujours bon à prendre !

Merci !

edit :
Je voudrais signaler qu'il y a un bug au niveau des images que l'on upload en cliquant sur le lien "joindre une image". Mes images s'appelaient respectivement "header_espace_ok.jpg" et "header_espace_bug.jpg", et quelle que soit celle que j'uploadais, le programme du forum me la nommait "7625-headerespac.jpg". Du coup mes 2 images étaient identiques, jusqu'à ce que je décide de changer le nom d'une de mes images en local, pour contourner le problème. Hope this helps.
Modifié par donnie (30 Jul 2006 - 22:27)
Bonjour,

Merci beaucoup, ça fonctionne.

Cependant, pourquoi est-on obligé de centrer l'image verticalement, alors qu'il n'y a aucun texte ?

Je ne comprends pas le fonctionnement d'IE sur ce point.
IE attribue aux éléments en bloc vides ou dénués de contenu textuel la hauteur de ligne qu'ils auraient s'ils avaient du texte.
Bonsoir,

S'il n'y a pas d'espace dans le code, du moins avant la balise fermante, IE n'ajoute pas cet espace sous la ligne de base.
<div id="header"><a href="#"><img src="img/logo.gif" /></a></div>


Ce qui ne serait pas une solution, puisque avec un doctype strict il y aurait également ce espace avec les autres navigateurs (et là l'espace de le code ne change rien : il faut en effet soit utiliser vertical-align soit display:block sur IMG)
Je suppose donc que le doctype du document est transitional (ou qu'il n'y a pas de doctype)
Modifié par Alan (30 Jul 2006 - 21:21)
Bonsoir Alan,

J'ai bien un doctype strict :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

Je n'avais aucun problème sous firefox, même sans le vertical-align.


J'ai essayé de remettre mon code d'origine, et effectivement si j'enlève l'espace au moment de fermer la balise </div>, ça corrige le problème.
Ca fonctionne sous firefox et IE.
Je me demande si ce n'est pas plus propre que de mettre une des 2 propriétés css, vertical-align ou display...


Sinon j'ai aussi cette ligne avant le doctype, et à ma grande honte je ne connais pas exactement son rôle :
<?xml version="1.0" encoding="ISO-8859-1"?>

Modifié par donnie (30 Jul 2006 - 22:33)
donnie a écrit :
Je n'avais aucun problème sous firefox, même sans le vertical-align.


parce que tu as spécifié une hauteur de 80px à #header, et comme l'image doit faire 80px, l'espace qui est en dessous n'apparaît pas (sauf avec IE qui interprète mal height.)

POur l'autre question, voir la FAQ : Faut-il utiliser le prologue XML dans ma page web ?
Modifié par Alan (30 Jul 2006 - 22:41)
donnie a écrit :
Je me demande si ce n'est pas plus propre que de mettre une des 2 propriétés css, vertical-align ou display...

Ce n'était que pour souligner une particularité d'IE

edit : je crois que j'avais mal compris la phrase en zappant le "que". Il faut mieux utiliser une de ces propriétés.
Modifié par Alan (31 Jul 2006 - 00:47)
Effectivement, le height: 80px; évite le problème d'espace, qui apparait bien sur firefox si j'enlève ce height, avec le doctype strict !

C'est bon à savoir !

Merci pour le lien sur le prologue XML, je sais enfin à quoi ça correspond, et je l'enlève de ce pas de ma page Smiley smile
Modifié par donnie (31 Jul 2006 - 00:11)