5568 sujets

Sémantique web et HTML

Bonjour,

J'ai fait des recherches sur le forum et je n'ai pas trouvé de sujets en rapport avec mon problème. J'espère que mon sujet n'a pas déjà été abordé, et je m'excuse si c'est le cas.

Je veux tout simplement afficher une petite image qui sert de lien sur ma page web. L'image s'affiche et fonctionne sous Firefox, mais sous IE rien ne s'affiche. Or ma page doit absolument fonctionner sous IE, peu importe si elle fonctionne sous FF...

Voici le code HTML :

<div class="lisezmoi">
<a href="lisez-moi.txt"> <img src="Icon-ReadMe.gif" alt="Fichier lisez-moi" title="Lisez-moi"/> </a>
</div>


Et le code CSS associé :

.lisezmoi
{
position: absolute;
z-index: 100;
height: 48px;
width: 48px;
right: 425px;
top: 500px;
border: dotted 1px;
}


Le tout me paraît tellement simple que j'ai l'impression d'avoir fait une erreur d'étourderie qui m'est pourtant invisible.. Smiley confused
Modifié par Pitufi (02 Aug 2006 - 12:05)
Administrateur
Bonjour et bienvenue Pitufi,

quel serveur utilises-tu, Apache ou IIS ou autre et quel environnement Windows ou Linux? Il y a peut-être un souci dans les minuscules/majuscules du nom de fichier. Renomme-le en "icon.gif" et fais référence à "icon.gif" ou "Icon.gif".
Ce n'est qu'une première piste, ça vient peut-être d'autre chose. En passant 'dotted' n'est pas reconnu sur IE je crois.
Je pense qu'il n'y a pas d'histoires de serveurs car la page n'est pas encore en ligne.
J'utilise Windows XP.
J'ai essayé de renommer le fichier comme vous l'avez dit, rien ne change. J'ai également enlevé le border, ça ne change rien non plus...
Je possède un mac et ne peux donc pas aisément tester ta page avec virtual pc puisque ton exemple n'est pas en ligne.

Mais, une idée comme ça.... Pourquoi n'enlèverais-tu pas ta hauteur et largeur d'image dans ta classe lizezmoi?

Ça ne sert à rien et en testant sous safari pour voir si le comportement de l'image changeait ou pas si on l'enlevait, l'image a bougé de près d'un demi centimètre vers la gauche.
Bonjour,

Si ce code fait partie d'un page complète, tu devrais en donner la totalité.

En effet, selon le code du reste de la page, une erreur liée à CSS peut rendre l'image invisible dans IE.

Par exemple, puisque la div est positionnée de manière absolue, l'élément parent servant de cadre de positionnement peut ne pas être reconnu par IE (pb de haslayout), et le lien s'afficher alors à un autre endroit que celui-prévu (en dehors de la zone de visualisation, ou sous un autre élément).
Je débute en HTML/CSS et je n'ai pas encore corrigé ni validé mon code, alors il y a sûrement pas mal d'erreurs dans mon code, mais si cela peut vous permettre de résoudre mon problème, le voici :

HTML

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

	<head>
		<title> Jeeves Enterprise - Installation </title>
		<link rel="stylesheet" type="text/css" href="styles.css"/>
		<meta name="description" content="Jeeves Enterprise : Menu du CD"/>
		<script type="text/javascript">
			<!--
			window.onload=montre;
			function montre(id) {
			var d = document.getElementById(id);
			for (var i = 1; i<=10; i++) {
			if (document.getElementById('smenu'+i)) {document.getElementById('smenu'+i).style.display='none';}
			}
			if (d) {d.style.display='block';}
			}
			//-->
		</script>
	</head>
	
	<body>
	<div class="global">
		
		<div class="header"> </div>
		
		<div class="conteneurmenu">
			<dl id=menu>
				<dt> <a href="JvsEntInst.exe"> Installation </a> </dt>
				<dt onmouseover="javascript:montre('smenu');" onmouseout="javascript:montre();"> <a href="C:\Documents and Settings\Commercial\Bureau\Menu CD" target="_blank"> Explorer le CD </a> </dt>
					<dd id="smenu" onmouseover="javascript:montre('smenu');" onmouseout="javascript:montre();">
						<ul>
							<li> <a href="C:\Documents and Settings\Commercial\Bureau\Menu CD\Dossier 1" target="_blank"> Dossier 1 </a> </li>
							<li> <a href="C:\Documents and Settings\Commercial\Bureau\Menu CD\Dossier 2" target="_blank"> Dossier 2 </a> </li>
						</ul>
					</dd>
				<dt> <a href="http://www.fr.jeeves.se/" target="_blank"> Extranet partenaire </a> </dt>
				<dt> <a href="rienpourlinstant" target="_blank"> Supplément </a> </dt>
			</dl>
		</div>
		
		<div class="annonce">
			<!--"Texte qui apparaît dans la boîte de droite. Pour le modifier, veuillez modifier le fichier "annonce.html"-->
			<object data="annonce.html" type="text/html"/>
		</div>
		
		<div id="lisezmoi">
		<a href="lisez-moi.txt" target="_blank"> <img src="Icon.gif" alt="Fichier lisez-moi" title="Lisez-moi"/> </a>
		</div>
		
	</div>
	</body>

