Minha exigência é simples: 2 colunas onde a correta tem um tamanho fixo . Infelizmente, não consegui encontrar uma solução funcional, nem no stackoverflow nem no Google. Cada solução descrita lá falha se eu implementar no meu próprio contexto. A solução atual é:
div.container {
position: fixed;
float: left;
top: 100px;
width: 100%;
clear: both;
}
#content {
margin-right: 265px;
}
#right {
float: right;
width: 225px;
margin-left: -225px;
}
#right, #content {
height: 1%; /* fixed for IE, although doesn't seem to work */
padding: 20px;
}
<div class="container">
<div id="content">
fooburg content
</div>
<div id="right">
test right
</div>
</div>
Eu recebo o seguinte com o código acima:
|----------------------- -------|
| fooburg content | |
|-------------------------------|
| | test right |
|----------------------- -------|
Por favor informar. Muito Obrigado!
clear: both
dentro de qualquer uma das colunas não afetará os flutuadores externos. Isso não é "frágil", a menos que você coloque o espaço livre no mesmo nível das colunas entre as colunas; se você colocar no final, nenhum dano será causado.Consulte http://www.alistapart.com/articles/negativemargins/ , isto é exatamente o que você precisa ( exemplo 4 lá).
fonte
É melhor evitar colocar a coluna da direita antes da esquerda, basta usar uma margem direita negativa.
E seja "responsivo" incluindo uma configuração @media para que a coluna da direita fique abaixo da esquerda em telas estreitas.
fonte
Solução mais simples e flexível até agora utilizada
table display
:HTML, div esquerdo aparece em primeiro lugar, div direito aparece em segundo ... lemos e escrevemos da esquerda para a direita, para que não faça sentido colocar os divs da direita para a esquerda
CSS:
Exemplos de casos:
fonte
table
comtd
s certamente não é!Gostaria de sugerir uma solução ainda não mencionada: use CSS3
calc()
para misturar%
epx
unidades.calc()
tem excelente suporteAtualmente, e permite a construção rápida de layouts bastante complexos.Aqui está um link do JSFiddle para o código abaixo.
HTML:
CSS:
E aqui está outro JSFiddle demonstrando esse conceito aplicado a um layout mais complexo. Eu usei o SCSS aqui, pois suas variáveis permitem código flexível e auto-descritivo, mas o layout pode ser facilmente recriado em CSS puro, se não houver problema em ter valores "codificados".
fonte
Esta é uma solução genérica, ordenada por fonte HTML, em que:
Coluna fixa / segunda à direita
Coluna fixa / segunda à esquerda
A solução alternativa é usar display: table-cell ; o que resulta em colunas de altura igual.
fonte
Ei, o que você pode fazer é aplicar uma largura fixa aos dois contêineres e, em seguida, usar outra classe div, onde estiver claro: ambos, como
coloque uma div clara sob o recipiente esquerdo e direito.
fonte
Simplifiquei: editei a resposta de jackjoe. A altura auto etc não é necessário, eu acho.
CSS:
HTML:
Lorem ipsum dolor sente-se entre os elites consectetuer adipiscing. Phasellus varius eleifend. Lorem ipsum dolor sit amet, consectetuer adipiscing elit.Phasellus varius eleifend.
fonte