28173 sujets

CSS et mise en forme, CSS3

Bonjour ou plutôt bonsoir à tous,

Voilà, je suis actuellement entrain de transformer un stie codé à l'ancienne pour le passer en html / css dont voici l'adresse actuelle : siontourism.

Donc j'avance sur la première page je fais ma structure qui se présente comme suit:

- site centré avec un header
- ensuite un float left qui contient ma navigation (sidebar)
- à droite du bloc flotté le contenu du site
- au fond un footer mis en clear (pas fini de développer)

Le problème est que IE m'affiche un espace d'environ 3 pixel entre mon menu en float et mon bloc contenu et impossible de m'en débarasser. Sous firefox par contre c ok.

Avec IE:
upload/859-Sans-titre-3.jpg

Avec Firefox:
upload/859-Sans-titre-4.jpg

Je joins aussi mon code source pour plus de clarté

HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">
.
.
.

<body>
<div id="wrapper">
	<div id="header">
		<?=$bannerBody?>
	</div>
	<div id="content">
		<div id="sidebar">
			<div id="sidebar_content">
				<?=$menuBody?>
			</div>
		</div>
		<div id="main">
			<h1><?=$pagetit?></h1>
			<p>test</p>
		</div>
	</div>
</div>
</body>

.
.
.


CSS (échantillon)

html, body {
	font-family: Arial, Helvetica, sans-serif;
  font-size: 100%;
	text-align: center;
	background-color: #FFF;
	color: #000;
	margin: 0;
	}

#wrapper {
	width: 774px;
	text-align: left;
	margin: 0 auto;
	}
	
	#header {
		background-image: url(img/banner.png);
		height: 95px;
		}
		
	#content {
		width: 774px;
		}
		
	#sidebar {
		float: left;
		width: 223px;
		background: url(img/bg_menu.gif) red 22px 0 no-repeat;
		}
			
		#sidebar_content {
			padding: 55px 0 0 20px;
			}
			
		#main {
			margin: 0 0 0 220px;
			}
	
/* menu au sommet de la page dans le header */
	
	ul#navmenu {
		float: right;
		list-style-type: none;
		margin: 5px 0 0 0;
		padding: 0;
		}
		
		ul#navmenu li {
			font-size: .7em;
			float: left;
			margin: 0 20px 0 20px;
			}
			
			ul#navmenu li a {
				color: #fff;
				font-weight: bold;
				text-decoration: none;
				}
				
			ul#navmenu li a:hover {
				text-decoration: underline;
				}
				
/* menus de la sidebar */

	#sidebar ul {
		background-color: #ECECEC;
		list-style-type: none;
		margin: 0;
		padding: 0;
		}
	
	#sidebar ul li {
		font-size: .8em;
		background: url(img/puce_sidebar.png) no-repeat 5px 6px;
		padding: 0 0 0 20px;
		line-height: 160%;
		}
		
		#sidebar ul li a {
			color: #000;
			}
			
		#sidebar ul li a:hover {
			text-decoration: underline;
			}

/* définition des balises générales */

a, a:link, a:visited, a:active {
	text-decoration: none;
	}

h1 {
	font-size: .9em;
	background: url(img/exterieurb.gif) no-repeat top right;
	margin: 0;
	padding: 0;
	height: 30px;
	width: 540px;
	line-height: 200%;
	text-align: left;
	background-color: #08115E;
	color: #fff;
	}


Si vous aviez un début de piste ou un moyen de contournement à mon problème ca me ferait plaisir car ca fait un petit moment que je tourne en rond là.

Merci et bonne soirée à tout le monde
Modifié par Daweed (04 Nov 2005 - 21:17)
Grace à un bug de Internet Explorer, il est possible de mettre une valeur à unedonnée dans la feuille de style qui ne sera utilisée que par lui.

Si par exemple, on veut mettre width : 40 px; pour tous les navigateurs et 43 pour IE, on code ainsi :

div#bloc{
width : 40px;
}

* html div#bloc{width : 43px;}

Seul Internet explorer ira prendre la valeur 43px.

Pour plus d'infos sur ce bug, voir ici (en anglais) :

http://www.info.com.ph/%7Eetan/w3pantheon/style/starhtmlbug.html
Bonjour,

Le three pixel jog est expliqué ici :
- http://www.positioniseverything.net/explorer/threepxtest.html (en anglais, un peu vieilli)
- http://test.blog-and-blues.org/haslayout/tests/float6.html (explication récente)

Il s'agit en fait d'un bug "incompressible". Il est possible d'agir sur la manière dont il se manifeste (dans le contenu flanquant le flottant s'il est dénué de layout, à l'extérieur de ce contenu s'il est doté de layout). Mais l'espace de 3 pixels apparaît systématiquement.

C'est une dégradation non obstructive du design. Acceptable Smiley cligne
Jean-Jacques Cortes a écrit :
* html div#bloc{width : 43px;}


Il est préférable d'éviter ces hacks CSS faisant jouer un bug d'IE pour en compenser un autre : le résultat peut devenir problématique à partir du prochain IE7 (Microsoft a d'ailleurs invité explicitement à corriger dés maintenant les sites concernés).

D'ailleurs, dans ce cas précis, le three pixel jog est déjà corrigé dans la bêta 1 d'IE7. Et le hack du sélecteur universel ne sera plus possible dans l'IE7 final (correction annoncée du bug correspondant).

Les commentaires conditionnels offrent un moyen bien plus fiable d'agir spécifiquement sur IE Windows (Voir la FAQ du forum à ce sujet).
Modifié par Laurent Denis (03 Nov 2005 - 06:51)
Bonjour,

Merci à Laurent Denis et à M. Cortes Smiley ravi . Il me semblait bien qu'il s'agissait d'un bug IE. Je vais aller voir les ressources que vous m'avez fournies et essayer de compensser ce bug pas si terrible que ca mais bien embêtant quand même Smiley biggol .

Je vous tiens informé si je n'arrive pas à avancer mais ca doit jouer maintenant.

Merci et à bientôt pour de nouveaux bugs !

Edit: J'ai lu ton article en français Laurent Denis. Donc il est impossible de le "corriger" sous IE (incompressible) ?
Modifié par Daweed (03 Nov 2005 - 09:45)
Il est possible, à l'occasion, de jouer sur une position relative pour décaler le bloc concerné de 3px, et de compenser l'espace exédentaire transféré à droite avec une marge négative...
merci pour ces présicions. En l'occurence pour mon cas j'ai simplement suivi la marche à suivre du hack pour corriger le problème et tout est redevnu ok.

En tout cas mon problème est résolu, merci de m'avoir fourni ces ressources bien utiles.