顶部导航栏阻止页面的顶部内容

css CSS

伽罗Tom

2020-03-23

我有这个Twitter Bootstrap代码

  <div class='navbar navbar-fixed-top'>
    <div class='navbar-inner'>
      <div class='container'>
        <a class='btn btn-navbar' data-target='.nav-collapse' data-toggle='collapse'>
          <span class='icon-bar'></span>
          <span class='icon-bar'></span>
          <span class='icon-bar'></span>
        </a>
        <div class='nav-collapse'>
          <ul class='nav'>
            <li class='active'>
              <a href='some_url'>My Home</a>
            </li>
            <li>
              <a href='some_url'>Option 1 </a>
            </li>
            <li>
              <a href='some_url'>Another option</a>
            </li>
            <li>
              <a href='some_url'>Another option</a>
            </li>
          </ul>
        </div>
      </div>
    </div>
  </div>

但是,当我查看页面的开头时,导航栏阻止了页面顶部附近的某些内容。关于如何使它在查看页面顶部时将内容的其余部分降低的任何想法,以便使内容不会被导航栏阻止?

第2981篇《顶部导航栏阻止页面的顶部内容》来自Winter(https://github.com/aiyld/aiyld.github.io)的站点

14个回答
前端神无 2020.03.23

您可以根据屏幕分辨率设置边距

@media screen and (min-width:768px) and (max-width:991px) {
body {
    margin-top:100px;
}

@media screen and (min-width:992px) and (max-width:1199px) {
  body {
    margin-top:50px;
  }
}

body{
  padding-top: 10%;
}

#nav{
   position: fixed;
   background-color: #8b0000;
   width: 100%;
   top:0;
}
神乐 2020.03.23

您应该添加

#page {
  padding-top: 65px
}

不破坏页脚或其他东西

伽罗理查德 2020.03.23

使用percentage是比更好的解决方案pixels

body {
  padding-top: 10%; //This works regardless of display size.
}

如果需要,您仍然可以通过添加breakpoints其他答案中提到的其他内容来明确表示@spajus

JinJin 2020.03.23

添加此:

.navbar {
  position: relative;
}
飞云 2020.03.23

编辑:此解决方案不适用于较新版本的Bootstrap,在该版本中,navbar-inverse和navbar-static-top类不可用。

使用MVC 5修复我的问题的方法是,仅添加我自己的Site.css,然后在其他代码之后加载,并添加以下行: body{padding: 0}

并且我将_Layout.cshtml开头的代码更改为:

<body>
    <div class="navbar navbar-inverse navbar-static-top">
        <div class="container">
            @if (User.Identity.IsAuthenticated) {
                <div class="top-navbar">
老丝阿飞 2020.03.23

到目前为止,我发现的不涉及硬编码高度和断点的最佳解决方案是<nav...在标记中添加一个额外的标签。

<nav class="navbar navbar-expand-md" aria-hidden="true">
    <a class="navbar-brand" href="#">Navbar</a>
</nav>
<nav class="navbar navbar-expand-md navbar-dark bg-dark fixed-top">
    <a class="navbar-brand" href="#">Navbar</a>

通过这种方式,@media断点是相同的,高度是相同的(假设您navbar-brand是中的最高对象,navbar但是您可以轻松地替换非fixed-top导航栏中的另一个元素

失败的地方在于屏幕阅读器,该屏幕阅读器现在将显示2个navbar-brand元素。这表明需要一个not-for-sr类来防止该元素出现在屏幕阅读器中。但是该类不存在 https://getbootstrap.com/docs/4.0/utilities/screenreaders/

我曾尝试用以下方法补偿屏幕阅读器的问题,aria-hidden="true"https://www.accessibility-developer-guide.com/examples/sensible-aria-usage/hidden/似乎表明当屏幕阅读器为在对焦模式下,这当然是您真正需要它工作的唯一时间...

斯丁 2020.03.23

使用navbar navbar-default时,一切正常,但如果使用navbar-fixed-top,则必须包含自定义样式主体{padding-top:60px;},否则它将阻止下面的内容。

路易阳光 2020.03.23

从Twitter的示例中可以看到,将其添加到包含响应样式声明的行之前:

<style> 
    body {
        padding-top: 60px;
    }
</style>

像这样:

<link href="Z/bootstrap/css/bootstrap.min.css" rel="stylesheet" />
<style type="text/css">
    body {
        padding-top: 60px;
    }
</style>
<link href="Z/bootstrap/css/bootstrap-responsive.min.css" rel="stylesheet" />
Tony凯 2020.03.23

在从MVC 5教程派生的项目中,我发现更改主体填充无效。以下为我工作:

@media screen and (min-width:768px) and (max-width:991px) {
    body {
        margin-top:100px;
    }
}
@media screen and (min-width:992px) and (max-width:1199px) {
    body {
        margin-top:50px;
    }
}

它解决了导航栏折叠成2或3行的情况。可以在body {margin:0;; }

猪猪 2020.03.23

bootstrap v4 入门模板css使用:

body {
  padding-top: 5rem;
}
Green古一 2020.03.23

添加到您的CSS:

body { 
    padding-top: 65px; 
}

Bootstrap文档

除非您在正文顶部添加填充,否则固定的导航栏将覆盖您的其他内容。

Eva理查德阳光 2020.03.23

如果您使用的是响应式引导程序,则仅添加这样的填充是不够的。在这种情况下,当您调整窗口大小时,页面顶部和导航栏之间会出现间隙。正确的解决方案如下所示:

body {
  padding-top: 60px;
}
@media (max-width: 979px) {
  body {
    padding-top: 0px;
  }
}
小胖 2020.03.23

我在真正的固定导航栏之前创建了一个虚拟的非固定导航栏,取得了成功。

<nav class="navbar navbar-default"></nav> <!-- Dummy nav bar -->
<nav class="navbar navbar-default navbar-fixed-top"> <!-- Real nav bar -->
    <!-- Nav bar details -->
</nav>

该间距在所有屏幕尺寸上都非常合适。

2020.03.23

对于自举3,类navbar-static-top而不是navbar-fixed-top防止这个问题,除非你需要导航栏始终可见。

问题类别

JavaScript Ckeditor Python Webpack TypeScript Vue.js React.js ExpressJS KoaJS CSS Node.js HTML Django 单元测试 PHP Asp.net jQuery Bootstrap IOS Android