28114 sujets

CSS et mise en forme, CSS3

Bonjour,
Je suis désolé d'avance pour le titre qui n'est pas très explicite.

J'ai, sur une de mes pages de contenu, un texte que je veux répartir en colonnes de taille égales dans le contenu.

Firefox ne trouve rien à y redire, par contre IE me balance le div2 en-dessous du div1 alors que je le voulais à côté.
Ça, c'est mon problème principal.

Ensuite, est-ce que vous pensez que le positionnement général des éléments est bon ?

N.B. IL n'y a que sur cette page en particulier qu'une partie du texte est scindé en deux colonnes. Sur toutes les autres pages, le contenu est d'un seul bloc avec titres et paragraphes.

N.B.2. Je ne peux pas savoir à l'avance lequel entre div1 et div2 sera le plus long en hauteur, si jamais ce renseignement peut vous être utile.


Dans le code ci-dessous, je vous fais grâce de la partie contenu, je vous donne uniquement la structure générale, j'imagine que ça doit suffire pour que vous puissiez répondre à mes questions. Pareil pour le CSS.


XHTML :

<!doctype ... xhtml 1.0 strict ... >
<html>
<head>
...
</head>
<body>
<div id="conteneur">
<div id="header">
...
</div>
<div id="menu">
...
</div>
<div id="contenu">
...
<div id="page">
...
<div id="div1" class="flotteGauche50">
...
</div>
<div id="div2" class="flotteGauche50">
...
</div>
</div></div>
<div id="footer">
...
</div>
</body></html>



CSS :

#contneur {
text-align:center;
}
#menu {
float:left;
width:23%;
}
#contenu {
margin-left:23%;
padding-left:0.5%;
}
#footer {
clear:both;
}

.flotteGauche50 {
float:left;
width:48%;
}


Merci pour votre aide..
Modifié par QuentinC (08 Nov 2005 - 21:09)
Modérateur
bonjour,
essai d'appliquer un
overflow-x:hidden;

ou/et un
word-wrap: break-word;

ces attribut css sont de chez IE Smiley smile
etant donner que IE comprend width comme min-width , je soupçonne tes cellules d'etre aggrandies par le texte ou autre element qu'elles contiennent.
(ton bout de code n'as pas mis ce bug en evidence sur ma version 6 de IE pc, je ne fais que des suppositions.)
a plus
J'essaierai ça demain, merci.
En effet les textes contenus dans div1 et div2 sont assez longs. J'ai vérifié, si je me rappelle bien ça tourne vers les 3000 ou 4000px de hauteur.
Que nenni ! Ça ne change malheureusement rien à mon problème.
Quel c**** de IE.
J'avais déjà réduit de 50à 48% en pensant que ça changerait, mais non !

Merci quand même.
Administrateur
Bonjour,

juste au cas où, il y a une coquille dans la partie CSS présentée ici: il manque un e à contEneur.
bonjour,

Il te faut affecter une propriété width:100% pour IE à l'un des parents #contenu ou #page.
Faute de quoi IE fait cette opération interessante : 45% de rien = 100% du reste... Smiley smile Smiley smile

Dans ton cas :


#page{
 width:100%;
}


Devrait suffire à résoudre ton problème.

Si tu dois l'affecter au grand-père #contenu, penses à le réserver à IE...

Jean-pierre

Ps: je n'arrives pas à comprendre l'utilité de #contenu d'ailleurs...
Ps2: il te manque le end-tag du div #conteneur.
Modifié par jpv (10 Nov 2005 - 10:46)
jpv a écrit :

Il te faut affecter une propriété width:100% pour IE à l'un des parents #contenu ou #page.
Faute de quoi IE fait cette opération interessante : 45% de rien = 100% du reste... Smiley smile Smiley smile


Houlààà j'ai pas compris comment calcule IE, mais je vais essayer 100% sur #page comme suggéré.

jpv a écrit :

Si tu dois l'affecter au grand-père #contenu, penses à le réserver à IE...


Oui, mais... attribuer 100% à #page, est-ce que ça conviendra ? parce que il ne faut pas oublier mon #menu à 23% donc 100+23 = 123% = une scrollbar horizontale à éviter comme la peste.

Bon je teste et ensuite je vous tiens au courant s'il y a effectivement une scrollbar ou si ça me règle mon problème.

jpv a écrit :

Ps: je n'arrives pas à comprendre l'utilité de #contenu d'ailleurs...


Ben... sinon je n'aurais pas la margin-left de 23% et donc le contenu passerait tout à gauche après le menu... il faut qu'il reste aligné à gauche avec ces 23% de décalage. Je ne sais plus qui m'avait donné cette astuce du margin-left, au départ j'utilisais un deuxième float:left avec width:75% moi.

jpv a écrit :

Ps2: il te manque le end-tag du div #conteneur.


Ah... je ne pense pas avoir fait cette erreur dans la page originale, mais je vais vérifier.

Merci.
#page { width:100%; } résoud le problème des deux div div1 et div2 à la même hateur.
Par contre je soupçonne la présence d'une scrollbar.

La ligne suivante dans la barre d'adresse :
javascript:alert(document.getElementById('menu').offsetWidth + document.getElementById('contenu').offsetWidth);

Me donne 988 sur firefox, ce qui semble correct pour une fenêtre maximisée en 1024*768, sur IE ça me donne 1100 et des poussières.
Donc, il doit y avoir de la place perdue quelque part apparament.

Merci pour votre aide mais le problème n'est pas pour autant complètement résolu.