28173 sujets

CSS et mise en forme, CSS3

Bonjour à tous,

j'ai un problème de hauteur de bloc dans mon menu à gauche dans ce site : scoutorama

Sous IE6 les blocs textes font 2 pixels de plus que sous Firefox, voir beaucoup plus sous IE7, ce qui provoque un décalage énorme.

Je ne comprend pas d'où ça vient. J'ai tenté de simplifier mon code, de supprimer mes listes, pour cerner le problème, mais rien n'y fait !


  <html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>debug_css</title>

<style type="text/css">
#menu_left{
float: left;
display:inline;/*bug IE*/
background:url(images/bg_menu_left_bottom.png) bottom no-repeat;
background-color:#FFF5DF;
padding-top:0px;
border-color:#F0D8A4;
border-style:solid;
border-width:1px;
margin-top:20px;
margin-left:30px;
width:148px;
height:auto;
}
#menu_left_dominantes{
/*titre h2*/
background:url(images/bg_menu_left_titre.png) no-repeat left top;
height:35px;
padding-left:10px;
padding-top:0px;
margin-top:0px;
margin-bottom:5px;
}
h2{
background:url(images/fleche_carree.gif) no-repeat left center;
margin-left:0px;
padding-left:20px;
margin-top:0px;
padding-top:5px;
margin-bottom:0px;
padding-bottom:5px;
margin-top: 0px;
font-family:Arial, Helvetica, sans-serif;
font-size:15px;
font-weight:bold;
color:#76805E;
}
.menu_left_liste1{
/*background:url(images/puce_1.gif) no-repeat left 4px;*/

margin-top:10px;
padding-top:5px;/*5px*/
margin-left:5px;/*10px*/
padding-left:10px;/*11px*/
margin-right:0px;
padding-right:0px;
margin-bottom:0px;
padding-bottom:5px;/*5px*/
height:auto;

font-family:Arial, Helvetica, sans-serif;
font-weight:bold;
font-size:11px;
letter-spacing:1px;
vertical-align:bottom;

}
.menu_left_line{
display:block;
position:relative;
left:0px;
/*background-color:#3399FF;*/
margin-top:0px;
padding-top:0px;
margin-left:0px;
padding-left:0px;
padding-bottom:0px;
margin-bottom:0px;
padding-right:0px;
margin-right:0px;
margin:0px;
padding:0px;
border-bottom-color:#FDE9BD;
border-style:solid;
border-bottom-width:1px;
border-left-width:0px;
border-right-width:0px;
border-top-width:0px;
font-size:0px;
font-weight:100;
width:100%;
height:0px;
}
.liste_2{
margin-top:0px;
padding-top:0px;
padding-left:0px;
margin-left:36px;
list-style-image:url(images/puce_2.gif);
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size:10px;
font-weight:100;
color:#76805E;
}
</style>

</head>

<body>



	<div id="menu_left">
		<div id="menu_left_dominantes"> 
			<h2>DOMINANTES</h2>
		</div>
		<span class="menu_left_liste1">
			Civisme
		</span>
		<span class="menu_left_line"></span>
		<span class="menu_left_liste1">	
			Expression
		</span>
		<span class="menu_left_line"></span>
		<span class="menu_left_liste1">			
			Conaissance de Dieu
		</span>
		<span class="menu_left_line"></span>
		<span class="menu_left_liste1">			
			Nature
		</span>
		<span class="menu_left_line"></span>
		<span class="menu_left_liste1">			
			Campisme
		</span>

		<span class="menu_left_line"></span>
		<span class="menu_left_liste1">			
			Communication
		</span>
		<span class="menu_left_line"></span>
		<span class="menu_left_liste1">			
			Sport
		</span>
		<!--<ul id="menu_left_liste1">	 -->	
<!--			<ul class="liste_2">

				<li>Echauffements</li>
				<li>Olympiades</li>
				<li>Jeux</li>
			</ul> -->
		<!--</ul> -->
		<span class="menu_left_line"></span>
		<span class="menu_left_liste1">	
			Artisanat
		</span>
		
		<span class="menu_left_line"></span>	
		<div id="menu_left_dominantes">
			<h2>PRATIQUES</h2>
		</div>
		<span class="menu_left_liste1">
			Articles

		</span>
		<span class="menu_left_line"></span>
		<span class="menu_left_liste1">		
			Jeux
		</span>
			<span class="menu_left_line"></span>
		<span class="menu_left_liste1">	
			Quizz
		</span>

		<h5></h5>	
	</div>
</body>
</html>
 

Modifié par windvins (19 Jun 2007 - 20:55)
Salut,

