Problème cadre overflow sous Firefox

Mysterious_fea Messages postés 406 Statut Membre -  
Gihef Messages postés 5165 Statut Contributeur -
Bonjour,
Pour une fois, c'est FF qui me pose problème pour ma mise en page !
Tout marchait bien avant, sur ma page, avec deux marges de 180px de chaque côté du cadre, mais j'ai décidé de rajouter un overflow au cadre orange contenant le texte. J'ai mis overflow-x:visible et overflow-y:auto, mais maintenant les marges sont appliquées deux fois, donc le cadre orange est tout petit, et il faudrait que je supprime les deux marges à droite et à gauche. Mais le problème, c'est que sous IE ça marche parfait, et si j'enlève les marges, là ça va "merder".
Je crois que le problème est fréquent sous FF, vous avez une idée du moyen de le résoudre ?
MERCI
A +
A voir également:

21 réponses

gryzzly Messages postés 5220 Statut Contributeur 1 335
 
Le soucis, c'est que les différents navigateurs interpètent différemment les propriétés margin et padding.
Il faut donc que tu fasses des feuilles de styles spécifiques à chaque navigateur, ou alors que tu passes par les "hacks", notamment des présentations des css lisibles spécifiquement par un navigateur et non par les autres.

Malheureusement, j'ai eu un gros probleme de machine, et j'ai perdu tous mes bookmark... faut que tu googles par toi meme pour trouver les fameux "hacks"
0
Gihef Messages postés 5165 Statut Contributeur 2 779
 
Bonjour,

J'ai parcouru ton code.
Et je ne comprends pas bien tes choix.

Tu regroupes tes blocs du centre dans un bloc “middle”. Bonne idée.
Dedans les 3 blocs “left, right, content”.

Les “left” et “right” sont positionnés en “float”.
Mais pas le “content” que tu gères avec des marges.
Tu perds une certaine logique qui semble tendre vers un positionnement de même type pour le “content”.

As-tu essayé ?

Il faudra bien-sûr qu'un bloc en “clear” soit DANS le “middle”.


++
“overflow-x” je ne suis pas sûr que ça existe.

--
0
Mysterious_fea Messages postés 406 Statut Membre 35
 
Merci pour vos réponses.
=> Grizzly : j'ai un peu regardé les hacks, mais bon c'est pas super propre et je pense que je pourrais régler mon problème autrement, notamment avec la méthode de Gihef.
=> Gihef : comment veux-tu que je fasse ? Si je positionne mon "content" en float, comment faire pour qu'il se place bien ? (j'avais jusque là utilisé deux marges et une largeur qui s'adaptait, en suivant un tuto de "mise en page pour toutes résolutions", mais ce n'est finalement pas le bon choix). Comment tu ferais, toi ?
Je pense que solutionner ce problème de "content" réglerait le reste.
Merci pour tes réponses.
A+
0
Mysterious_fea Messages postés 406 Statut Membre 35
 
Un truc qui me vient, comme ça :
Est-ce que je pourrais, en JS, récupérer page.width, lui soustraire la largeur des deux colonnes à droite et à gauche, et la définir comme la width de mon "content", que je placerais en float:left ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Gihef Messages postés 5165 Statut Contributeur 2 779
 
En y repensant, je me suis dit qu'il serait peut-être plus simple de faire autement.

Le “absolute” permet de faire tout ça plus facilement.

Alors j'ai testé
div#middle{
position : relative;
width:auto;
/*  width:100%!important;
  float:left;
*/
/*  clear:left;*/
  margin-bottom: 0;
}

div#left{
/*  float: left;
*/
position : absolute;
left : 0;
  width: 140px;
  padding: 10px 10px 0 10px;
  background-color: #000000;
  border: 1px solid #FFA017;
  margin-bottom: 10px;
  margin-left:10px;
  height: 290px;
}

div#right{
/*  float:right;
*/
position : absolute;
right : 0;
  width: 146px;
  padding:10px 10px 0 4px;
  background-color:#000000;
  border: 1px solid #FFA017;
  margin-bottom: 10px;
  margin-right:10px;
  font-family: Verdana, Arial, Helvetica, sans-serif;
  padding-bottom: 10px;
  height: 280px;
  color: #999999;
  }

