Eu quero o exterior div
, que é preto, para envolver seus div
s flutuantes dentro dele. Não quero usar style='height: 200px
no div
com o outerdiv
id, pois quero que seja automaticamente a altura de seu conteúdo (por exemplo, os flutuantes div
).
<div id='outerdiv' style='border: 1px solid black;background-color: black;'>
<div style='width=300px;border: red 1px dashed;float: left;'>
<p>xxxxxxxxxxxxxxxxxxxxxxxxxxxxx</p>
</div>
<div style='width=300px;border: red 1px dashed;float: right;'>
<p>zzzzzzzzzzzzzzzzzzzzzzzzzzzzz</p>
</div>
Como fazer isso?
HTML/CSS
nunca foi uma boa tecnologia de IU, então coisas contra-intuitivas são bastante comuns :)float
solução. Funciona muito bem com as outras falhas, especialmente quando emparelhado com o Twitter Bootstrap.Em primeiro lugar, eu recomendo fortemente que você faça seu estilo CSS em um arquivo CSS externo, ao invés de fazê-lo embutido. É muito mais fácil de manter e pode ser mais reutilizável usando classes.
Resolvendo a resposta de Alex (e clearfix de Garret) de "adicionar um elemento no final com clear: both", você pode fazer assim:
Isso funciona (mas como você pode ver, CSS inline não é tão bonito).
fonte
Você pode querer tentar flutuadores de fechamento automático, conforme detalhado em http://www.sitepoint.com/simple-clearing-of-floats/
Então, talvez tente
overflow: auto
(geralmente funciona) ouoverflow: hidden
, como disse o alex.fonte
Eu sei que algumas pessoas vão me odiar, mas eu descobri
display:table-cell
para ajudar nesses casos.É muito mais limpo.
fonte
Em primeiro lugar, você não deve usar
width=300px
essa configuração de atributo para a tag, não CSS, usewidth: 300px;
.Eu sugeriria aplicar a
clearfix
técnica no#outerdiv
. Clearfix é uma solução geral para limpar 2 divs flutuantes para que o div pai se expanda para acomodar os 2 divs flutuantes.Aqui está um exemplo de sua situação e o que Clearfix faz para resolvê-la.
fonte
Use jQuery:
Definir altura pai = offsetHeight filho.
fonte
Usar
clear: both;
Passei mais de uma semana tentando descobrir isso!
fonte