¿Cómo construir un Diseño de 2 columnas (Fijo-Fluido) con Twitter Bootstrap?
¿Es posible crear un Diseño de 2 columnas (Fijo-Fluido) (http://www.dynamicdrive.com/style/layouts/item/css-liquid-layout-21-fixed-fluid / ) con Twitter Bootstrap (http://twitter.github.com/bootstrap/)?
¿Tiene alguna solución?
3 answers
- Otra Actualización -
Desde Twitter Bootstrap versión 2.0-que vio la eliminación de la clase .container-fluid
- no ha sido posible implementar un diseño fluido fijo de dos columnas usando solo las clases bootstrap-sin embargo, he actualizado mi respuesta para incluir algunos pequeños cambios CSS que se pueden hacer en su propio código CSS que harán esto posible
Es posible implementar una estructura de fluido fijo utilizando el CSS que se encuentra a continuación y ligeramente código HTML modificado tomado del Bootstrap de Twitter Andamios: diseños página de documentación:
HTML
<div class="container-fluid fill">
<div class="row-fluid">
<div class="fixed"> <!-- we want this div to be fixed width -->
...
</div>
<div class="hero-unit filler"> <!-- we have removed spanX class -->
...
</div>
</div>
</div>
CSS
/* CSS for fixed-fluid layout */
.fixed {
width: 150px; /* the fixed width required */
float: left;
}
.fixed + div {
margin-left: 150px; /* must match the fixed width in the .fixed class */
overflow: hidden;
}
/* CSS to ensure sidebar and content are same height (optional) */
html, body {
height: 100%;
}
.fill {
min-height: 100%;
position: relative;
}
.filler:after{
background-color:inherit;
bottom: 0;
content: "";
height: auto;
min-height: 100%;
left: 0;
margin:inherit;
right: 0;
position: absolute;
top: 0;
width: inherit;
z-index: -1;
}
He mantenido la respuesta a continuación, a pesar de que la edición para admitir 2.0 la convirtió en una solución fluida-fluida, ya que explica los conceptos detrás de hacer que la barra lateral y el contenido tengan la misma altura (una parte significativa de la pregunta de los askers comentarios)
Importante
La respuesta a continuación es fluid-fluid
Actualización Como señaló @JasonCapriotti en los comentarios, la respuesta original a esta pregunta (creada para v1.0) no funcionó en Bootstrap 2.0. Por esta razón, he actualizado la respuesta para apoyar Bootstrap 2.0
Para asegurarnos de que el contenido principal llene al menos el 100% de la altura de la pantalla, necesitamos establecer la altura de html
y body
al 100% y cree una nueva clase css llamada .fill
que tenga una altura mínima del 100%:
html, body {
height: 100%;
}
.fill {
min-height: 100%;
}
Luego podemos agregar la clase .fill
a cualquier elemento que necesitemos para ocupar el 100% de la altura de sceen. En este caso lo añadimos al primer div:
<div class="container-fluid fill">
...
</div>
Asegurarse de que la Barra lateral y las columnas de Contenido tengan la misma altura es muy difícil e innecesario. En su lugar, podemos usar el pseudo selector ::after
para agregar un elemento filler
que dará la ilusión de que las dos columnas tienen lo mismo altura:
.filler::after {
background-color: inherit;
bottom: 0;
content: "";
right: 0;
position: absolute;
top: 0;
width: inherit;
z-index: -1;
}
Para asegurarnos de que el elemento .filler
está posicionado relativamente al elemento .fill
necesitamos agregar position: relative
a .fill
:
.fill {
min-height: 100%;
position: relative;
}
Y finalmente añadir el estilo .filler
al HTML:
HTML
<div class="container-fluid fill">
<div class="row-fluid">
<div class="span3">
...
</div>
<div class="span9 hero-unit filler">
...
</div>
</div>
</div>
Notas
- Si necesita que el elemento a la izquierda de la página sea el relleno, entonces necesita cambiar
right: 0
aleft: 0
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-08-28 07:32:58
Actualizar 2018
Bootstrap 4
Ahora que BS4 es flexbox, el fluido fijo es simple. Simplemente establezca el ancho de la columna fija y use la clase .col
en la columna de fluido.
.sidebar {
width: 180px;
min-height: 100vh;
}
<div class="row">
<div class="sidebar p-2">Fixed width</div>
<div class="col bg-dark text-white pt-2">
Content
</div>
</div>
Http://www.codeply.com/go/7LzXiPxo6a
Bootstrap 3..
Un enfoque para un diseño fixed-fluid es usar consultas de medios que se alinean con los puntos de interrupción de Bootstrap para que solo use el ancho fijo las columnas son pantallas más grandes y luego permiten que el diseño se apile responsablemente en pantallas más pequeñas...
@media (min-width:768px) {
#sidebar {
min-width: 300px;
max-width: 300px;
}
#main {
width:calc(100% - 300px);
}
}
Trabajo Bootstrap 3 Fluido fijo Demo
Preguntas y Respuestas relacionadas:
Columna de ancho fijo con un contenedor-fluido en bootstrap
¿Cómo se fija la columna izquierda y se puede desplazar hacia la derecha en Bootstrap 4, responsivo?
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-04-17 06:11:19
La respuesta aceptada parece ser fluido-fluido. Aquí hay una respuesta que en realidad es de fluido fijo:
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 11:46:57