2011-01-06 3 views
3

Je travaille sur un site Web qui utilise deux colonnes à l'intérieur d'un conteneur. Le conteneur a un arrière-plan blanc qui doit s'étendre au fond de la colonne la plus haute, donc j'utilise la méthode holy grail pour cela.Débordement d'un conteneur div horizontalement mais pas verticalement

Cependant, les deux colonnes doivent être placées de manière à ce qu'une partie de celles-ci dépasse le fond blanc (this example utilise une hauteur fixe, qui devrait être fluide). Pour autant que je sache, cela ne peut être fait en mettant le débordement à visible, mais cela brise la hauteur égale des colonnes.

Comment résoudre ce problème avec le moins d'éléments supplémentaires possible?

Répondre

5

La solution la plus simple dans ce cas semble être d'ajouter <br style="clear:both" /> avant l'étiquette de fermeture pour #container.

Vous pouvez le remplacer par <br class="clearfix" /> et .clearfix{clear:both} si vous le souhaitez.

+0

Wow, c'était aussi simple que ça? J'ai toujours fait de mon mieux pour éviter les éléments de clearfix vides (99% du temps il y a une solution plus élégante) mais c'est évidemment l'exception à cette règle. Merci beaucoup! –

1

solution est d'utiliser des éléments inline-block ..

Css

.container{ 
    width:300px; 
    background-color:#ccc; 
    margin:0 auto; 
    border:1px solid red; 
} 
.container > div{ 
    width:150px; 
    display:inline-block; 
    vertical-align:top; 
} 
.inner{ 
    background-color:#666; 
    margin-top:10px; 
    width:130px; 
} 
.left .inner{ 
    margin-left:-10px; 
} 
.right .inner{ 
    margin-right:-10px; 
    margin-left:auto; 
} 

HTML

<div class="container"> 
    <div class="left"> 
     <div class="inner">left 1st inner panel</div> 
     <div class="inner">left 2nd inner panel</div> 
    </div><div class="right"> 
     <div class="inner">right 1st inner panel</div> 
     <div class="inner">right 2nd inner panel with arbitrary text to show the increase in parent elements</div> 
    </div> 
</div> 

view demo

+0

L'autre réponse a déjà fonctionné, mais +1 pour la bonne solution. Malheureusement, je dois encore soutenir IE7 (pas de Dieu merci 6), qui ne peut pas gérer les blocs en ligne très bien. –

+1

@Stephan, Dieu merci pour IE6 obtenir enfin hors de l'image .. En ce qui concerne IE7 et 'inline-block' jeter un oeil à http://www.brunildo.org/test/InlineBlockLayout.html Juste pour les options futures;) –

Questions connexes