¿Hay alguna forma de aumentar el punto en que la barra de navegación de bootstrap 3 se colapsa (es decir, se colapsa en un menú desplegable en tabletas verticales)?
¡Estos dos eran aplicables a Bootstrap 2 pero no ahora!
¿Cómo cambiar el umbral de colapso de la barra de navegación usando Twitter bootstrap-responsive?
Cambiar el punto de interrupción de la barra de navegación receptiva predeterminado
Respuestas:
Tuve el mismo problema hoy.
Bootstrap 4
Es una funcionalidad nativa: https://getbootstrap.com/docs/4.0/components/navbar/#responsive-behaviors
Tienes que usar
.navbar-expand{-sm|-md|-lg|-xl}
clases:Bootstrap 3
Solo cambia
991px
por1199px
demd
tamaños.Manifestación
fuente
.navbar-collapse.collapse.in { display: block!important; }
para evitar que desaparezca. Buen trabajo sin embargo, me ahorró horasdropdown-menu
elementos en la barra de navegación.La gran diferencia entre Bootstrap 2 y Bootstrap 3 es que Bootstrap 3 es "móvil primero".
Eso significa que los estilos predeterminados están diseñados para dispositivos móviles y, en el caso de las barras de navegación, significa que está "contraído" de forma predeterminada y "se expande" cuando alcanza un cierto tamaño mínimo.
El sitio de Bootstrap 3 en realidad tiene una "pista" sobre qué hacer: http://getbootstrap.com/components/#navbar
Si va a volver a compilar su MENOS, encontrará la variable MENOS anotada en el
variables.less
archivo. Actualmente está configurado para "expandir",@media (min-width: 768px)
que es una "pantalla pequeña" (es decir, una tableta) según Bootstrap 3.@grid-float-breakpoint: @screen-tablet;
Si desea mantener el colapso un poco más, puede ajustarlo así:
@grid-float-breakpoint: @screen-desktop;
(Punto de ruptura de 992 px)o ampliar antes
@grid-float-breakpoint: @screen-phone
(Punto de ruptura 480px)Si desea que se expanda más tarde, y no trate de volver a compilar LESS, deberá sobrescribir los estilos que se aplican en la
768px
consulta de medios y hacer que vuelvan al valor anterior. Luego, vuelva a agregarlos en el momento adecuado.No estoy seguro de si hay una mejor manera de hacerlo. Recompilar el Bootstrap LESS a sus necesidades es la mejor (más fácil) forma. De lo contrario, tendrá que encontrar todas las consultas de medios CSS que afecten a su barra de navegación, sobrescribirlas a los estilos predeterminados en el ancho de 768 px y luego volverlas a un ancho mínimo más alto.
Recompilar el LESS hará toda esa magia por ti simplemente cambiando la variable. Que es más o menos el punto de los precompiladores MENOS / SASS =)
(tenga en cuenta que los busqué todos, son alrededor de 100 líneas de código, lo cual es lo suficientemente molesto como para dejar caer la idea y simplemente volver a compilar Bootstrap para un proyecto determinado y evitar estropear algo por accidente)
¡Espero que eso ayude!
¡Salud!
fuente
/css
,/js
,/fonts
. Personalizarlo solo proporciona los archivos compilados que seleccionó.La forma más fácil es personalizar bootstrap
encontrar variable:
que está configurado en @ screen-sm, puede cambiarlo según sus necesidades. ¡Espero eso ayude!
fuente
estos están controlados en variables, no hay necesidad de muckear en la fuente. con bootstrap, primero pruebe las variables y luego las anula. luego regrese e intente las variables nuevamente;)
Utilicé bootstrap-sass con rieles, pero es lo mismo con el MENOS predeterminado.
¡Eso es! Esta página de referencia de variables es muy útil: https://github.com/twbs/bootstrap/blob/master/less/variables.less
fuente
Gracias a Seb33300 conseguí que esto funcionara. Sin embargo, parece faltar una parte importante. Al menos en Bootstrap versión 3.1.1.
Mi problema fue que la barra de navegación colapsó en consecuencia con el ancho correcto, pero el botón de menú no funcionó. No pude expandir y colapsar el menú.
Esto se debe a que la clase collapse.in está anulada por! Important en .navbar-collapse.collapse, y puede resolverse agregando también "collapse.in". El ejemplo de Seb33300 se completa a continuación:
fuente
Quería votar y comentar la respuesta de jmbertucci, pero aún no se me puede confiar con los controles. Tuve el mismo problema y lo resolví como él dijo. Si está utilizando Bootstrap 3.0, edite las variables MENOS en variables.less Los puntos de interrupción de respuesta se establecen alrededor de la línea 200:
Luego establezca el valor de colapso para la barra de navegación usando la variable @ grid-float-breakpoint en aproximadamente la línea 232. De manera predeterminada, se establece en @ screen-tablet . Si lo desea, puede usar un valor de píxel, pero prefiero usar las variables MENOS.
fuente
-min
los siguientes: @ screen-md-min: 800px; @ screen-lg-min: 1200px; @ grid-float-breakpoint: @ screen-md-min;Si el problema que enfrenta es que el menú se divide en varias líneas , puede intentar uno de los siguientes:
1) Intente reducir la cantidad de elementos del menú o su longitud, como eliminar elementos del menú o acortar las palabras.
2) Reducir el relleno entre los elementos del menú, así:
El relleno predeterminado es de 15 píxeles en ambos lados (izquierdo y derecho).
Si prefiere cambiar el uso de cada lado individual:
Esta configuración también afecta a la lista desplegable.
Esto no responde la pregunta, pero podría ayudar a otros que no quieren meterse con el CSS o usar MENOS variables. Los dos enfoques comunes para resolver este problema.
fuente
El nabvar colapsará en dispositivos pequeños. El punto de colapso está definido por @ grid-float-breakpoint en las variables. Por defecto, esto será antes de 768px. Para pantallas por debajo del ancho de pantalla de 768 píxeles, la barra de navegación se verá así:
Es posible cambiar el @ grid-float-breakpoint en variables.less y recompilar Bootstrap. Al hacer esto, también tendrá que cambiar @ screen-xs-max en navbar.less. Deberá establecer este valor en su nuevo @ grid-float-breakpoint -1. Ver también: https://github.com/twbs/bootstrap/pull/10465 . Esto es necesario para cambiar los formularios y menús desplegables de la barra de navegación en @ grid-float-breakpoint a su versión móvil también.
fuente
Me preocupan los problemas de mantenimiento y actualización en el futuro al personalizar Bootstrap. Puedo documentar los pasos de personalización hoy y espero que la persona que actualice Bootstrap dentro de tres años encuentre la documentación y vuelva a aplicar los pasos (que pueden o no funcionar en ese momento). Supongo que se puede argumentar de cualquier manera, pero prefiero mantener cualquier personalización en mi código.
Sin embargo, no entiendo cómo puede funcionar el enfoque de Seb33300. Ciertamente no funcionó con Bootstrap 4.0.3. Para que la barra de navegación se expanda en 1200 en lugar de 768, las reglas para ambas consultas de medios deben ser anuladas para evitar que se expanda en 768 y forzar la expansión en 1200.
Tengo un menú más largo que se envolvería en el iPad en modo vertical. Lo siguiente mantiene el menú colapsado hasta el punto de interrupción 1200:
fuente
Hice la manera CSS con mi instalación de Bootstrap 3.0.0, ya que no estoy tan familiarizado con LESS. Aquí está el código que agregué a mi archivo css personalizado (que cargo después de bootstrap.css) que me permitió controlar para que el menú siempre funcionara como un
accordion
.Nota: envolví todo
navbar
dentro de un div con la clasesidebar
para separar el comportamiento que quería para que no afectara a otras barras de navegación en mi sitio, como el menú principal. Ajústese a lo largo de sus necesidades, espero que sea de ayuda.Nota adicional: También agregué un cambio a la alternancia del menú principal
navbar
(ya que el código anterior en mi sitio se usa para un "submenú" en el lateral.Cambié:
dentro:
Y luego también ajustado:
dentro:
Si solo tiene uno
navbar
, supongo que no tendrá que preocuparse por esto, pero me ayudó en mi caso.fuente
Y para aquellos que quieran colapsar a un ancho inferior al estándar de 768 px (expandir a un ancho inferior a 768 px), este es el CSS necesario:
fuente
Creo que encontré una solución simple para cambiar el punto de interrupción del colapso, solo a través de css.
Espero que otros puedan confirmarlo, ya que no lo probé a fondo y no estoy seguro de si esta solución tiene efectos secundarios.
Debe cambiar los valores de consulta de medios para las siguientes definiciones de clase:
Esto es lo que funcionó para mí en mi proyecto actual, pero aún necesito cambiar algunas definiciones de CSS para organizar el menú correctamente para todos los tamaños de pantalla.
Espero que esto ayude.
fuente