user8033359
user8033359

Reputation:

When i remove overflow:hidden property from my navbar it disappears

I am trying to make my own responsive navbar, can someone explain why is this happening why is my nav disappearing. When i resized it to certain size it is gone, but what is puzzling me is that overflow hidden property because with it it works fine and i dont know why...can someone explain this to me Here is the code

.navbar {
  background-color: #333;
  overflow: hidden;
}

.navbar a {
  display: block;
  float: left;
  font-size: 17px;
  color: #FFFFFF;
  text-decoration: none;
  font-size: 16px;
  padding: 15px;
}

.icon {
  width: 30px;
  height: 4px;
  margin: 6px 0px;
  background-color: #FFFFFF;
}

.navbar a.toggle {
  display: none;
}

@media screen and (max-width: 500px) {
  .navbar a {
    display: none;
  }
  .navbar a.toggle {
    float: right;
    display: block;
    padding: 5px;
  }
}
<div class="navbar">
  <a href="#">Home</a>
  <a href="#">About</a>
  <a href="#">Contact</a>
  <a href="javascript:void(0)" class="toggle" onclick="myFunc()">
    <div class="icon"></div>
    <div class="icon"></div>
    <div class="icon"></div>

  </a>

</div>

Upvotes: 1

Views: 69

Answers (2)

Gerard
Gerard

Reputation: 15786

Alternative using flexbox

.navbar {
  background-color: #333;
  display: flex;
}

.navbar a {
  color: #FFFFFF;
  text-decoration: none;
  font-size: 16px;
  padding: 15px;
}

.icon {
  width: 30px;
  height: 4px;
  margin: 6px 0px;
  background-color: #FFFFFF;
}

.navbar a.toggle {
  display: none;
}

@media screen and (max-width: 500px) {
  .navbar a {
    display: none;
  }
  .navbar a.toggle {
    margin-left: auto;
    display: block;
    padding: 5px;
  }
}
<div class="navbar">
  <a href="#">Home</a>
  <a href="#">About</a>
  <a href="#">Contact</a>
  <a href="javascript:void(0)" class="toggle" onclick="myFunc()">
    <div class="icon"></div>
    <div class="icon"></div>
    <div class="icon"></div>
  </a>
</div>

Upvotes: 0

Tushar Vaghela
Tushar Vaghela

Reputation: 1243

You have not mentioned height adding height will solve your issue.

.navbar {
  background-color: #333;
  height: 50px;
}

.navbar a {
  display: block;
  float: left;
  font-size: 17px;
  color: #FFFFFF;
  text-decoration: none;
  font-size: 16px;
  padding: 15px;
}

.icon {
  width: 30px;
  height: 4px;
  margin: 6px 0px;
  background-color: #FFFFFF;
}

.navbar a.toggle {
  display: none;
}

@media screen and (max-width: 500px) {
  .navbar a {
    display: none;
  }
  .navbar a.toggle {
    float: right;
    display: block;
    padding: 5px;
  }
}
<div class="navbar">
  <a href="#">Home</a>
  <a href="#">About</a>
  <a href="#">Contact</a>
  <a href="javascript:void(0)" class="toggle" onclick="myFunc()">
    <div class="icon"></div>
    <div class="icon"></div>
    <div class="icon"></div>
  </a>
</div>

Upvotes: 1

Related Questions