28173 sujets

CSS et mise en forme, CSS3

Bonjour,

Après avoir parcouru le net, acheté le livre de monsieur Goetter (acheté exprès pour essayer de remédier à mon problème), et finalement être tombé sur l'article de Laurent Denis sur blog & blues, j'ai enfin trouvé comment faire 3 colonnes de hauteur identique, sans passer par une astuce de background-color.

Du coup, avant de modifier tout le css de mon site, je me fais une petite page vite fait pour tester, tout fonctionne à merveille, je me dis "enfin, après tout ce temps".

Bref, je recode direct le css (et html aussi, histoire d'ordre des div) de mon site, j'upload, et là j'ai plein de décalages...

je vérifie que ce ne soit pas les margin ou padding, non.
je vérifie que je n'ai pas modifié la largeur des colonnes sans faire exprès, non.
j'essaye de faire le décalage inverse (qui normalement aurait du superposer les colonnes) pour que les colonnes soient collées entre elles, mais ça ne marche pas.


Conclusion, ça me désespère, j'ai remis mon css comme avant, donc je peux pas vous montrer réellement à quoi ressemble ce décalage, j'ai passé toute la nuit dessus, j'ai pas le courage de remettre le code.
En revanche, j'ai ma page "test" où vous pouvez voir le code que j'utilise pour obtenir ces 3 colonnes de hauteur identique.
http://www.peace-rasta.com/test1.php

(le site normal est tout simplement sur index.php à la place de test1.php)


Bon voilà, sincérement je ne pense pas avoir fait d'erreur bête, d'oublie ou autre qui puisse faire bugger mon css.
Si quelqu'un à la bonne volonté de jeter un oeil sur pourquoi ça pourrait bugger, je lui serais très reconnaissant.

Personnellement j'en suis arrivé à la conclusion qu'on ne peut pas utiliser cette technique avec des images en background.
C'est la seule chose qui diffère entre mon code css de test (background-color) et mon css normal (background-image)

Merci bien

Rasta

NB: ah oui, je n'ai pas non plus de border dans le css de mon site, mais j'ai essayé d'en rajouter ça marche pas non plus, donc ya vraiment que les images en background qui peuvent me faire tout foirer :s
Vous pensez que les background-image, dans des <div> display: table; , peuvent prendre des margin ?

(en fait c'est la colonne du milieu qui qui se décale d'environ 10px sur la droite, laissant apparaitre la couleur de fond de la colonne de gauche qui est normalement cachée par l'image de fond de cette meme colonne de gauche)



pfff je m'explique mal, vais aller dormir...
ça m'aidera peut etre à trouver une autre solution pour avoir une hauteur extensible des 3 colonnes.


edit: je suis sous firefox derniere version, et ça m'est égal que ça s'affiche mal sur les autres navigateurs, ce n'est pas un site destiné à attirer les gens, c'est seulement pour moi, pour apprendre le php
Modifié par Rasta (28 May 2007 - 02:36)
merci, j'avais deja entendu parler de la solution javascript, mais j'aurais préféré le faire en css

mais bon si c'est impossible, ce lien pourra surement m'aider oui Smiley cligne

merci bien en tout cas
Bonjour,

Pourquoi pas les colonnes factices ou un tableau? ce serait plus simple d'autant que malheureusement display: table et display: table-cell ne sont pas très bien supportés par tous les navigateurs !
Bonjour,

Faire trois colonnes de même hauteur avec trois divs ou autre éléments, sans passer par un tableau dans le code HTML, est tout à fait possible en CSS. C'est d'ailleurs la solution utilisée sur ta page de test, à base de display: table-cell.

Ceci dit, Internet Explorer ne comprend pas display:table-cell, aussi bien dans sa version 6 que dans sa version 7. Donc si tu utilises display: table-cell, il faudra nécessairement doubler (via un commentaire conditionnel pour viser spécifiquement Internet Explorer 7 et inférieurs) par un autre type de positionnement CSS, par exemple avec les flottants, ce qui demandera de ruser pour les colonnes de même hauteur (technique des colonnes factices, avec une image de fond répétée en hauteur). Partant, et à moins que l'utilisation de display: table-cell sur Firefox, Opera, Safari et les autres n'apporte un avantage intéressant, autant utiliser la technique CSS alternative à display: table-cell directement pour tous les navigateurs, non ?

De plus, je constate que ta mise en page à une largeur fixe en pixels. Dans ces conditions, utiliser la technique des colonnes factices est tout à fait trivial. Je ne vois pas pourquoi il faudrait chercher à l'éviter.

Au passage : Un design fluide avec trois «colonnes», grâce au positionnement flottant.
salut,

ma page de test fonctionne correctement, mais utilise juste une couleur de fond.

Mon site en revanche a des images de fond, et je n'arrive pas à adapter la technique de Laurent Denis sur ce css.

Aussi, ça m'est égale que ça ne fonctionne pas sur IE, car ce site est uniquement visité par moi meme, et ne recherche pas à etre connu, puisque c'est seulement pour apprendre à coder en php que je l'ai fait.
Etant donné que j'utilise firefox, no problemo.

pour la technique du flottant j'irais jeter un oeil merci.
Modifié par Rasta (27 May 2007 - 14:26)
Florent V. a écrit :
Bonjour,

Faire trois colonnes de même hauteur avec trois divs ou autre éléments, sans passer par un tableau dans le code HTML, est tout à fait possible en CSS. C'est d'ailleurs la solution utilisée sur ta page de test, à base de display: table-cell.

Ceci dit, Internet Explorer ne comprend pas display:table-cell, aussi bien dans sa version 6 que dans sa version 7. Donc si tu utilises display: table-cell, il faudra nécessairement doubler (via un commentaire conditionnel pour viser spécifiquement Internet Explorer 7 et inférieurs) par un autre type de positionnement CSS, par exemple avec les flottants, ce qui demandera de ruser pour les colonnes de même hauteur (technique des colonnes factices, avec une image de fond répétée en hauteur). Partant, et à moins que l'utilisation de display: table-cell sur Firefox, Opera, Safari et les autres n'apporte un avantage intéressant, autant utiliser la technique CSS alternative à display: table-cell directement pour tous les navigateurs, non ?

De plus, je constate que ta mise en page à une largeur fixe en pixels. Dans ces conditions, utiliser la technique des colonnes factices est tout à fait trivial. Je ne vois pas pourquoi il faudrait chercher à l'éviter.

Au passage : Un design fluide avec trois «colonnes», grâce au positionnement flottant.


énorme merci pour cet article, je l'avais deja lu, en vitesse, j'avais du zapper.

En tout cas ça marche, je suis sauvé et ça m'a pris 5 minutes.

merci merci

encore merci Smiley smile

si vous voulez voir le résultat sur une page étirée Smiley smile :
http://www.peace-rasta.com/infos.php?alliance=cccp
Modifié par Rasta (28 May 2007 - 02:40)