28173 sujets

CSS et mise en forme, CSS3

Bonjours, j'ai presque terminé mon site, mais j'ai un probléme au niveau de mon CSS: ma page marche impec sous Firefox et Safari, mais elle passe beaucoup moins bien sous IE6:

Cliquez ici

Au niveau des coins, il y a une petite bande verticale foncée qui apparait, encore un bug d'interprétation de IE.

J'ai pas testé avec IE7 (je n'ai jamais pris la peine de l'installé, vus la réputation d'ie) mais je pense que ca ne doit pas fonctionner non plus.

Connaissez vous la solution a mon probléme ?

Merci
Modifié par Galdon (12 Nov 2007 - 11:26)
Merci pour les liens, il y en a certains que je connaisais déja, d'autres non.
J'ai lu plusieurs feuilles de style, et je n'arrive toujours pas a résoudre mon probléme.
voici un lien vers mon css.

J'ai essayé de mettre des padding et des margin pour les coins, mais ca ne marche pas.
Je ne pense pas que ca soit ca, mais je pose quand même ma question:
habituellement, pour faire un cadre fluide (comme moi), on fait:
3 colonnes
3 colonnes
3 colonnes

par contre, moi j'ai fait ca:
3 colonnes
1 colonne
3 colonnes

Parce que j'en ai pas besoin de 3 au milieu, vous pensez que ca pourrait venir de ca ?

EDIT: si je supprime height de .haut, .hg et .hd, il n'y a plus les barres foncés sous ie, par contre ces div ne sont pas assez haut et sous firefox, ca ne passe plus du tout, donc c'est mort)
Modifié par Galdon (12 Nov 2007 - 13:07)
J'ai ramené le probléme a cette page, le style est dans la page, vous n'avez qu'a regarder la source, c'est plus simple pour vous, plus simple que 50000 lignes.

Je ne voudrais pas mandier, mais presque !
Personne n'a pu m'aider sur tous les forums ou j'ai posté pour ce probléme, alsacreations, c'est ma derniére chance !

Smiley prie
Modérateur
bonjour

tu indique une hauteur au div qui se trouve affiché entre tes 2 coins flottants.
Pour IE , l'effet est de provoqué le layout , ton div se trouve donc doté d'une particularité supplementaire et va occupé l'espace a l'ecran qui est réellement libre.

Il va se demarqué des flottants , qui par ailleurs induisent le "3 pixel jog" . Une marge laterales aux flottants .

Ton div alors ne s'affichera qu' a 3 pixel du bord des flottants , + la marge que tu donnes.

Tu peut eventuellement enlevé le height:23px;, ajouté un paragraphe (et te defaire du layout dans IE ) ou un titre pour recevoir le texte et dimensionné celui-ci.

tu peut reproduire le bug dans Firefox en donnant : overflow:hidden; a .haut , le resultat de comportement est trés similaire dans ce cas a ce qui se passe dans IE.

GC
Merci pr toutes ces info.
Entre temps, j'ai eut une idée, qui au début, m'as parus géniale:
mettre les coins a l'intérieur de haut:

<div id="centre">
	<div class="haut">
		<div class="hd"></div>
		<div class="hg"></div>
		Titre
	</div>

	<div class="contenu">
		Accueil
	</div>

	<div class="bas">
		<div class="bg"></div>
		<div class="bd"></div>
	</div>
</div>


et ca dans le css:
.hg, .hd, .bg, .bd,.haut, .bas, .cell_haut, .cell_bas{
	background-color:#35353F;
}
/*fin coins*/

/*classes contenu*/
.haut{
	width:100%;
	background-image: url('images/haut.gif');
	background-repeat: repeat-x;
	height:23px;
	font-family: Arial;
	font-weight:bold;
	text-align:center;
}

.bas{
	width:100%;
	background-image: url('images/bas.gif');
	background-repeat: repeat-x;
	height:14px;
}


Hop, je finis de coder tout ca, et la j'essai, super, les coins passent nickel avec ie6, ff et safari.

Par contre, et la franchement, ca c'est de la descente, pour je ne sais quelle raison, ie m'affiche le centre tout en bas :s

Voici un exemple
et le nouveau css associé (css6.css)

Je sais pas si je dois étre content, je résout un probléme, et j'en trouve un autre, toujours avec le même navigateur !
Bon j'ai trouvé ce que ie aimait pas:
il aime pas les width:100%; de .haut et .bas.
Quand je les supprime, il s'affiche bien, sauf que y'a une marge de 3px a gauche et a droite de .haut et de .bas, du coup je suis obligé d'ajouter un margin:0px 3px; a .contenu.

Et du coup, ben dans ff et safari ou tout passé bien avant, j'ai contenu qui est moins large que le haut et les bas !

Smiley fache

Donc je crois avoir trouvé LA solution: les commentaires conditionnels.
C'est bourrin mais bon, je vois que ca.

Et surtout, si vous avez une autre solution a me proposer, allez y (même quitte a faire un gros up de 1 an Smiley biggrin ) ca peut toujours servir.

IE est une espéce a éradiquer, d'ailleurs parfois je me demande si les gens de redmond qui bossent dessus comprennent leur code source.
Nan mais je comprend mieux le chinois que ie interpréte le css !
Modifié par Galdon (12 Nov 2007 - 22:33)
Modérateur
bonsoir

tu conserve les dimensions pour haut et bas , et pas pour contenu .
En presence des flottants , mieux vaut resté coherents et doté tout le monde ou personnes de ce comportement du au layout.
D'abord , si besoin , on s'attaque au conteneur qui vient se placer a coté du ou des flottant , ici #centre et on le dote de ce fameux layout . puis il faut faire en sorte que l'on retrouve le même comportement dans Firefox:
(d'ou l'overflow).
On peut donc ici faire:

#centre {
	height:1%;/* layout pour IE */
overflow:hidden;/* demarquage des flottant */
margin:0 3px; /* marge externes , pour ne pas se coller a droite ni a gauche */
}


gc
Merci beaucoup gcyrillus, j'ai enfin résolu mon probléme, dans une seule css, sauf que j'ai fait une petite modif par rapport a ton code.
Avec ton code, j'avais 2-3px d'espace entre les menus gauche et droite et le centre, donc j'ai rajouté une classe centreie:

#centre {
	height:1%;/* layout pour IE */
	overflow:hidden;/* demarquage des flottant */
}

.centreie{
	margin:0px 14px;
}


Voila voila, merci infiniment

et ds le html:
<div id="centre">
	<div class="centreie">
		<div class="haut">
			<div class="hd"></div>
			<div class="hg"></div>
			Titre
		</div>
	
		<div class="contenu">
			Accueil
		</div>
	
		<div class="bas">
			<div class="bg"></div>
			<div class="bd"></div>
		</div>
	</div>
</div>
Smiley biggrin