28172 sujets

CSS et mise en forme, CSS3

Bonjour,

Je suis surpris par un problème que j'interprète pour l'instant comme un problème d'héritage de la propriété width sous Opera 9.25 et Konqueror 3.5.8
Imaginons pour faire court :

<DIV id="DIV_GLOBAL">
     .... des tas de trucs...
     <DIV id="DIV_GAUCHE">
     .... des tas de trucs...
     </DIV>
     <DIV id="DIV_DROITE"> (float:right; width:216px)
          <DIV id="DIV_1"> (float:right; width:206px))
          ...
          </DIV>
          <DIV id="DIV_2"> (float:right; width:206px)
          ...
          </DIV>
          <DIV id="DIV_3"> (float:right)
               <DIV id="DIV_31"> (float:left; width:102px)
               ...
               </DIV>
               <DIV id="DIV_32"> (float:right; width:102px)
               ...
               </DIV>
          </DIV>
     </DIV>
</DIV>

Ce pseudo-code ne pose aucun problème avec IE6 - IE7 - FireFox2
En revanche, sous Opera 9.25 et Konqueror 3.5.8 :
- DIV_32 est bien alignée à l'extrême droite de DIV_3
- Mais DIV_31 colle à la gauche de DIV_32. DIV_31 n'est pas à l'extrême gauche de DIV_3 comme elle l'est sous les autres navigateurs.

Si je respécifie width à 216px pour DIV_3, tout rentre dans l'ordre et l'affichage devient conforme aux autres navigateurs.
Je m'étais pourtant dit que DIV_3 héritait automatiquement de la propriété width de DIV_DROITE.

Qu'en est-il en vérité ? Est-ce un autre problème que je n'ai en fait pas compris ?
Modifié par aCOSwt (03 Mar 2008 - 11:18)
Bonjour aCOSwt,

a écrit :
Je m'étais pourtant dit que DIV_3 héritait automatiquement de la propriété width de DIV_DROITE.


Ce n'est pas le cas ... la propriété width de DIV_3 est fixée par défaut à auto.

De plus, la sortie du flux de l'élément (qu'implique la propriété float) fait que l'élément prend la largeur nécessaire à ces enfants.

Bonne continuation.
Romain
Modifié par yodaswii (03 Mar 2008 - 11:41)
Bonjour,

a écrit :
Je m'étais pourtant dit que DIV_3 héritait automatiquement de la propriété width de DIV_DROITE.

DIV_3 est flottant, donc non il ne prendra pas automatiquement toute la largeur disponible dans son conteneur. Il faudra lui donner explicitement une largeur de 100%.

À vue de nez, je dirais que le rendu dans Opera et Safari est correct. Celui dans Firefox et IE me semble plutôt dû à un bug que j'ai rapidement documenté ici:
http://web.covertprestige.info/test/20-bug-flottants-imbriques-et-largeur.html

Pas sûr à 100% que ça soit ça, mais ça y ressemble.
Tu peux confirmer en testant ta page avec la beta de Firefox 3.
Modifié par Florent V. (03 Mar 2008 - 12:36)
@yodaswii : Merci maître ! Tu viens encore de m'apprendre un truc !
@florent V. : Merci de ton aide. Pour une fois que je pensais que IE6 se comportait normalement... c'était donc en fait un bug... Smiley decu
FireFox 3 beta pose des problèmes sur, voire à, mon système... alors... Smiley biggol
En revanche, je confirme que, relativement à mon éssai, Konqueror 3.5.8 se comporte bien comme Opera 9.26
Modifié par aCOSwt (04 Mar 2008 - 13:08)