【问题标题】:navbar(menu) is getting overlapped by body elementnavbar(menu) 被 body 元素覆盖
【发布时间】:2018-05-14 05:54:07
【问题描述】:

我试图用 html css 创建一个简单的页面,但开始面临导航栏的问题。 我在正文中放置了一个带有一些文本的透明框。但是随着页面滚动通过框悬停在菜单上方。找到了一个相关主题“菜单与正文重叠”,但没有看到任何可以解决我的问题的内容。 [DEMO]

<head>
div.box {
  margin: 30px;
  background-color: #333;
  border: 1px solid black;
  opacity: 0.6;
  font-size: 20px;
  filter: alpha(opacity=60); /* For IE8 and earlier */
}

div.box p {
  margin: 5%;
  font-weight: normal;
  color: #ffffff;
}

.navbar {
  overflow: hidden;
  background-color: #333;
  position: fixed;
  top: 0;
  width: 100%;
}

.navbar a {
  float: left;
  display: block;
  color: #f2f2f2;
  text-align: center;
  padding: 14px 16px;
  text-decoration: none;
  font-size: 17px;
}

.navbar a:hover {
  background: #ddd;
  color: black;
}

<div class="navbar" style="display:table;">
  <a href="#home">Home</a>
  <a href="#news">News</a>
  <a href="#contact">Contact</a>
</div>

</head>
<body>
<div class="main">
  <h1>Fixed Menu</h1>
  <p>Some text some text some text some text..</p>
  <div class="box">
    <h2 style="color:white; text-align:center">Some text some text </h2>
  </div>
</div>
</body>

【问题讨论】:

    标签: html css navigationbar overlapping


    【解决方案1】:

    设置为nav z-index: 1; 您还可以学习 z-index 属性并哇哦 w3schools.com

    body {margin:0;}
    
    div.box {
      margin: 30px;
      background-color: #333;
      border: 1px solid black;
      opacity: 0.6;
      font-size: 20px;
      filter: alpha(opacity=60); /* For IE8 and earlier */
    }
    	
    div.box p {
      margin: 5%;
      font-weight: normal;
      color: #ffffff;
    }
    
    .navbar {
      overflow: hidden;
      background-color: #333;
      position: fixed;
      top: 0;
      width: 100%;
       z-index: 1;
    }
    
    .navbar a {
      float: left;
      display: block;
      color: #f2f2f2;
      text-align: center;
      padding: 14px 16px;
      text-decoration: none;
      font-size: 17px;
    }
    
    .navbar a:hover {
      background: #ddd;
      color: black;
    }
    
    .main {
      padding: 16px;
      margin-top: 30px;
      height: 1500px; /* Used in this example to enable scrolling */
    }
    <!DOCTYPE html>
    <html>
    <head>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    </head>
    <body>
    
    <div class="navbar">
      <a href="#home">Home</a>
      <a href="#news">News</a>
      <a href="#contact">Contact</a>
    </div>
    
    <div class="main">
      <h1>Fixed Top Menu</h1>
      <h2>Scroll this page to see the effect</h2>
      <h2>The navigation bar will stay at the top of the page while scrolling</h2>
    
      
      <div class="box">
        <h2 style="color:white; text-align:center">Some text some text </h2>
               <p>Some text some text Some text some text Some text some text Some text some text... </p>
               <p>Some text some text some text some text..</p>
      <p>Some text some text some text some text..</p>
        <p>Some text some text some text some text..</p>
      <p>Some text some text some text some text..</p>
        
      </div>
      <p>Some text some text some text some text..</p>
      <p>Some text some text some text some text..</p>
      <p>Some text some text some text some text..</p>
      <p>Some text some text some text some text..</p>
    </div>
    
    </body>
    </html>

    【讨论】:

    • 告诉我更多帮助
    • 为什么有这么多的 z-index?
    • 我知道,但我确定了
    • 永远不要这样做。因为当项目变得更大时,你会很头疼。
    • 你也是@לבני מלכה :)
    【解决方案2】:

    只需将 z-index: 1 添加到 .navbar。

    【讨论】:

      【解决方案3】:

      只需将 z-index 添加到导航栏。它可以是 1 到 9,或者直到你得到你想要的,你可以增加 z-index。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多