Tengo un div de contenedor principal que se establece al 100% de ancho. Dentro de eso, me gustaría tener dos divisiones, una de ancho fijo y la otra que ocupa el resto del espacio. ¿Cómo floto el segundo div para llenar el resto del espacio? Gracias por cualquier ayuda.
241
Respuestas:
Hay muchas formas de hacer lo que está pidiendo:
Usando la propiedad CSS
float
:Uso de la propiedad CSS
display
, que se puede utilizar para hacer quediv
s actúe como untable
:Hay más métodos, pero esos dos son los más populares.
fuente
CSS3 introdujo cajas flexibles (también conocido como caja flexible) que también pueden lograr este comportamiento.
Simplemente defina el ancho del primer div y luego asigne al segundo un
flex-grow
valor1
que le permita llenar el ancho restante del padre.jsFiddle demo
Tenga en cuenta que los cuadros flexibles no son compatibles con los navegadores antiguos, pero es una excelente opción para apuntar a los navegadores modernos (consulte también Caniuse y MDN ). Una gran guía completa sobre cómo usar las cajas flexibles está disponible en CSS Tricks .
fuente
No sé mucho acerca de las estrategias de diseño de HTML y CSS, pero si está buscando algo simple y que se ajuste automáticamente a la pantalla (como soy), creo que la solución más directa es hacer que los divs se comporten como palabras en un párrafo. Intenta especificar
display: inline-block
Puede que necesite o no especificar el ancho de los DIV
fuente
display:flex
sea la mejor solución, pero creo queinline-block
también es excelente porque funciona en más navegadores. Por cierto, es posible que deba envolver ambos divs con un<div style="white-space:nowrap">
para evitar la ruptura en el cambio de tamaño.inline-block
código.Puede usar la cuadrícula CSS para lograr esto, esta es la versión de mano larga con fines ilustrativos:
O el método más tradicional que utiliza flotante y margen.
He incluido un color de fondo en este ejemplo para ayudar a mostrar dónde están las cosas, y también qué hacer con el contenido debajo del área flotante.
No ponga sus estilos en línea en la vida real, extráigalos en una hoja de estilos.
fuente
Dale al primer div un flotador hacia la izquierda y fija con, el segundo div 100% de ancho un flotador hacia la izquierda Eso debería hacer el truco. Si desea colocar elementos debajo de él, necesita un claro: ambos en el elemento que desea colocar debajo
fuente
Esto será compatible con el navegador cruzado. Sin el margen izquierdo, se encontrará con problemas con el contenido que se ejecuta completamente hacia la izquierda si su contenido es más largo que su barra lateral.
fuente
Si no está tagetizando IE6, entonces flote el segundo
<div>
y dele un margen igual (o tal vez un poco más grande) al<div>
ancho fijo del primero .HTML:
CSS:
El margen explica la posibilidad de que el 'resto del espacio'
<div>
pueda contener más contenido que el 'ancho fijo'<div>
.No le dé al ancho fijo un fondo; si necesita verlos visiblemente como 'columnas' diferentes, use el truco Faux Columns .
fuente