Tu as 46 erreurs de validation sur ta page et, même si l'on met ces erreurs à part, le code tire quand même beaucoup vers la bonne sou-soupe de balises Smiley murf . Commence donc d'abord par nettoyer les erreurs de ton code et faire en sorte que ta page passe la validation. Ensuite, tu pourras chercher pourquoi les navigateurs interprètent différemmment le même code (valide). (J'ai quand même ma petite idée sur tes <h4> vides, mais... attendons que tu nettoies)

En ce qui concerne le code que tu as donné directement dans ton post, il est interprété différemment pour la bonne est simple raison qu'il déclenche le mode quirks des navigateurs. Met un Doctype propre et il passe bien.
marcv a écrit :
Salut,

Tu as 46 erreurs de validation sur ta page et, même si l'on met ces erreurs à part, le code tire quand même beaucoup vers la bonne sou-soupe de balises Smiley murf . Commence donc d'abord par nettoyer les erreurs de ton code et faire en sorte que ta page passe la validation. Ensuite, tu pourras chercher pourquoi les navigateurs interprètent différemmment le même code (valide). (J'ai quand même ma petite idée sur tes <h4> vides, mais... attendons que tu nettoies)

En ce qui concerne le code que tu as donné directement dans ton post, il est interprété différemment pour la bonne est simple raison qu'il déclenche le mode quirks des navigateurs. Met un Doctype propre et il passe bien.


Il a déjà un doctype propre, qui lui permet déjà de passer en mode strict.
Sont gros problème, c'est qu'il a figé les hauteurs partout sur son site. Ce qui n'est vraiment pas bon quand on fait un site. Surtout que Firefox, fige vraiment les hauteurs et donc tes blocs sont forcés de faire XX pixels de hauteurs meme si leurs contenu en fait plus.
IE interprète différement le height et donc les blocs sont plus grands sous IE
Gatsu35 a écrit :
Surtout que Firefox, fige vraiment les hauteurs et donc tes blocs sont forcés de faire XX pixels de hauteurs meme si leurs contenu en fait plus.
IE interprète différement le height

Les navigateurs qui interprètent correctement height (c'est à dire comme une hauteur figée et pas comme une hauteur minimales) : Firefox, Opera, Konqueror, Safari, Internet Explorer 7, etc. Smiley cligne
Florent V. a écrit :

Les navigateurs qui interprètent correctement height (c'est à dire comme une hauteur figée et pas comme une hauteur minimales) : Firefox, Opera, Konqueror, Safari, Internet Explorer 7, etc. Smiley cligne

Heu en parlant de IE nous sommes bien d'accord que je faisait référence aux versions 5 et 6

Et accesoirement, j'ai justement vu des grosses blagues sur des sites montés par ma boite. Les mecs avait mis des height fixés (genre height:0) sur certains éléments (des divs pour pas changer) et sous IE7 c'est juste assez marrant
Modifié par Gatsu35 (17 Jun 2007 - 13:41)
marcv a écrit :
Salut,
En ce qui concerne le code que tu as donné directement dans ton post, il est interprété différemment pour la bonne est simple raison qu'il déclenche le mode quirks des navigateurs. Met un Doctype propre et il passe bien.


Même avec ce doctype ça passe pas bien :


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">


il y a toujours une hauteur plus grande sous IE6...
Modifié par windvins (17 Jun 2007 - 13:57)
windvins a écrit :
il y a toujours une hauteur plus grande sous IE6...

Tu as supprimé les hauteurs fixes ?

(Et puis bon, si quelques pixels de plus en hauteur font exploser un design, il y a un problème de conception quelque part, hein. Smiley cligne )
J'ai testé sous une page simplifiée (ici) qui est valide, et le problème est toujours présent.
Sur cette image on voit bien la différence de rendu entre les 2 browser. Pourtant je n'ai pas de hauteurs fixes, mon doctype est à priori le bon, donc je ne comprend pas pourquoi IE me met une hauteur plus importante...
Bonsoir,

Tes espaces excédentaires sous IE viennent de tes span vides, qui semblent ignorés (ou considérés comme ayant une hauteur nulle) par Firefox.

Tu devrais utiliser une structure de liste (liste non ordonnée ul, avec items de liste li) pour ton menu.

En l'occurrence, tu aurais un bloc conteneur (div), contenant deux titres hN suivi chacun d'une liste ul.
j'ai enlevé les span vides, et cela ne résout pas le problème...
Modifié par windvins (18 Jun 2007 - 21:44)
Hello,

windvins a écrit :
j'ai enlevé les span vides, et cela ne résout pas le problème...

Rajoutes juste la ligne suivante dans les styles de #menu_left :
line-height: 1em;

Et voilà.

J'avais déjà testé cette solution (line-height), mais sans effet notable sur IE, et j'avais attribué ça aux span vides qui se mettaient dans le chemin. Sans les span, ça marche. Mais peut-être était-ce une erreur de ma part. Smiley hmm
Je croyais avoir résolu le problème, mais j'ai inclus un menu déroulant qui en plus de ne pas fonctionner sous IE me refait des problèmes de hauteur de blocs. Le
line-height:1em;
agrave tout. En plus la liste ne se déroule pas sous IE allez savoir pourquoi...
En passant sur ton dernier exemple, il n'y a pas de liens dans ce menu Smiley biggol

Sinon à quoi servent ces span et ces div qui les entourent? Ne sont-ce pas des titres hn?
J'ai fait le système de déroulement à partir de cet article

Les span servent à rendre déroulant le menu.

J'ai été obligé de rajouter un div pour contrer le problème de marges sous IE.

Les liens je les rajouterai après, ça sert à rien de compliquer les choses, c'est déjà assez prise de tête comme ça !
Ah la la... on était arrivé à une correction du problème, et paf il faut que tu en rajoutes avec un menu déroulant (par ailleurs peu fonctionnel... faire plutôt ça en Javascript, et n'afficher chaque sous-menu qu'au clic et non pas au survol).

Bon, menu déroulant + balisage incertain = trop de prise de tête pour moi. Je passe la main.

Bonne continuation. Smiley smile