div#content{
height: 290px;
  padding-top:10px;
  margin-right:180px;
  margin-left:180px;
  background-image:url(images/bg-content.png);
  background-repeat:repeat-x;
overflow:auto;
/*  clear: none;
  height:auto;
  min-height: 1px;
  padding-top:300px;
  overflow-y:auto
  overflow-x:visible;
*/
}

div#bottom{
width : auto;
/*  clear: both;
*/
  border: 2px solid #FFA017;
  background-color:#E53000;
  font-size: 85%;
  color: #000000;
  padding: 10px 0;
  text-align:center;
  margin: 5px 10px;
  font-weight: bold;
  font-family: Verdana, Arial, Helvetica, sans-serif;
}


avec

.feature{
  padding: 0px 0px 3px 10px;
  font-size: 80%;
/*  margin-top: -300px;*/
}
Ça semble être une possibilité qui peut répondre à ta question.

À tester.

--
0
Mysterious_fea Messages postés 406 Statut Membre 35
 
Mais qu'est-ce que t'a changé au niveau du positionnement ?
Et que veut dire /* ..................... */ ? C'est ce que je ne dois pas mettre ?
Merci
0
Gihef Messages postés 5165 Statut Contributeur 2 779
 
Mes modifications sont les lignes collées à la marge, sans retrait.

Quant aux /* … */, ils masquent les lignes de code.

--
0
Mysterious_fea Messages postés 406 Statut Membre 35
 
Merci beaucoup ça marche très bien (je mettrais en ligne prochainement)
Je garde le post au cas où (j'aurais surement d'autres problèmes !)

Merci encore pour ton aide
Ciao
0
Mysterious_fea Messages postés 406 Statut Membre 35
 
Si t'as un moment, peux-tu regarder mon autre post stp ?
Merci
0
Gihef Messages postés 5165 Statut Contributeur 2 779
 
OK, mais, résolu, on peut considérer que c'est résolu alors ?

--
0
Mysterious_fea Messages postés 406 Statut Membre 35
 
OK merci encore
0
Mysterious_fea Messages postés 406 Statut Membre 35
 
Résolu !
0
Mysterious_fea Messages postés 406 Statut Membre 35
 
Oups, encore un problème ! Je viens de voir que sous IE6 il y avait un gros problème avec la mise en page : ici
Comment le régler svp ?
merci ciao
0
Gihef Messages postés 5165 Statut Contributeur 2 779
 
Tu trouverais certainement une solution en plaçant l'ensemble des ta page dans un conteneur global.
Comme dans cet exemple.

--
0
Mysterious_fea Messages postés 406 Statut Membre 35
 
Ca ne règle pas le problème : regarde ces screenshoots sous IE5.5 et 6
Comment faire ?
0
Mysterious_fea Messages postés 406 Statut Membre 35
 
Quelqu'un a une idée ?
Je pense que le problème sous IE < 7 viens de "position".
Si je met 'position:absolute' à "left", elle se replace bien à 0px du bord gauche. Sinon, elle ne prend pas en compte 'left:0px'.
Mais bon, si je lui met 'position:absolute', ça dérègle toute ma mise en page...
Comment lui faire comprendre left:0px ?
Merci
0
gryzzly Messages postés 5220 Statut Contributeur 1 335
 
Je te renvoies encore une fois à ma réponse 1.
Chaque navigateur interprete diféremment les différentes propriétés. Il n'y a que le tatonnement qui permette d'arriver à tes fins. et l'utilisation de plusieurs feuilles de style ou de hacks, car, a moins d'avoir une mise en page ultra fluide, sans propriétés peu ocnventionnelles, tu auras toujours des problèmes de mise en page sous l'un ou sous l'autre des navigateurs.

tu peux aussi essayer une mise en page de qq blocs en "float"
0
Mysterious_fea Messages postés 406 Statut Membre 35
 
Il n'existerait pas une petition pour brûler les créateurs d'IE par hasard ?
0
gryzzly Messages postés 5220 Statut Contributeur 1 335
 
héhé... pas à ma connaissance. mais si tu l'as trouve, je signe :o)
0
Mysterious_fea Messages postés 406 Statut Membre 35
 
Non mais, blague à part, personne n'a une idée, une suggestion ?
0