Problème cadre overflow sous Firefox

Fermé
Mysterious_fea Messages postés 401 Date d'inscription vendredi 29 juin 2007 Statut Membre Dernière intervention 23 mars 2013 - 14 déc. 2007 à 23:13
Gihef Messages postés 5150 Date d'inscription mercredi 20 juillet 2005 Statut Contributeur Dernière intervention 20 février 2023 - 2 janv. 2008 à 22:24
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 4608 Date d'inscription lundi 7 novembre 2005 Statut Contributeur Dernière intervention 24 octobre 2020 1 335
14 déc. 2007 à 23:31
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 5150 Date d'inscription mercredi 20 juillet 2005 Statut Contributeur Dernière intervention 20 février 2023 2 779
15 déc. 2007 à 00:15
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 401 Date d'inscription vendredi 29 juin 2007 Statut Membre Dernière intervention 23 mars 2013 35
15 déc. 2007 à 19:27
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 401 Date d'inscription vendredi 29 juin 2007 Statut Membre Dernière intervention 23 mars 2013 35
15 déc. 2007 à 19:33
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 5150 Date d'inscription mercredi 20 juillet 2005 Statut Contributeur Dernière intervention 20 février 2023 2 779
16 déc. 2007 à 17:54
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 401 Date d'inscription vendredi 29 juin 2007 Statut Membre Dernière intervention 23 mars 2013 35
16 déc. 2007 à 19:42
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 5150 Date d'inscription mercredi 20 juillet 2005 Statut Contributeur Dernière intervention 20 février 2023 2 779
16 déc. 2007 à 21:13
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 401 Date d'inscription vendredi 29 juin 2007 Statut Membre Dernière intervention 23 mars 2013 35
17 déc. 2007 à 21:50
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 401 Date d'inscription vendredi 29 juin 2007 Statut Membre Dernière intervention 23 mars 2013 35
17 déc. 2007 à 21:51
Si t'as un moment, peux-tu regarder mon autre post stp ?
Merci
0
Gihef Messages postés 5150 Date d'inscription mercredi 20 juillet 2005 Statut Contributeur Dernière intervention 20 février 2023 2 779
17 déc. 2007 à 23:32
OK, mais, résolu, on peut considérer que c'est résolu alors ?

--
0
Mysterious_fea Messages postés 401 Date d'inscription vendredi 29 juin 2007 Statut Membre Dernière intervention 23 mars 2013 35
18 déc. 2007 à 16:39
OK merci encore
0
Mysterious_fea Messages postés 401 Date d'inscription vendredi 29 juin 2007 Statut Membre Dernière intervention 23 mars 2013 35
18 déc. 2007 à 16:40
Résolu !
0
Mysterious_fea Messages postés 401 Date d'inscription vendredi 29 juin 2007 Statut Membre Dernière intervention 23 mars 2013 35
23 déc. 2007 à 12:08
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 5150 Date d'inscription mercredi 20 juillet 2005 Statut Contributeur Dernière intervention 20 février 2023 2 779
25 déc. 2007 à 01:10
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 401 Date d'inscription vendredi 29 juin 2007 Statut Membre Dernière intervention 23 mars 2013 35
26 déc. 2007 à 15:19
Ca ne règle pas le problème : regarde ces screenshoots sous IE5.5 et 6
Comment faire ?
0
Mysterious_fea Messages postés 401 Date d'inscription vendredi 29 juin 2007 Statut Membre Dernière intervention 23 mars 2013 35
1 janv. 2008 à 21:53
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 4608 Date d'inscription lundi 7 novembre 2005 Statut Contributeur Dernière intervention 24 octobre 2020 1 335
1 janv. 2008 à 22:50
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 401 Date d'inscription vendredi 29 juin 2007 Statut Membre Dernière intervention 23 mars 2013 35
2 janv. 2008 à 11:55
Il n'existerait pas une petition pour brûler les créateurs d'IE par hasard ?
0
gryzzly Messages postés 4608 Date d'inscription lundi 7 novembre 2005 Statut Contributeur Dernière intervention 24 octobre 2020 1 335
2 janv. 2008 à 12:00
héhé... pas à ma connaissance. mais si tu l'as trouve, je signe :o)
0
Mysterious_fea Messages postés 401 Date d'inscription vendredi 29 juin 2007 Statut Membre Dernière intervention 23 mars 2013 35
2 janv. 2008 à 20:26
Non mais, blague à part, personne n'a une idée, une suggestion ?
0