28172 sujets

CSS et mise en forme, CSS3

Bonsoir a tous.

J'ai un problème de positionnement/chevauchement de div.

Pour schématiser j'ai


    <div id="nav">
    <div id="center">
        <div id="article">
        <div id="media">
    <div id="footer">


Le problème étant que la div media passe sous la div footer avec opera, et avec firefox internet explorer etc, cela me créer une barre de défilement

En image cela donne ca: http://bapteme-drift.com/index.php?page=roussillon

J'ai essayer différentes manip avec les valeurs overflow, mais rien n'y fait.

Auriez vous quelques piste ? car la je seche. merci
Modifié par meche (08 Jul 2010 - 12:33)
J’ai justement Opera, et je ne vois pas à quel endroit quelque chose ne va pas dans la page pour laquelle tu donne un lien. Peux-tu indiquer l’emplacement sur la page ?
A pardon, je penser que cela ce voyer bien.

Je parle de la partie central, a droite il y'a plusieurs bloc, et c'est le dernier "comment venir" qui ce retrouve en dessous de la div footer.

Donc sous opera il y'a une superposition, et sous les autres navigateur, une barre de défilement apparait ce qui permet de voir l'integralité du fameux bloc "comment venir"

Merci encore de votre coup de main Smiley biggrin
Bonsoir Meche,

Voici le résultat que j’ai avec mon Opera (10.53) :
http://img690.imageshack.us/img690/4515/operai.png

Il ne passe pas à proprement parler en bas, c’est pour cela que je ne l’avais pas vu. Mais en rechargeant la page plusieurs fois, j’ai remarqué qu’une partie est masqué par le DIV "footer" en effet. C’est bien la même chose que tu as ?

Excuse moi pour toute de suite, je repasse plus tard pour voir ça. Ça doit être résoluble.

À plus tard
Re-, je suis en train de regarder Smiley biggrin

Il semble effectivement y avoir des problèmes entre ce site et Opera, parce que DragonFly n’arrive pas explorer la page correctement et m’affiche un peu n’importe quoi à la place des propriétés CSS. Je regarde donc avec FireFox (je vais présenter le cas sur le forum Opera).

Pourquoi styles-tu l’élément HTML ? Height: 100% sur l’élément HTML, ça me semble étrange.

Sous IE7 et IE8, il y a un problème spécifique : ça affiche « <!--[if IE lte IE 8]> <![endif]--> » dans le coin en haut à gauche de la page. Des erreurs dans les scripts également (des erreurs de syntaxe, ça se corrige toujours).

#center a un overflow:auto, donc OK, ça peut produire un défilement, mais ça n’est pas obligatoire, car :

La référence CSS2 dit
a écrit :
auto
The behavior of the 'auto' value is user agent-dependent, but should cause a scrolling mechanism to be provided for overflowing boxes.


Si c’est un défilement que tu recherche, que dirais-tu d’utiliser directement “overflow:scroll” qui est spécialement faite pour ça ?

Je ne peux pas tester sous Opera, à cause des problèmes que rencontre DragonFly sur ton site, mais sous FireFox, j’ai essayé de remplacer overflow:auto par overflow:scroll, et le résultat est le même.

Je ne vois rien dans les propriétés CSS de #center, qui contraigne sa hauteur maximum, et il n’y a aucune obligation de se baser sur une hauteur déterminée plus ou moins arbitrairement comme semble le faire FireFox et IE7 ou IE8, alors je comprend qu’Opera ne produise peut-être pas le défilement que tu attend, et qu’il affiche le contenu tel quel, en agrandissant #center.

Dans #center, tu as deux colonnes, #article et #media, toutes deux float. OK.

Mais pourquoi ne laisse-tu pas #media s’agrandir librement ? Tu le contrains à une hauteur fixée d’avance, et seuls ses deux .media passent dedans, tandis que ses trois .note en débordent. Alors inévitablement, les trois .note sortent du #media, peuvent légitimement passer sous #footer, car les trois .note sont dans le flux de #media, et ne participe pas au positionnement de #footer, et comme dans la pile d’affichage, #media est derrière #footer, alors Opera ne fait pas d’erreur en les faisant passer sous #footer... c’est son droit, parce que #footer aura tendance à venir se caler sous #media, et si le navigateur ne fait rien contre, c’est son droit aussi.

Bon, mon impression est que ce n’est pas un bug d’Opera, mais une différence d’interprétation entre navigateur, et cette différence et légitime (mais il faudrait que je vois d’autres choses pour être sûr, seulement, ça prendrait du temps)

Je te propose de remplacer

div#media {
   float: left;
   height: 200px;
   margin-left: 10px;
   width: 420px;
}

par

