Estoy tratando de hacer un diseño de altura completa de dos columnas con twitter bootstrap 3. Parece que twitter bootstrap 3 no admite diseños de altura completa. Lo que quiero hacer:
+-------------------------------------------------+
| Header |
+------------+------------------------------------+
| | |
| | |
|Navigation | Content |
| | |
| | |
| | |
| | |
| | |
| | |
+------------+------------------------------------+
Si el contenido crece, la navegación también debería crecer.
- La altura del 100% para cada padre no funciona porque existe el caso en el que el contenido es una línea.
- posición absoluta parece ser el camino equivocado
display: table
ydisplay:table-cell
resolver el problema, pero no es elegante
html:
<div class="container">
<div class="row">
<div class="col-md-3"></div>
<div class="col-md-9"></div>
</div>
</div>
¿Hay alguna manera de hacerlo con las clases predeterminadas de bootstrap 3 de twitter ?
html
css
twitter-bootstrap
uladzimir
fuente
fuente
Respuestas:
Editar: en Bootstrap 4 , las clases nativas pueden producir columnas de altura completa ( DEMO ) porque cambiaron su sistema de cuadrícula a flexbox. (Sigue leyendo para Bootstrap 3)
Las clases nativas de Bootstrap 3.0 no admiten el diseño que usted describe, sin embargo, podemos integrar algunos CSS personalizados que hacen uso de tablas CSS para lograr esto.
Bootply demo / Codepen
Margen:
(Relevante) CSS
El código anterior alcanzará columnas de altura completa (debido a las propiedades personalizadas de la tabla css que agregamos) y con una relación 1: 3 (Navegación: Contenido) para anchos de pantalla medios y superiores - (debido a las clases predeterminadas de bootstrap: col-md -3 y col-md-9)
NÓTESE BIEN:
1) Para no estropear las clases de columnas nativas de bootstrap, agregamos otra clase como
no-float
en el marcado y solo establecemosdisplay:table-cell
yfloat:none
en esta clase (como se aplica a las propias clases de columnas).2) Si solo queremos usar el código de la tabla css para un punto de interrupción específico (por ejemplo, anchos de pantalla medios y superiores) pero para pantallas móviles queremos volver al comportamiento de arranque habitual de forma predeterminada, entonces podemos envolver nuestro CSS personalizado dentro de un consulta de medios, diga:
Codepen demo
Ahora, para pantallas más pequeñas, las columnas se comportarán como columnas de rutina de carga predeterminadas (cada una de ellas con ancho completo).
3) Si la proporción 1: 3 es necesaria para todos los anchos de pantalla, entonces probablemente sea mejor eliminar las clases col-md- * de bootstrap del marcado porque no es así como deben usarse.
Codepen demo
fuente
Puedes lograr lo que quieres con el
padding-bottom: 100%; margin-bottom: -100%;
truco, ¿puedes verlo en este violín?Cambio un poco tu HTML, pero puedes lograr el mismo resultado con tu propio HTML con el siguiente código
fuente
Solución CSS pura
Violín de trabajo
Usando solo CSS2.1, trabaje con todos los navegadores (IE8 +), sin especificar altura ni ancho.
Eso significa que si su encabezado crece de repente, o si su navegación hacia la izquierda necesita agrandarse, no tiene que arreglar nada en su CSS.
Totalmente sensible, simple y claro y muy fácil de administrar.
Explicación: El contenedor
div
toma el 100% de la altura del cuerpo y está dividido en 2 secciones. La sección del encabezado se extenderá a la altura necesaria, yHeightTaker
tomará el resto. ¿Cómo se logra? flotando un elemento vacío a lo largo del contenedor con una altura del 100% (usando:before
), y dandoHeightTaker
un elemento vacío al final con la regla clara (usando:after
). ese elemento no puede estar en la misma línea que el elemento flotante, por lo que ha sido empujado hasta el final. que es exactamente el 100% del documento.Con eso hacemos que el
HeightTaker
tramo sea el resto de la altura del contenedor, sin indicar ninguna altura / margen específico.dentro de eso
HeightTaker
construimos un diseño flotante normal (para lograr la columna como pantalla) con un cambio menor ... tenemos unWrapper
elemento, que es necesario para que la100%
altura funcione.Actualizar
Aquí está la demostración con las clases Bootstrap. (Acabo de agregar un div a su diseño)
fuente
Pensé en un cambio sutil, que no cambia el comportamiento de arranque predeterminado. Y solo puedo usarlo cuando lo necesito:
así que puedo usarlo así:
fuente
Que yo sepa, puede utilizar hasta 5 métodos para lograr esto:
Bootstrap: No tengo mucha experiencia con él, pero no creo que proporcionen estilos para eso.
fuente
Solución moderna y muy simple:
HTML:
CSS:
fuente
Una solución CSS pura es bastante fácil y funciona como un navegador cruzado de encanto.
Simplemente agregue un gran relleno y un margen negativo igualmente grande a las columnas de navegación y contenido, luego ajuste su fila en una clase con el desbordamiento oculto.
Vista en vivo Vista de
edición
HTML
CSS
¡Buena suerte!
fuente
La solución se puede lograr de dos maneras.
Las clases que se utilizan para obtener la solución anterior no se proporcionan en bootstrap 3. display: table y display: table-cell se dan sino solo cuando se usan tablas en HTML. margen negativo y las clases de relleno tampoco están allí.
Por lo tanto, tenemos que usar CSS personalizado para lograr esto.
La siguiente es la primera solución.
Código HTML:
el css correspondiente:
La siguiente es la segunda solución.
Código HTML:
el css correspondiente:
fuente
Ok, he logrado lo mismo usando Bootstrap 3.0
Ejemplo con el último bootstrap
http://jsfiddle.net/HDNQS/1/
El HTML:
El SCSS:
fuente
content:none
y otras cosas pequeñas). Quería publicar un reemplazo de 'drop-in' que también puedo copiarpastaPor lo tanto, parece que su mejor opción es optar
padding-bottom
por lamargin-bottom
estrategia negativa .Hice dos ejemplos. Uno con
<header>
adentro.container
y otro con afuera .Ambas versiones deberían funcionar correctamente. Tenga en cuenta el uso de la siguiente
@media
consulta para que elimine el relleno adicional en pantallas más pequeñas ...Aparte de eso, esos ejemplos deberían solucionar su problema.
fuente
Hay una manera mucho más fácil de hacerlo si todo lo que le preocupa es establecer el color.
Pon esto primero o último en tu etiqueta corporal
y esto en tu css
solo está creando una forma, fijándola detrás de la página y estirándola a toda su altura. Al hacer uso de las clases de bootstrap existentes, obtendrá el ancho correcto y seguirá respondiendo.
Existen algunas limitaciones con este método ofc, pero si es para la estructura raíz de la página, es la mejor respuesta.
fuente
position: absolute
entoncesposition: fixed
?.container-fluid
. Me gustaría utilizar.container
. Ideas?.container
o.container-fluid
no tienen relevancia para esto en absoluto. el.col.col-md-2
establece el ancho usando bootstrap. Mi CSS anterior fuerza el div a la altura completa, con suficiente índice Z negativo para asegurarme de que esté detrás de todo. Como se indicó anteriormente, debería ser el primer elemento o el último en su<body>
etiquetaEscribí un CSS simple compatible con Bootstrap para crear tablas de ancho y alto completos:
Violín: https://jsfiddle.net/uasbfc5e/4/
El principio es:
El HTML:
El CSS:
fuente
0%;
a lo0;
que es totalmente diferente. Si eso sucede, puede usar1%;
en su lugar.tratar
css para la clase .fill está debajo
Para su referencia, simplemente mire el violín.
fuente
span
acol-md-
y le permite ver lo que sucede<div class="container"> <div class="row"> <div class="col-md-12">header section</div> </div> <div class="row"> <div class="col-md-4">Navigation</div> <div class="col-md-8">Content</div> </div> </div>
prueba esto
Visite http://www.sitepoint.com/building-responsive-websites-using-twitter-bootstrap/
Gracias a Syed.
fuente
Si no habrá contenido después de la fila (se toma la altura completa de la pantalla), el truco con el uso
position: fixed; height: 100%
del.col:before
elemento puede funcionar bien:fuente
Esto no se mencionó aquí con compensación.
Puede usar la posición absoluta para la barra lateral izquierda.
CSS
HTML
fuente
Prueba esto
Esto usa Bootstrap 3, por lo que no es necesario CSS adicional, etc.
fuente
¿Has visto el afijo de bootstrap en la sección de JavaScript?
Creo que sería la mejor y más fácil solución, amigo.
Echa un vistazo allí: http://getbootstrap.com/javascript/#affix
fuente
Después de experimentar con el código provisto aquí: Tutorial Bootstrap
Aquí hay otra alternativa con la última versión de Bootstrap v3.0.2:
Margen:
CSS adicional:
Muestra JSFiddle
Espero que esto ayude a cualquier persona interesada.
fuente