28173 sujets

CSS et mise en forme, CSS3

Bonjour,

j'ai un problème de décallage entre firefox et ie. Je souhaite positionner le contenu de ma page en utilisant :


<div id='centre_blanc_accueil'>contenu</div>




#centre_blanc_accueil {
	position: absolute;
	background : #fff ; 
	float : left ; 
	margin-left : -30px ; 
	left : 0px
	top: 0; 
	border-left :10px solid #fff; 
	border-right :8px solid #fff; 
	height : 350px; 
	width : 300px; 
	overflow : auto;
	color : #000;
	z-index: 2;
}


Si je met margin-left : -30px ; sous ie c'est ok mais pas sous firefox c'est complétement à gauche.

Si je met margin-left : 180px ; sous ff c'est ok mais pas sous ie c'est complétement à droite ...

Comment régler ce problème ? et éventuellement comment créer ou gérer des div différentes pour chaque navigateur (je ne sais pas si c'est utile je pose toujorus la question ..)

Merci d'avance
Essaye ça :

#centre_blanc_accueil {
margin-left : 180px !important;
margin-left : -30px;
}

!important est un argument que IE ne connais pas. Mais les autres nivigateurs le connaissent, comme ça FF va utiliser 180px vue qu'on lui dit que c'est le plus important et IE va utiliser -30px car in le connais pas "margin-left : 180px !important;"

Bonne chance. Smiley cligne
Merci pour ton astuce mais ca ne fonctionne pas chez moi ...

Ca redevient bon pour ff mais pas pour ie7 ...

Si vous avez une autre astuce ou quelque chose de plus classique pour orienter le navigateur vers la bonne feuille de style ...

Merci d'avance
Essaye ça, mais c'est un peu plus complexe et je sais pas si c'est bon pour la validation. J'ai jamais testé.
Mets ce code entre les balises <head></head> de ton fichier HTML.
<?php
//$_SERVER["HTTP_USER_AGENT"] : variable donnant le navigateur
if (ereg("MSIE", $_SERVER["HTTP_USER_AGENT"])) {
    //Internet explorer
    echo "<link rel=\"stylesheet\" href=\"IE.css\" type=\"text/css\" />";
} else if (ereg("^Mozilla/", $_SERVER["HTTP_USER_AGENT"])) {
    //Mozilla - Firefox
    echo "<link rel=\"stylesheet\" href=\"FF.css\" type=\"text/css\" />";
} else if (ereg("^Opera/", $_SERVER["HTTP_USER_AGENT"])) {
    //Opera 
    echo "<link rel=\"stylesheet\" href=\"Opera.css\" type=\"text/css\" />";
} else {
    //Les autres
    echo "<link rel=\"stylesheet\" href=\"pardefaut.css\" type=\"text/css\" />";
}
?>


IE.css = pour IE
FF.css = pour FireFox
Opera.css = pour Opera.
pardefaut.css = pour les autres

Bonne chance.
Smiley cligne
Merci Bekham pour ton script

Pour moi, il me reste un petit problème j'ai une différence d'affichage entre les différentes versions d'internet explorer.

Comment pourrais-je faire pour reconnaitre les différentes version de ie (5, 6 ou 7) ?

Merci d'avance, si vous avez une solution.
Bonjour,

bekhan a écrit :
Essaye ça, mais c'est un peu plus complexe et je sais pas si c'est bon pour la validation.


A ne jamais faire, en fait Smiley cligne
- l'en-tête HTTP_USER_AGENT n'est pas toujours présent
- il nécessite une analyse beaucoup plus fine que celle-ci pour ne pas faire d'identifications erronées
- il peut-être variable pour certains clients, le cas type étant Opera qui pourra aussi bien être identifié par le code ci-dessus en tant qu'Opera, IE ou FF
- ce n'est pas nécessaire, la technique des commentaires conditionnels, notamment, permettant de gérer directement les différences de rendu CSS via CSS. Et de gérer les différentes versions d'IE Win.
Modifié par Laurent Denis (18 Oct 2007 - 06:22)
Salut,

Déjà choisir entre absolute et float Smiley biggol il y en a 1 de trop...
Si tu restes absolute, le bloc conteneur doit être positionné en relatif et ça devrait le faire...
Modifié par ghost (18 Oct 2007 - 08:05)
a écrit :
la technique des commentaires conditionnels


Tu parle de :

<!--[if IE]>
Code HTML spécifique à ie
<![endif]-->

ou

<!--[if IE ]><link rel="stylesheet" type="text/css" href="css/ie.css" /> <![endif]-->

Si oui il y a-t-il un moyen de reconnaitre les autres navigateurs aussi (opera, conqueror...)

Ok, j'ai pas cherché beaucoup sur le net, c'est peut-être tout simple aussi. J'approfondirais demain, la je suis fatigué.

Merci