Bonjour,
Débutant en CSS, je n'arrive pas à résoudre un problème qui vous semblera probablement trivial.
Soient deux conteneurs #conteneur1{position:relative;display:block;width:100%;} et #conteneur2 (idem) qui se suivent verticalement.
J'ai besoin d'inscrire dans #conteneur1 deux contenus alignés (#bloc1 et #bloc2) tels que:
- #bloc1 possède une largeur absolue (width:150px) et une hauteur automatique;
- #bloc2 dispose de la largeur restant (100%-150px) et possède une hauteur automatique;
- #conteneur1 reçoive la hauteur maxi(#bloc1,#bloc2) -- de telle sorte que #conteneur2 s'empile derrière.
C'est donc une structure bateau du genre:
Code :
- +----------------+
- |+----++--------+|
- || || ||
- || || ||
- || || ||
- |+----++--------+|
- +----------------+
- +----------------+
- | |
- +----------------+
|
Mon problème est que je n'arrive pas à spécifier les paramètres position et display de #bloc1 et #bloc2. En effet:
- avec {display:inline}, j'obtiens l'enchaînement horizontal mais la propriété {width:150px} n'est pas opérationnelle pour #bloc1 : sa largeur est automatique (intrinsèquement calculée). Je pourrais peut-être repositionner #bloc2 {position:relative?/absolute?;left:150px;} mais je perdrais de toute façon la surface et le background réel de #bloc1 ;
- avec {display:block}, je peux affecter un width aux blocs et tricher avec {position:absolute;} pour les placer à la suite -- #bloc1{left:0;top:0} et #bloc2{left:150px;top:0} --, mais alors la hauteur "finale" de #conteneur1 devient nulle car la spécificiation {position:absolute;} a retiré #bloc1 et #bloc2 du "flux normal". Du coup, #conteneur2 ne suit plus #conteneur1 mais le chevauche salement.
Je suppose qu'il y a une meilleure alternative (et j'aimerais éviter de tricher avec margin de #bloc2). Connaissez-vous une solution en pur positionnement de blocs?
Merci d'aider un newbie.
---------------
NOUVEAU! Le guide de l'édition en version ebook : http://marcautret.free.fr/autret/150q-ebook/