Estoy construyendo un proyecto con Bootstrap y estoy enfrentando un pequeño problema. Tengo un contenedor debajo del Nav-top. Mi problema es que una parte de mi contenedor está oculta debajo del encabezado nav-top. No quiero usar el margen superior con envase. Vea a continuación el html en el que estoy enfrentando el problema
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
<link rel="stylesheet" href="~/stylesheets/bootstrap.css"/>
<link rel="stylesheet" href="~/stylesheets/bootstrap-responsive.css"/>
</head>
<body>
<div class="navbar navbar-fixed-top ">
<div class="navbar-inner">
<div class="container">
<button data-target=".nav-collapse" data-toggle="collapse" class="btn btn-navbar collapsed" type="button">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<div class="nav-collapse"><ul class="nav" id="navbar"><li ng-class="{active:section=='plunks'}" class="active"><a href="/plunks/trending"><i class="icon-home"></i>Home</a></li><li><a target="_self" href="/edit/"><i class="icon-calendar"></i>General Election 2014</a></li><li class="divider-vertical">
</li><li class="dropdown"><a class="dropdown-toggle" href="#" data-toggle="dropdown">
<i class="icon-eye-open">
</i>Assembly Elections
<b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li><a href="#/HTML5Apps">Assembly Elections 2013</a></li>
</ul>
</li><li class="divider-vertical">
</li><li ng-class="{active:section=='tags'}"><a href="/tags"><i class="icon-th"></i>Constituecy</a></li><li ng-class="{active:section=='discuss'}"><a href="/discuss"><i class="icon-time"></i>Election News</a></li><li class="divider-vertical"></li><li><a href="https://github.com/filearts/plunker"><i class="icon-bell"></i>Candidate</a></li></ul></div>
</div>
</div>
</div>
<div class="container" >
<ul class="nav nav-pills">
<li class="active">
<a href="#">Popular</a>
</li>
<li><a href="#">Trending</a></li>
<li><a href="#">Latest</a></li>
</ul>
</div>
<script src="~/Scripts/jquery.js"></script>
<script src="~/Scripts/bootstrap-dropdown.js"></script>
<script src="~/Scripts/Collapse.js"></script>
</body>
</html>
css
twitter-bootstrap
Ajay Beniwal
fuente
fuente
Respuestas:
Esto se maneja agregando algunos
padding
a la parte superior de<body>
.Según la documentación de Bootstrap
.navbar-fixed-top
, pruebe sus propios valores o use nuestro fragmento a continuación. Consejo: Por defecto, elnavbar
es50px
alto.Además, eche un vistazo a la fuente de este ejemplo y ábralo
starter-template.css
.fuente
Supongo que el problema que tienes está relacionado con la altura dinámica que tiene la barra de navegación fija en la parte superior. Por ejemplo, cuando un usuario inicia sesión, debe mostrar algún tipo de " Hola [Nombre de usuario] " y cuando el nombre es demasiado ancho, la barra de navegación debe usar más altura para que este texto no se superponga con el menú de la barra de navegación . Como la barra de navegación tiene el estilo " posición: fija ", el cuerpo permanece debajo de ella y una parte más alta se oculta, por lo que debe cambiar "dinámicamente" el relleno en la parte superior cada vez que cambie la altura de la barra de navegación , lo que sucedería en lo siguiente escenarios de casos:
Esta dinámica no está cubierta por CSS regular, por lo que solo puedo pensar en una forma de resolver este problema si el usuario tiene habilitado JavaScript . Pruebe el siguiente fragmento de código de jQuery para resolver los escenarios de caso 1 y 2; para el caso 3, recuerde llamar a la función onResize () después de cualquier cambio en el contenido de la barra de navegación :
fuente
Simplemente defina una barra de navegación vacía antes de la fija, creará el espacio necesario.
fuente
navbar
.Ocurre porque con la
navbar-fixed-top
clase la barra de navegación obtiene elposition:fixed
. Esto a su vez saca la barra de navegación del flujo de documentos dejando que el cuerpo ocupe el espacio detrás la barra de navegación.Debe aplicar
padding-top
omargin-top
a sucontainer
, según sus requisitos con valores>= 50px
. (o jugar con diferentes valores)La barra de navegación básica de bootstrap toma altura
40px
. Así que si se le da unapadding-top
omargin-top
de50px
o más, siempre tendrá que respiro entre el contenedor y la barra de navegación.fuente
Yo también he tenido este problema, pero lo resolví sin script y solo usando CSS. Comienzo siguiendo el padding-top recomendado para un menú fijo mediante la configuración de 60px descrita en el sitio web Bootstrap. Luego agregué tres etiquetas de medios que redimensionan el relleno en los puntos de corte donde mi menú también cambia de tamaño.
Una nota, cuando el ancho de mi menú está entre 768 y 991, el logotipo del menú en mi diseño más el
<li>
opciones hacen que el menú se ajuste a dos líneas. Por lo tanto, tuve que ajustar el relleno superior para evitar que el menú cubriera el contenido, por lo tanto, 110 px.Espero que esto ayude...
fuente
Sé que este hilo es antiguo, pero acabo de entrar en ese problema exacto y lo arreglé simplemente usando la
page-header
clase en mi página, bajo el navegador. También usé la<nav>
etiqueta en lugar de,<div>
pero no estoy seguro de que presente un comportamiento diferente.Al usar el
page-header
como contenedor para la página, no necesitará meterse con el<body>
, solo si no está de acuerdo con el espacio predeterminado quepage-header
le proporciona.fuente
lo resolví usando jquery
fuente