| Auteur | |
|---|---|
| nomieandme | |
| 28 Posts |
Bonjour à tous J'ai une div header avec une image en background, une div aside1 en table-cell. Sous firefox ma div aside1 arrive en dessous de mon header ( de la hauteur de l'image) si je l'enlève mon aside1 se place bien. Sur les autres navigateurs tout passe. j'ai essayé de glaner des infos sur google mais rien n'y fait. Voici mes codes
Si un expert en css peut m'expliquer et corriger le phénomène ?? D'avance Merci |
| gc-nomade | |
gcyrillus en mode portable 911 Posts |
Bonjour, Tu place en display:table-cell; 2 div imbriqué -> ce n'est pas logique. Le div enfant(en table-cell) est adjacent à une image, qui ne peut en aucun cas se comporter comme une cellule de tableau (table-cell;). -> formatage comme un tableau impossible. Pour reproduire un affichage de type tableau il te faut au moins un conteneur en display:table; (.. il y a toute une famille: table-caption, table-row, etc.) et au moins un élément enfant en display:table-cell;, à partir de 2 tu peut visuellement aligner verticalement leur contenu respectifs. ex:
D'un autre coté, ton image en display:inline-block; peut s'aligner a un autre élément de type "en ligne" ou inline-block; ce qui ferait:
Ou aussi mettre l'image en float et laisser aside se positionner a coté dans le fllux ou le faire flotter aussi. Float et display ne se cumulent pas, float l'emporte. Float n’étire pas son conteneur et fait un saut de ligne si devant lui il y a un contenu non flottant, voir "float", "clear" ou "contexte de formatage/layout" en général. Il y a plein de petite chose que tu ne connais pas encore, prend le temps de comprendre ce que chaque règle implique et évite de mélanger celle-ci ou des techniques un peu plus complexes. float ou display, il faut choisir Cordialement, GC GC rien , mais GC encore ... |
| nomieandme | |
| 28 Posts |
Bonjour Et merci d'avoir répondu : ben j'ai choisi : float le display table:parent existait mais je ne l'ai pas mentionné dans mon post. en fait j'avais une div globale (soleil) avec le display:table parent premier niveau : le header qui devait se mettre à côté d'un aside (en table-cell) deuxième niveau : le content avec un autre aside ( en table-cell aussi) troisième niveau : puis le footer Par contre je ne comprends pas pourquoi attribuer display:table à header au final j'ai tout repositionné dans le flux en flot et cela marche sur FF oui clear flot je connais aussi. j'avais acheté l'excellent livre html5 et css3. merci je vais relire attentivement ce que tu m'as écris tout de même et retesté deux ou 3 trucs. En effet j'ai deux div imbriquées. Ceci dit ce qui est bizarre c'est ce que cela marchait sur les autres navigateurs : allez comprendre Modifié par nomieandme (22 Feb 2012 - 17:19) |
| gc-nomade | |
gcyrillus en mode portable 911 Posts |
nomieandme a écrit : Disons que ton css et html n’étaient pas cohérent et que j'ai simplement fait un "dessin".. Sur le fond, parent et enfant en display:table-cell, ça le fait pas ++ GC rien , mais GC encore ... |