</html>


CSS


/*corps de la page*/
body
{
text-align: center;
font-family: arial;
font-size: 12px;
padding: 0;
margin: 0;
}

/*conteneur principal*/
.global
{
width: 960px;
height: 641px;
margin-top: 9px;
margin-left: auto;
margin-right: auto; 
text-align: left;
}

/*image du haut (Jeeves)*/
.header
{
background-image: url('img_haut.jpg');
height: 200px;
}



/*MENU*/

.conteneurmenu
{
background-image: url('bg2.jpg');
background-repeat: no-repeat;
height: 388px;
width: 660px;
float: left;
}

dl, dt, dd, ul, li
{
margin: 0;
padding: 0;
list-style-type: none;
}

#menu
{
position: relative;
top: 30px;
left: 150px;
width: 400px;
}

#menu dt /*Menu principal*/
{
cursor: pointer;
background: url('bouton2.gif') no-repeat 0 0;
width: 234px;
height: 29px;
line-height: 29px;
margin: 40px 0;
border: 0;
text-indent: 40px;
}

#menu dd /*Sous-menu*/
{
display: none;
position: absolute;
z-index: 100;
top: 109px;
left: 236px;
height: 58px;
width: 175px;
background: url('smenu.gif') no-repeat;
border: O;
}

#menu li
{
text-align: center;
font-size: 80%;
height: 27px;
line-height: 27px;
}

#menu li a, #menu dt a
{
color: white;
font-size: 1.2em;
text-decoration: none;
display: block;
}

#menu dt a:hover /*rollover du menu principal*/
{
width: 234px;
height: 29px;
background: url('bouton2.gif') no-repeat 0 -29px;
border: 0;
}



/*conteneur du texte de droite*/
.annonce
{
float: right;
height: 388px;
width: 250px;
margin-top: 5px;
}

/*texte*/
object
{
float: right;
height: 175px;
width: 212px;
overflow: auto;
text-align: justify;
margin-left: auto;
margin-right: auto;
padding: 3px;
}

img
{
border: 0;
width: 48px;
height: 48px;
}

#lisezmoi a
{
position: absolute;
z-index: 100;
right: 425px;
top: 500px;
border: 0;
margin: 0;
}


Je sais que le menu qui combine rollover et sous-menus en javascript est très expérimental, et j'ai beaucoup de mal avec les positionnements, je crois que c'est cela qui m'a obligé à utiliser un positionnement absolu pour cette fameuse image-lien...
Modifié par Pitufi (04 Aug 2006 - 12:25)
Bonjour,

Le code me semble assez curieux, en effet.

Quoi qu'il en soit, ton problème d'image qui disparaît dans IE est très probablement dû à la présence de l'élément <object> (les éléments fenêtrés sont obligatoirement affichés au-dessus des éléments non-fenêtrés, quelque-soit les valeurs de z-index.) .

Utilise plutôt un iframe (élément non fenêtré à partir d'IE5.5).
Bonjour,

Bah non, pas "tant pis" Smiley cligne

as-tu remplacé l'object par un iframe ?

ce qui permettrait de t'aider le plus efficacement, ce serait que tu mettes ta page en ligne et que tu nous donnes l'url.
Oui, j'ai remplacé l'object par un iframe, ça ne change rien.
En fait, quand je retire totalement l'iframe ou l'object (en l'enlevant du code HTML), l'image-lien apparaît : apparemment je n'ai le droit d'afficher que l'un ou l'autre, pas les deux... Smiley haha
J'ai même essayé d'afficher une autre image sur la page (à partir du code HTML ou du code CSS), elle ne s'affiche pas si l'iframe est là...

Désolé mais je ne peux pas mettre ma page en ligne, je n'ai pas d'hébergeur perso, et en fait ce que je suis en train de faire, c'est pour une entreprise et ce n'est pas destiné à être mis sur le web.
Modifié par Pitufi (07 Aug 2006 - 15:47)
J'ai résolu mon problème en "trichant".
Avant, le div qui contient l'image-lien et le div qui contient l'iframe étaient dans un même div (lui-même contenu dans le div global de la page). L'image-lien ne s'affichait jamais.
J'ai donc mis le div de l'image-lien dans un autre div (directement affilié du div global).
En fait, le div de l'image-lien ne peut pas être inclus dans le même div que le div de l'iframe.

J'espère que c'est assez clair comme explication... Smiley confus