Я создаю проект с помощью Bootstrap, и у меня небольшая проблема. У меня есть контейнер под Nav-top. Моя проблема в том, что некоторая часть моего контейнера скрыта под заголовком nav-top. Я не хочу использовать верхнее поле с контейнер. Пожалуйста, см. Ниже html, в котором я столкнулся с проблемой
<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
Аджай Бенивал
источник
источник
Ответы:
Для этого
padding
нужно добавить немного в начало файла<body>
.Согласно документации Bootstrap
.navbar-fixed-top
, попробуйте свои собственные значения или используйте наш фрагмент ниже. Подсказка: По умолчанию,navbar
является50px
высокой.Также взгляните на исходный код этого примера и откройте его
starter-template.css
.источник
Я предполагаю, что проблема связана с динамической высотой фиксированной панели навигации вверху. Например, когда пользователь входит в систему, вам нужно отобразить какое-то « Hello [User Name] », а когда имя слишком широкое, панели навигации нужно использовать большую высоту, чтобы этот текст не перекрывался с меню панели навигации . Так как панель навигации имеет стиль « position: fixed », тело остается под ней, а более высокая часть становится скрытой, поэтому вам нужно «динамически» изменять отступ вверху каждый раз, когда изменяется высота панели навигации, что произойдет в следующем сценарии случая:
Эта динамичность не покрывается обычным CSS, поэтому я могу придумать только один способ решить эту проблему, если у пользователя включен JavaScript . Пожалуйста, попробуйте следующий фрагмент кода jQuery, чтобы разрешить сценарии 1 и 2; в случае сценария 3 не забудьте вызвать функцию onResize () после любого изменения содержимого панели навигации :
источник
Просто определите пустую панель навигации перед фиксированной, она создаст необходимое пространство.
источник
navbar
делает это дополнение .Это происходит потому, что с
navbar-fixed-top
классом навигационная панель получает расширениеposition:fixed
. Это, в свою очередь, выводит панель навигации из потока документов, оставляя тело, занимающее пространство позади занимающее панелью навигации.Вам необходимо подать заявку
padding-top
илиmargin-top
на вашcontainer
, в зависимости от ваших требований с ценностями>= 50px
. (или поиграйте с другими значениями)Базовая навигационная панель начальной загрузки занимает примерно высоту
40px
. Так что, если вы даетеpadding-top
илиmargin-top
из50px
или более, вы всегда будете иметь , что передышку между вашим контейнером и навигационной панелью.источник
У меня тоже была эта проблема, но я решил ее без скрипта и только с помощью CSS. Я начинаю с рекомендованного padding-top для фиксированного меню, устанавливая 60 пикселей, описанных на веб-сайте Bootstrap. Затем я добавил три медиа-тега, которые изменяют размер отступов в точках отсечения, где также изменяется размер моего меню.
Одно примечание: когда ширина моего меню составляет от 768 до 991, логотип меню в моем макете плюс
<li>
параметры заставляют меню переноситься на две строки. Поэтому мне пришлось настроить padding-top, чтобы меню не перекрывало контент, отсюда 110 пикселей.Надеюсь это поможет...
источник
Я знаю, что эта ветка устарела, но я только что столкнулся с этой проблемой и исправил ее, просто используя
page-header
класс на моей странице под навигацией. Также я использовал<nav>
тег вместо,<div>
но я не уверен, что он будет иметь другое поведение.Используя в
page-header
качестве контейнера для страницы, вам не придется возиться с ним<body>
, только если вы не согласны с пространством по умолчанию, котороеpage-header
предоставляет вам.источник
я решил это с помощью jquery
источник