Estoy usando bootstrap en mi sitio y tengo problemas con la barra de navegación fija superior. Cuando estoy usando la barra de navegación normal, todo está bien. Sin embargo, cuando trato de cambiarlo a la barra de navegación superior fija, todo el resto del contenido en el sitio cambia como si la barra de navegación no estuviera allí y la barra de navegación se superpone. Aquí es básicamente cómo lo expuse:
.navbar.navbar-fixed-top
.navbar-inner
.container
.container
.row
//yield content
Traté de copiar ejemplos de bootstraps exactamente pero todavía tengo este problema solo cuando uso la barra de navegación fija superior. ¿Qué estoy haciendo mal?
fuente
Como otros han dicho, agregar un acolchado al cuerpo funciona muy bien. Pero cuando hace que la pantalla sea más estrecha (al ancho del teléfono celular), hay una brecha entre la barra de navegación y el cuerpo. Además, una barra de navegación abarrotada puede ajustarse a una barra de varias líneas, sobrescribiendo parte del contenido nuevamente.
Esto resolvió este tipo de problemas para mí
Esto hace un relleno de 40px por defecto y 0px cuando está por debajo de 768px de ancho (que según los documentos de bootstrap es el límite de diseño del teléfono celular donde se crearía la brecha)
fuente
body { padding-top: 40px; }
es suficienteUna solución mucho más útil para su referencia, funciona perfectamente en todos mis proyectos:
cambia tu primera línea de
a
fuente
Este problema es conocido y hay una solución alternativa en el sitio de arranque de Twitter:
Esto funcionó para mí:
fuente
@Ryan, tienes razón, codificar la altura hará que funcione mal en caso de barras de navegación personalizadas. Este es el código que estoy usando para BS 3.0.0 felizmente:
fuente
parseInt
los valores CSS de altura, acabo de usar$('#main-navbar').height()
, pero de lo contrario esto fue muy útil y resolvió mi problema, gracias.Puse esto antes del contenedor de rendimiento:
Me gusta este enfoque porque documenta el truco necesario para que funcione, además también funciona para la navegación móvil.
EDITAR: esto funciona mucho mejor:
fuente
El problema es con navbar-fixed-top, que superpondrá su contenido a menos que especifique el relleno del cuerpo. Ninguna solución provista aquí funciona en 100% de los casos. La solución JQuery parpadea / desplaza la página después de cargarla, lo que se ve raro.
La solución real para mí no es usar navbar-fixed-top, sino navbar-static-top.
fuente
Como publiqué en una pregunta similar, he tenido mucho éxito al crear una barra de navegación ficticia no fija justo antes de mi barra de navegación fija real.
El espacio funciona muy bien en todos los tamaños de pantalla.
fuente
La solución para Bootstrap 4, funciona perfectamente en todos mis proyectos:
cambia tu primera línea de
a
Referencia de documentación de Bootstrap
Ya era hora de que hicieran esto bien: D
fuente
Todas las soluciones anteriores codifican 40 píxeles específicamente en html o CSS de una forma u otra. ¿Qué sucede si la barra de navegación contiene un tamaño de fuente diferente o una imagen? ¿Qué pasa si tengo una buena razón para no meterme con el relleno del cuerpo en primer lugar? He estado buscando una solución a este problema, y esto es lo que se me ocurrió:
Puede moverlo hacia arriba o hacia abajo ajustando el '1'. Parece que funciona para mí, independientemente del tamaño del contenido en la barra de navegación, antes y después de cambiar el tamaño.
Tengo curiosidad por lo que otros piensan sobre esto: por favor comparta sus pensamientos. (Se refactorizará para que no se repita, por cierto). Además de usar jQuery, ¿hay alguna otra razón para no abordar el problema de esta manera? Incluso lo tengo trabajando con una barra de navegación secundaria como esta:
PD: lo anterior está en Bootstrap 2.3.2: ¿funcionará en 3.x Mientras los nombres de clase genéricos permanezcan ... de hecho, debería funcionar independientemente de Bootstrap, ¿verdad?
EDITAR: Aquí hay una función completa de jquery que maneja dos barras de navegación fijas apiladas y receptivas de tamaño dinámico. Requiere 3 clases html (o podría usar id): user-top, admin-top y contentwrap:
fuente
Solo cambia
fixed-top
consticky-top
. de esta manera no tendrás que calcular el relleno.¡¡Y funciona!!
fuente
Para manejar líneas de ajuste en la barra de menú, aplique una identificación a la barra de navegación, así:
y agregue este pequeño script en la cabeza después de incluir el jquery, así:
De esa manera, el acolchado superior del cuerpo se ajusta automáticamente.
fuente
para Bootstrap 3. +, usaría el siguiente CSS para arreglar navbar-fixed-top y el problema de superposición de salto de anclaje basado en https://github.com/twbs/bootstrap/issues/1768
fuente
usa esta clase dentro de la etiqueta de navegación
Para bootstrap 4
fuente
Todo lo que tienes que hacer es
fuente
Además de la respuesta de Nick Bisby, si tiene este problema al usar HAML en rieles y ha aplicado la solución de Roberto Barros aquí:
(Ver https://github.com/seyhunak/twitter-bootstrap-rails/issues/91 )
... necesita poner el cuerpo CSS antes de la declaración require de la siguiente manera:
Si la instrucción require está antes del CSS del cuerpo, no tendrá efecto.
fuente
Yo haría esto:
Esto debería asegurarse de que el bloque de navegación no estire hacia abajo y cubra el contenido de la página.
fuente
Acabo de envolver la barra de navegación en un
No es lujoso hocus pocus pero funcionó ...
fuente
nav-? ??
representa?