Bonjour,
Je suis en train de construire un site Web et j'ai un problème avec un bloc contenant un bloc flottant.
L'architecture de la page est simple : en haut une barre qui prend toute la largeur de la page, sur la gauche un menu flottant (à gauche donc) de 150 pixels de large (140 pixels de largeur + 5 pixels de padding à gauche et à droite) et sur le reste de la page un bloc avec une marge à gauche de 170 pixels (pour l'écarter du menu).
Ici un aperçu de la page sous Firefox 3 (on voit bien en haut la barre, à gauche le menu et le bloc contenu à droite qui contient d'autres blocs).
Le problème se trouve au niveau du bloc intitulé « Planche 1 » (voir l'aperçu ci-dessus). En effet, celui-ci contient une image (à droite). Celle-ci est encapsulée dans un bloc ayant la classe miniature permettant à l'image de flotter à droite :
(div.planche permet de sélectionner le bloc intitulé « Planche 1 », qu'on appellera .planche.)
Le bloc .planche contient à sa fin un bloc ayant la classe finDePlanche
pour éviter que l'image ne dépasse du bloc .planche.
Seulement, Internet Explorer (j'ai testé avec I.E. 6 et un ami m'a dit que c'était pareil sous I.E. 7) me fait des misères : si le contenu du bloc .planche n'est pas plus haut que la miniature (autrement dit, si .finDePlanche est utile (puisque le clear ne sert à rien si le contenu de .planche est plus haut que la miniature)), alors le bloc contenu prend toute la largeur disponible. En fixant une hauteur plus grande que son contenu au menu, j'obtiens ceci, ce qui montre que le contenu de #contenu essaye de prendre toute la place disponible (puisqu'il se colle au menu flottant (ce qu'on ne voyait pas dans l'image précédente)). (D'ailleurs le fieldset en haut semble respecter la marge à gauche de 170 pixels plutôt que de se coller au menu flottant.)
Si le bloc .finDePlanche est supprimé, l'image sort du bloc .planche, normal, et le bloc respecte sa marge à gauche. De même, si le contenu de .planche est plus haut que la miniature, le bloc s'affiche comme il faut. Il semblerait donc que le problème vienne du clear.
Peut-être que j'ai mal codé mon X.H.T.M.L. ou que mon C.S.S. est foireux, je ne sais pas, mais si vous savez, dites-le-moi argh j'en peux plus d'essayer plein de choses pour voir que ça ne fonctionne jamais sous I.E. (pourtant c'est simple comme disposition).
J'ai créé une page Web statique qui devrait correspondre à la page dynamique (étant donné que la page en question est un outil d'administration du site, je préfère ne pas vous passer la vraie U.R.L., bandes de malins (de toute façon, il faut un mot de passe pour y accéder )). Les feuilles de style commun.css et admin.css contiennent le code C.S.S. foireux.
Modifié par Linconnudujardin (24 Jun 2008 - 00:46)
Je suis en train de construire un site Web et j'ai un problème avec un bloc contenant un bloc flottant.
L'architecture de la page est simple : en haut une barre qui prend toute la largeur de la page, sur la gauche un menu flottant (à gauche donc) de 150 pixels de large (140 pixels de largeur + 5 pixels de padding à gauche et à droite) et sur le reste de la page un bloc avec une marge à gauche de 170 pixels (pour l'écarter du menu).
Ici un aperçu de la page sous Firefox 3 (on voit bien en haut la barre, à gauche le menu et le bloc contenu à droite qui contient d'autres blocs).
Le problème se trouve au niveau du bloc intitulé « Planche 1 » (voir l'aperçu ci-dessus). En effet, celui-ci contient une image (à droite). Celle-ci est encapsulée dans un bloc ayant la classe miniature permettant à l'image de flotter à droite :
div.planche div.miniature {
float: right;
}
(div.planche permet de sélectionner le bloc intitulé « Planche 1 », qu'on appellera .planche.)
Le bloc .planche contient à sa fin un bloc ayant la classe finDePlanche
div.finDePlanche {
clear: right;
}
pour éviter que l'image ne dépasse du bloc .planche.
Seulement, Internet Explorer (j'ai testé avec I.E. 6 et un ami m'a dit que c'était pareil sous I.E. 7) me fait des misères : si le contenu du bloc .planche n'est pas plus haut que la miniature (autrement dit, si .finDePlanche est utile (puisque le clear ne sert à rien si le contenu de .planche est plus haut que la miniature)), alors le bloc contenu prend toute la largeur disponible. En fixant une hauteur plus grande que son contenu au menu, j'obtiens ceci, ce qui montre que le contenu de #contenu essaye de prendre toute la place disponible (puisqu'il se colle au menu flottant (ce qu'on ne voyait pas dans l'image précédente)). (D'ailleurs le fieldset en haut semble respecter la marge à gauche de 170 pixels plutôt que de se coller au menu flottant.)
Si le bloc .finDePlanche est supprimé, l'image sort du bloc .planche, normal, et le bloc respecte sa marge à gauche. De même, si le contenu de .planche est plus haut que la miniature, le bloc s'affiche comme il faut. Il semblerait donc que le problème vienne du clear.
Peut-être que j'ai mal codé mon X.H.T.M.L. ou que mon C.S.S. est foireux, je ne sais pas, mais si vous savez, dites-le-moi argh j'en peux plus d'essayer plein de choses pour voir que ça ne fonctionne jamais sous I.E. (pourtant c'est simple comme disposition).
J'ai créé une page Web statique qui devrait correspondre à la page dynamique (étant donné que la page en question est un outil d'administration du site, je préfère ne pas vous passer la vraie U.R.L., bandes de malins (de toute façon, il faut un mot de passe pour y accéder )). Les feuilles de style commun.css et admin.css contiennent le code C.S.S. foireux.
Modifié par Linconnudujardin (24 Jun 2008 - 00:46)