Não é informação suficiente. Qual a largura das camadas?
Josh Stodola
8
Eu teria display: inline-blockesses caras em vez de flutuar neles. Se a largura deles for menor que a largura do contêiner, eles ficarão próximos um do outro.
E se você quiser que todos eles se expandam à medida que a página é expandida?
precisa saber é o seguinte
31
@imray basta usar% em vez de px
TehTris
9
Você poderia explicar por que usar <br style="clear: left;" />esse estilo em particular.
Mike de Klerk
2
@MikedeKlerk é uma correção clara, para evitar o colapso dos pais.
precisa
como o @Nick Craver explicou, você deve atribuir a todos os seus elementos a propriedade float: left . Isso está acontecendo porque a propriedade float especifica como o elemento é colocado ao longo do lado esquerdo ou direito do contêiner pai .
Mas DIV é um elemento de nível de bloco, certo? Então, como é que eles são colocados lado a lado e não nas próximas linhas (como os elementos no nível do bloco começam e terminam com uma quebra de linha). O float também tem algum outro efeito?
Ashwin 31/03
26
flutuar todos eles à esquerda
verifique se uma largura é especificada para que todos possam caber em seu contêiner (outra div ou a janela), caso contrário eles serão agrupados
aquele código que alguém postou lá em cima, deu certo !!! quando colo antes de fechar o DIV do contêiner, ajuda a evitar que todos os DIVs subseqüentes se sobreponham aos DIVs que criei lado a lado na parte superior!
<div><divclass="left"></div><divclass="left"></div>
...
...<divclass="left"></div><!-- then magic trick comes here --><brstyle="clear: left;"/></div>
O ponto é que minha resposta é a mais correta e, quando uma nova pessoa estiver pesquisando este Q na internet, ela encontrará minha resposta, que seria a mais útil para eles.
Arwen 17/10
2
Isso pode ser. Mas falta uma explicação. Não há problema neste site copiar outras respostas, mesclando várias respostas parciais em uma única resposta combinada. Você pode editar e concluir o seu. No entanto, os novos usuários têm algumas restrições (voto positivo, poucos links), por isso recomendo não focar em perguntas antigas e respondidas.
Cfi
@ CFI obrigado, vou mantê-lo para referência futura.
Arwen 18/10
10
Normalmente, apenas flutuo o primeiro para a esquerda e o segundo para a direita. O terceiro alinha automaticamente entre eles então.
Isso não causa confusão quando o navegador é redimensionado?
precisa saber é o seguinte
10
<style>.left-column{float:left;width:30%;background-color:red;}.right-column{float:right;width:30%;background-color:green;}.center-column{margin:auto;width:30%;background-color:blue;}</style><divid="container"><sectionclass="left-column">THIS IS COLUMN 1 LEFT</section><sectionclass="right-column">THIS IS COLUMN 3 RIGHT</section><sectionclass="center-column">THIS IS COLUMN 2 CENTER</section></div>
a vantagem dessa maneira é que você pode definir cada largura de coluna independente da outra, desde que a mantenha abaixo de 100%, se você usar 3 x 30%, os 10% restantes serão divididos como um espaço divisor de 5% entre as colunas
ATUALIZADO: É claro que, para usar esta técnica e devido ao posicionamento absoluto, você precisa colocar as divs em um contêiner e fazer um pós-processamento para definir a altura de if, algo como isto:
Claro que, para usar esta técnica e devido ao posicionamento absoluto você precisa colocar os divs em um recipiente e fazer um pós-processamento para definir a altura de se, algo como isto:
jpbourbon
jQuery (documento) .ready (função () {jQuery ('. main'). height (Math.max (jQuery ('. coluna-esquerda'). height (), jQuery ('. coluna-direita'). height (), jQuery ('. coluna-centro'). height ()));}); Não é a coisa mais incrível do mundo, mas pelo menos não quebra nos IEs mais antigos.
precisa saber é o seguinte
4
Mas isso funciona no Chrome?
Faça flutuar cada div e defina clear; ambos para a linha. Não há necessidade de definir larguras, se você não quiser. Funciona no Chrome 41, Firefox 37, IE 11
<divclass="stack"><divclass="row"><divclass="col">
One
</div><divclass="col">
Two
</div></div><divclass="row"><divclass="col">
One
</div><divclass="col">
Two
</div><divclass="col">
Three
</div></div></div>
@Leniel esse método é bom, mas você precisa adicionar largura a todas as divs flutuantes. Eu diria que torná-los iguais ou atribuir largura fixa. Algo como
.content-wrapper > div { width:33.3%;}
você pode atribuir nomes de classe a cada div em vez de adicionar inline style, o que não é uma boa prática.
Certifique-se de usar uma div clearfix ou div limpa para evitar que o conteúdo a seguir permaneça abaixo dessas div.
Você pode encontrar detalhes de como usar o clearfix div aqui
display: inline-block
esses caras em vez de flutuar neles. Se a largura deles for menor que a largura do contêiner, eles ficarão próximos um do outro.Respostas:
Apenas dê a eles uma largura e
float: left;
, aqui está um exemplo:fonte
<br style="clear: left;" />
esse estilo em particular.A maneira moderna é usar o flexbox CSS , consulte as tabelas de suporte .
Você também pode usar a grade CSS , consulte as tabelas de suporte .
fonte
É da mesma maneira que você faz para os dois divs, apenas flutue o terceiro para a esquerda ou direita também.
fonte
flutuar todos eles à esquerda
verifique se uma largura é especificada para que todos possam caber em seu contêiner (outra div ou a janela), caso contrário eles serão agrupados
fonte
aquele código que alguém postou lá em cima, deu certo !!! quando colo antes de fechar o DIV do contêiner, ajuda a evitar que todos os DIVs subseqüentes se sobreponham aos DIVs que criei lado a lado na parte superior!
tadaa !! :)
fonte
Flutue todos os três divs para a esquerda. Como aqui:
fonte
Normalmente, apenas flutuo o primeiro para a esquerda e o segundo para a direita. O terceiro alinha automaticamente entre eles então.
fonte
a vantagem dessa maneira é que você pode definir cada largura de coluna independente da outra, desde que a mantenha abaixo de 100%, se você usar 3 x 30%, os 10% restantes serão divididos como um espaço divisor de 5% entre as colunas
fonte
você pode flutuar: deixou para todos eles e defina a largura para 33.333%
fonte
tente adicionar "display: block" ao estilo
fonte
Não vi a resposta do bootstrap, então quanto vale a pena:
deixe o Bootstrap descobrir as porcentagens. Eu gosto de limpar os dois, só por precaução.
fonte
Eu prefiro esse método, os carros alegóricos são pouco suportados nas versões mais antigas do IE (realmente? ...)
ATUALIZADO: É claro que, para usar esta técnica e devido ao posicionamento absoluto, você precisa colocar as divs em um contêiner e fazer um pós-processamento para definir a altura de if, algo como isto:
Não é a coisa mais incrível do mundo, mas pelo menos não quebra nos IEs mais antigos.
fonte
Mas isso funciona no Chrome?
Faça flutuar cada div e defina clear; ambos para a linha. Não há necessidade de definir larguras, se você não quiser. Funciona no Chrome 41, Firefox 37, IE 11
Clique para JS Fiddle
HTML
CSS
fonte
Aqui está como eu consegui fazer algo semelhante a isso dentro de um
<footer>
elemento:CSS:
fonte
@Leniel esse método é bom, mas você precisa adicionar largura a todas as divs flutuantes. Eu diria que torná-los iguais ou atribuir largura fixa. Algo como
você pode atribuir nomes de classe a cada div em vez de adicionar
inline style
, o que não é uma boa prática.Certifique-se de usar uma div clearfix ou div limpa para evitar que o conteúdo a seguir permaneça abaixo dessas div.
Você pode encontrar detalhes de como usar o clearfix div aqui
fonte