Estoy usando Twitter Bootstrap 2.0.1 en un proyecto Rails 3.1.2, implementado con bootstrap-sass. Estoy cargando bootstrap.css
los bootstrap-responsive.css
archivos y, así como el bootstrap-collapse.js
Javascript.
Tengo un diseño fluido con una barra de navegación similar al ejemplo . Esto sigue las instrucciones de "variación receptiva" de la barra de navegación aquí . Funciona bien: si la página es más estrecha que unos 940 px, la barra de navegación se colapsa y muestra un "botón" en el que puedo hacer clic para expandir.
Sin embargo, mi barra de navegación se ve bien hasta unos 550px de ancho, es decir, no es necesario contraerla a menos que la pantalla sea muy estrecha.
¿Cómo le digo a Bootstrap que solo colapse la barra de navegación si la pantalla tiene menos de 550px de ancho?
Tenga en cuenta que en este punto no quiero modificar los otros comportamientos de respuesta, por ejemplo, apilar elementos en lugar de mostrarlos uno al lado del otro.
fuente
Respuestas:
Busca la línea 239 de
bootstrap-responsive.css
Donde el
max-width
valor activa la navegación receptiva. Cámbielo a 550px más o menos y debería cambiar de tamaño bien.fuente
bootstrap-responsive.css
está enterrado en la joya bootstrap-sass. Sí, podría editarlo, pero luego, cuando se actualice la gema, tendría que hacerlo de nuevo. ¿Hay alguna forma de anular la consulta @media, similar a anular otros elementos CSS?@media (max-width: 767px)
bloque. Parece que tendré que hacer una anulación más extensa como se sugiere en la respuesta de Andres Ilich.@media (max-width: 767px)
. Con suerte, Bootstrap (o bootstrap-sass) algún día incluirá un medio para usar variables para establecer los umbrales, pero creo que eso requerirá interpolación en los selectores de medios .Bootstrap> 2.1 && <3
Actualización 2013: la forma más fácil
(THX a Archonic por comentario)
Actualización 2014: Bootstrap 3.1.1 y 3.2 (incluso lo agregaron a la documentación )
Si está personalizando o anulando / editando
.less
variables, está buscando:fuente
@navbarCollapseWidth: 600px;
boostrap_and_overrides.css.less.Puede establecer una nueva
@media
consulta para soltar los elementos de la barra de navegación hacia abajo como mejor le parezca, todo lo que tiene que hacer es restablecer la primera para acomodar su nueva consulta con el ancho de colocación deseado. Toma esto por ejemplo:CSS
En el siguiente código, puede ver cómo incluí la
@media
consulta original que maneja la colocación antes de la979px
marca y la nueva consulta para respaldar el punto de colocación deseado de550px
. Modifiqué la consulta original directamente desde el CSS que responde a bootstrap para restablecer todos los estilos aplicados a esa consulta específica para los elementos de la barra de navegación y los porté a la nueva consulta que lleva el punto de caída que necesita. De esta manera, podemos conmutar todos los estilos de la consulta original a la nueva consulta sin perder el tiempo en la hoja de estilo que responde a bootstrap, de esta manera los valores predeterminados se seguirán aplicando a los demás elementos de su documento.Aquí hay una breve demostración con una consulta de medios configurada para realizar
550px
según lo necesite: http://jsfiddle.net/wU8MW/Nota: coloqué las
@media
consultas modificadas anteriores muy por debajo del marco css, ya que se supone que el nuevo css modificado se carga primero que el css sensible.fuente
@media (max-width: 979px)
consulta original para realizar la nueva@media (max-width: 550px)
consulta. Luego (2) codificó a mano una nueva consulta de 979px para anular los efectos de la consulta de 979px en la página principalbootstrap-responsive.css
. La secuencia de etiquetas en su CSS no parece seguir la secuencia enbootstrap-responsive.css
, así que tengo dificultades para compararlas para ver lo que hizo.@media (max-width: 550px)
consulta que escribí no sigue la@media (max-width: 979px)
sintaxis de las consultas iniciales porque todo lo que hice fue un ejemplo rápido anulándola a mano a través de firebug y copiar / pegar, me volví perezoso en eso, pero la forma correcta de hacerlo es como mencionaste en tu segundo punto.bootstrap-sass admitirá la variable $ navbarCollapseWidth en la próxima versión (2.2.1.0). ¡Podrás actualizarlo para hacer exactamente lo que quieras una vez que la versión esté activa!
fuente
@import "bootstrap";
A partir de agosto de 2013, se puede encontrar una página de Bootstrap 3 "Personalizar y descargar" en http://getbootstrap.com/customize/
Con Bootstrap 3, la variable relevante es @ grid-float-breakpoint.
La siguiente página de Stack Overflow tiene detalles adicionales: Bootstrap 3 Navbar Collapse
fuente
Sospecho (y espero) que esto se implemente de manera oficial pronto. Mientras tanto, solo estoy haciendo un simple truco css, usando visible-phone en el botón desplegable y visible-tablet en un segundo conjunto de botones que coloqué en la barra de navegación. Entonces, antes se veía así:
Y ahora se ve así:
Tenga en cuenta que el orden de los elementos es importante; de lo contrario, puede tener problemas con los elementos que pasan a la siguiente línea
fuente
Creé un archivo SCSS separado que enumeraba todos los parciales que necesita bootstrap, de esa manera puedo activar y desactivar los parciales según lo que necesite nuestro sitio. De esta manera, puedo anular la variable de punto de interrupción fácilmente. Esto es lo que tengo:
fuente
Aquí está mi código (todas las demás soluciones mostraban una barra de desplazamiento funky cuando la barra de navegación se desplegaba, así que edité el código para que no fuera así). No pude publicar otra respuesta, así que lo haré aquí para que otros la encuentren. Estoy usando rieles para hacer esto con Bootstrap 3.0.
assets / stylesheets / framework y overrides pegue esto: (Ajuste el ancho máximo a cualquier valor para lograr su objetivo).
fuente
Bootstrap 3.x
con MENOS , puede cambiar el valor de
@screen-small
para apuntar a su tamaño mínimoejemplo:
@screen-small: 600px;
Lo uso para cambiar al modo "dispositivo pequeño" solo cuando el ancho es inferior a 600 px
fuente
Bootstrap 3.x
usando SASS, puede cambiar el valor de $ screen-sm para apuntar a su tamaño mínimo
ejemplo: $ screen-sm: 600px;
Necesita poner este valor en su archivo application.scss antes de @import "bootstrap";
Menos variables comienzan con "@" simplemente las cambia a "$" para anularlas antes de la importación.
Aquí está la lista de variables.
fuente
Bootstrap 4.x
Es muy fácil cambiar el umbral de colapso en Bootstrap 4.x. Hay 6 casos:
<nav class="navbar navbar-expand">...</nav>
<nav class="navbar navbar-expand-sm">...</nav>
<nav class="navbar navbar-expand-md">...</nav>
<nav class="navbar navbar-expand-lg">...</nav>
<nav class="navbar navbar-expand-xl">.../nav>
<nav class="navbar">...</nav>
(Simplemente elimine lanavbar-expand-*
clase. Mobile-first como en Bootstrap 4.x)Crédito a este artículo de Carol Skelly encontré https://medium.com/wdstack/examples-bootstrap-4-navbar-b3c9dc0edc1a
fuente
Este es un gran ejemplo de dónde podría estar usando la versión MENOS de los archivos CSS Bootstrap. Cómo hacer esto se encuentra a continuación.
Aún mejor sería enviar esto como una solicitud de extracción en Github para que todos puedan beneficiarse y su "código personalizado" sea parte de Bootstrap en el futuro.
variables.less
que especifique cuándo contraer la barra de navegación. Algo como:@navCollapseWidth: 979px
responsive-navbar.less
...@media (max-width: 979px)
a@media (max-width: @navCollapseWidth)
@media (min-width: 980px)
a@media (max-width: @navCollapseWidth - 1)
Por supuesto ... tendrías que compilar MENOS usando uno de los métodos sugeridos .
fuente
Llevando el truco de Tyler aún más lejos al agregar un bloque clasificado de teléfono visible y una clase de teléfono oculto a un elemento en la navegación principal plegable, puede 'sacar' uno o dos de los elementos contraídos para mostrarlos incluso en la barra de navegación del teléfono.
fuente
Simplemente escriba este código en su archivo style.css personalizado y funcionará
fuente