Search code examples
csshtmlnav

HTML Nav bar links not clickable


This past week I've been learning HTML and CSS and decided to mess around with a navigation bar. I have it all set up but now the links up top are not clickable? I've checked to make sure I didn't miss anything basic like a closing tag but couldn't find anything like that.

* {
  margin: 0;
  padding: 0;
}

html {
  background-color: #808080;
  background-image: url("https://hdqwalls.com/download/simple-gray-abstract-background-wi-1920x1080.jpg");
  background-repeat: no-repeat;
}

#landing__container {
  height: 100vh;
  width: 100%;
}

header {
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: rgba(255, 0, 0, 0.4);
}

header h1 {
  color: white;
  font-family: impact;
  font-weight: normal;
}

header ul {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  height: 30px;
}

header ul li {
  list-style: none;
}

header a {
  font-family: helvetica;
  font-weight: bold;
  font-size: 18px;
  text-decoration: none;
  color: white;
  margin: 30px;
}

#landing__center {
  display: flex;
  flex-direction: column;
  text-align: center;
  justify-content: center;
  align-items: center;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  position: absolute;
}

#landing__center h2 {
  padding-bottom: 20px;
  color: white;
  font-family: Impact;
  font-weight: normal;
  font-size: 40px;
}

#landing__center p {
  padding-top: 20px;
  color: white;
  font-family: helvetica;
  font-weight: normal;
  font-size: 20px;
}
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>Navigation Bar Practice</title>
    <link rel="stylesheet" type="text/css" href="style.css" />
  </head>

  <body>
    <div id="landing__container">
      <!-- Navigation Bar -->
      <header>
        <nav id="nav__bar">
          <ul>
            <li><a href="#">Home</a></li>
            <li><a href="#">Documentation</a></li>
            <li><a href="#">About</a></li>
            <li><a href="#">Contact</a></li>
          </ul>
        </nav>
      </header>

      <section id="landing__center">
        <h2>Testing</h2>
        <p>
          Lorem, ipsum dolor sit amet consectetur adipisicing elit. Rem
          voluptatum asperiores illum maiores aliquid quo perferendis,
          blanditiis facere temporibus laudantium!
        </p>
      </section>
    </div>
  </body>
</html>

I know the code may not be perfect and/or clean but keep in mind I have been doing this for a week.


Solution

  • The problem is caused by the #landing__center covering the navigation bar, because it selected #landing__container as the element to be relative with

    One way is to create a wrapper that will act as the container of #landing__center, instead of #landing__container. So that it is relative to its own container rather than its parent, not interfering with its siblings

    * {
      margin: 0;
      padding: 0;
    }
    
    html {
      background-color: #808080;
      background-image: url("https://hdqwalls.com/download/simple-gray-abstract-background-wi-1920x1080.jpg");
      background-repeat: no-repeat;
    }
    
    #landing__container {
      height: 100vh;
      width: 100%;
    }
    
    header {
      display: flex;
      justify-content: center;
      align-items: center;
      background-color: rgba(255, 0, 0, 0.4);
    }
    
    header h1 {
      color: white;
      font-family: impact;
      font-weight: normal;
    }
    
    header ul {
      display: flex;
      justify-content: flex-end;
      align-items: center;
      height: 30px;
    }
    
    header ul li {
      list-style: none;
    }
    
    header a {
      font-family: helvetica;
      font-weight: bold;
      font-size: 18px;
      text-decoration: none;
      color: white;
      margin: 30px;
    }
    
    .wrapper {
      position: relative;
      height: 95%;
    }
    
    #landing__center {
      display: flex;
      flex-direction: column;
      text-align: center;
      justify-content: center;
      align-items: center;
      top: 0;
      bottom: 0;
      left: 0;
      right: 0;
      position: absolute;
    }
    
    #landing__center h2 {
      padding-bottom: 20px;
      color: white;
      font-family: Impact;
      font-weight: normal;
      font-size: 40px;
    }
    
    #landing__center p {
      padding-top: 20px;
      color: white;
      font-family: helvetica;
      font-weight: normal;
      font-size: 20px;
    }
    <body>
      <div id="landing__container">
        <!-- Navigation Bar -->
        <header>
          <nav id="nav__bar">
            <ul>
              <li><a href="#">Home</a></li>
              <li><a href="#">Documentation</a></li>
              <li><a href="#">About</a></li>
              <li><a href="#">Contact</a></li>
            </ul>
          </nav>
        </header>
    
        <div class="wrapper">
          <section id="landing__center">
            <h2>Testing</h2>
            <p>
              Lorem, ipsum dolor sit amet consectetur adipisicing elit. Rem voluptatum asperiores illum maiores aliquid quo perferendis, blanditiis facere temporibus laudantium!
            </p>
          </section>
        </div>
      </div>
    </body>