div#media {
   float: left;
   height: auto;
   margin-left: 10px;
   width: 420px;
}

ou encore plus simplement par

div#media {
   /* No more height property */
   float: left;
   margin-left: 10px;
   width: 420px;
}

et il y a de bonnes chances pour que ça s’arrange sous Opera Smiley smile

Note : si tu veux un center qui défile, donne lui une hauteur. À moins que tu ne recherchais quelque chose de plus précis que ça ? Dis toujours alors ...

P.S. Des ID et classes du même nom (media) : pourquoi ?
Modifié par hibou57 (08 Jul 2010 - 03:09)
Pour commencer je tiens a te remercier pour toute l'attention que tu as apporté a mon problème Smiley smile

C'est effectivement sur cette partie du site que j'ai un problème !!

Comme tu la remarqué, la div .note ou ce trouve l'integration de googlemap passe dessous le footer, sous opera, et sous les autres navigateur une barre de défillement est crée.

Le comportement que j'attends est bien une taille automatique du centre du site, sans aucune barre de défilement.

Mais pourquoi ne laisse-tu pas #media s’agrandir librement ? Tu le contrains à une hauteur fixée d’avance, et seuls ses deux .media passent dedans, tandis que ses trois .note en débordent. Alors inévitablement, les trois .note sortent du #media, peuvent légitimement passer sous #footer, car les trois .note sont dans le flux de #media, et ne participe pas au positionnement de #footer, et comme dans la pile d’affichage, #media est derrière #footer, alors Opera ne fait pas d’erreur en les faisant passer sous #footer... c’est son droit, parce que #footer aura tendance à venir se caler sous #media, et si le navigateur ne fait rien contre, c’est son droit aussi.

Cette explication est vraiment au top !!

Je n'avais pas remarqué que les .notes sortaient du flux, comme tu me l'a indiqué a cause de la hauteur de #media qui était fixe. c'est bien de la que viens mon problème, enfin que venais mon problème Smiley lol

Et dire que j'ai chercher pendant des heures..... Smiley biggol

Bon, mon impression est que ce n’est pas un bug d’Opera, mais une différence d’interprétation entre navigateur, et cette différence et légitime (mais il faudrait que je vois d’autres choses pour être sûr, seulement, ça prendrait du temps)

En precisant la hauteur de #div en auto tous est rentré dans l'ordre, la barre de défilement a disparue et le positionnement sous Opera est nikel. la difference etait bien une histoire d'interpretation

-----------------------------

Concernant les autres remarques

Pourquoi styles-tu l’élément HTML ? Height: 100% sur l’élément HTML, ça me semble étrange.
C'est pas pour éviter un bug sous ie ? Il me semble que j'avais trouvé sa dans un des tuto d'alsacreation, mais j'ai du zapper un truc ou déformer sont application Smiley lol ,

Sous IE7 et IE8, il y a un problème spécifique : ça affiche « <!--[if IE lte IE 8]> <![endif]--> » dans le coin en haut à gauche de la page. Des erreurs dans les scripts également (des erreurs de syntaxe, ça se corrige toujours).
J'ai appliqué un css particulier pour gérer la transparence, et effectivement j'ai du mal declarer l'exeption ce qui donne ce message Smiley confus

P.S. Des ID et classes du même nom (media) : pourquoi ?
C'est vrai que c'est pas très malin, même moi je me suis embrouiller a l'instant en donnant la valeur de hauteur en automatique a ma .media au lieu de #media Smiley biggol il faut que je puise dans mon inspiration pour lui trouver un petit nom Smiley langue


Merci encore pour cette aide super precieuse !!!


ps: j'ai un autre problème de css, une histoire d'héritage, nottament sur mes liens, il vaut mieux que je créer un autre topic ?
Hello,

meche a écrit :
C'est pas pour éviter un bug sous ie ? Il me semble que j'avais trouvé sa dans un des tuto d'alsacreation
Tout juste :
Vous avez dit height=100% ?

meche a écrit :
ps: j'ai un autre problème de css, une histoire d'héritage, nottament sur mes liens, il vaut mieux que je créer un autre topic ?
Yep : cela permet d'avoir un et un seul problème (et éventuellement une solution + un résolu) par sujet. Smiley cligne
Heyoan a écrit :
Hello,

Tout juste :
Vous avez dit height=100% ?
Fathce, je me suis rappellé d'un truc Smiley winner , tous n'est peut être pas perdu pour moi ^^

Heyoan a écrit :

Yep : cela permet d'avoir un et un seul problème (et éventuellement une solution + un résolu) par sujet. Smiley cligne

Oky, je vais faire ca
Modifié par meche (08 Jul 2010 - 12:32)