Mi requisito es simple: 2 columnas donde la correcta tiene un tamaño fijo . Lamentablemente, no pude encontrar una solución que funcione, ni en stackoverflow ni en Google. Cada solución descrita allí falla si la implemento en mi propio contexto. La solución actual es:
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>
Me sale lo siguiente con el código anterior:
|----------------------- -------|
| fooburg content | |
|-------------------------------|
| | test right |
|----------------------- -------|
Por favor avise. ¡Muchas gracias!
clear: both
dentro de cualquiera de las columnas no afectará a los flotadores exteriores. Esto no es "frágil" a menos que coloque el borrado en el mismo nivel de las columnas entre las columnas, si lo coloca al final no se hace daño.Consulte http://www.alistapart.com/articles/negativemargins/ , esto es exactamente lo que necesita ( ejemplo 4 allí).
fuente
Es mejor evitar colocar la columna derecha antes que la izquierda, simplemente use un margen derecho negativo.
Y sea "receptivo" al incluir una configuración @media para que la columna derecha quede debajo de la izquierda en pantallas estrechas.
fuente
La solución más simple y flexible hasta ahora para usar
table display
:HTML, el div izquierdo es el primero, el div derecho es el segundo ... leemos y escribimos de izquierda a derecha, por lo que no tiene sentido colocar los divs de derecha a izquierda
CSS:
Ejemplos de casos:
fuente
table
contd
s no lo es.Me gustaría sugerir una solución aún no mencionada: use CSS3
calc()
para mezclar%
ypx
unidades.calc()
tiene un excelente soporte hoy en día, y permite la construcción rápida de diseños bastante complejos.Aquí hay un enlace JSFiddle para el código a continuación.
HTML:
CSS:
Y aquí hay otro JSFiddle que demuestra este concepto aplicado a un diseño más complejo. Usé SCSS aquí ya que sus variables permiten un código flexible y autodescriptivo, pero el diseño se puede volver a crear fácilmente en CSS puro si tener valores "codificados" no es un problema.
fuente
Esta es una solución ordenada genérica de origen HTML donde:
Fijo / Segunda columna a la derecha
Fijo / Segunda columna a la izquierda
La solución alternativa es usar display: table-cell ; que da como resultado columnas de igual altura.
fuente
Oye, lo que puedes hacer es aplicar un ancho fijo a ambos contenedores y luego usar otra clase div donde sea claro: ambos, como
coloque el div transparente debajo del contenedor izquierdo y derecho.
fuente
Lo he simplificado: he editado la respuesta de jackjoe. La altura automática, etc. no se requiere, creo.
CSS:
HTML:
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Phasellus varius eleifend. Lorem ipsum dolor sit amet, consectetuer adipiscing elit.Phasellus varius eleifend.
fuente