Quantcast
Channel: Active questions tagged html - Stack Overflow
Viewing all articles
Browse latest Browse all 67469

Responsive HTML Menu - Centering Issue

$
0
0

I'm having a huge brain fart when trying to center my menu.

I would sincerely appreciate any help someone can offer me.

My menu continues to align on the left but it needs to be centered.

Whenever I put a container around it, I lose my responsive functionality.

Here is my HTML

<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link href="./style.css" rel="stylesheet" type="text/css" />
<script>
/* Toggle between adding and removing the "responsive" class to topnav when the user clicks on the icon */
function myFunction() {
  var x = document.getElementById("myTopnav");
  if (x.className === "topnav") {
    x.className += " responsive";
  } else {
    x.className = "topnav";
  }
}
</script>
</head>
<body>
<div id="header">
<div class="logo"><img src="./images/logo.png"></div>

<div class="topnav" id="myTopnav">

    <a href="#">Home</a>

    <div class="dropdown">
    <button class="dropbtn">Gifts
      <i class="fa fa-caret-down"></i>
    </button>
    <div class="dropdown-content">
      <a href="#">Link 1</a>
      <a href="#">Link 2</a>
      <a href="#">Link 3</a>
    </div>
  </div>

    <div class="dropdown">
    <button class="dropbtn">Home & Lifestyle
      <i class="fa fa-caret-down"></i>
    </button>
    <div class="dropdown-content">
      <a href="#">Link 1</a>
      <a href="#">Link 2</a>
      <a href="#">Link 3</a>
    </div>
  </div>

    <div class="dropdown">
    <button class="dropbtn">Edible
      <i class="fa fa-caret-down"></i>
    </button>
    <div class="dropdown-content">
      <a href="#">Link 1</a>
      <a href="#">Link 2</a>
      <a href="#">Link 3</a>
    </div>
  </div>

    <div class="dropdown">
    <button class="dropbtn">Wearable
      <i class="fa fa-caret-down"></i>
    </button>
    <div class="dropdown-content">
      <a href="#">Link 1</a>
      <a href="#">Link 2</a>
      <a href="#">Link 3</a>
    </div>
  </div>

    <div class="dropdown">
    <button class="dropbtn">Toys & Games
      <i class="fa fa-caret-down"></i>
    </button>
    <div class="dropdown-content">
      <a href="#">Link 1</a>
      <a href="#">Link 2</a>
      <a href="#">Link 3</a>
    </div>
  </div>

    <div class="dropdown">
    <button class="dropbtn">Blog
      <i class="fa fa-caret-down"></i>
    </button>
    <div class="dropdown-content">
      <a href="#">Link 1</a>
      <a href="#">Link 2</a>
      <a href="#">Link 3</a>
    </div>
  </div>

    <div class="dropdown">
    <button class="dropbtn">About Us
      <i class="fa fa-caret-down"></i>
    </button>
    <div class="dropdown-content">
      <a href="#">Link 1</a>
      <a href="#">Link 2</a>
      <a href="#">Link 3</a>
    </div>
  </div>

  <a href="javascript:void(0);" class="icon" onclick="myFunction()">&#9776;</a>
    </div>

</div>
<!-- END TOP NAV -->

</div>
<!-- END HEADER -->




Here is my CSS

body {
margin:0 auto;
}
.container {
    overflow: hidden;
    width: 960px;
    margin: 0 auto;
}
.logo {
    display: block;
    color: #000000;
    text-align: center;
    letter-spacing: .04em;
    font-family: 'Quattrocento Sans', sans-serif;
    font-size: 40px;
    font-weight: 700;
    line-height: normal;
    padding: 10px 0;
}
.nav-wrap {
    overflow: hidden;
    width: 100%;
    padding: 10px 0;
    background: #ffffff;
    box-sizing: border-box;
    -webkit-backface-visibility: hidden;
    text-align:center;
}

/* Add a black background color to the top navigation */
.topnav {
  background-color: #fff;
  overflow: hidden;
}

/* Style the links inside the navigation bar */
.topnav a {
  float: left;
  display: block;
  color: #b9b9b9;
  text-align: center;
  padding: 14px 16px;
  text-decoration: none;
      text-transform: uppercase;
    letter-spacing: .07em;
    font-family: 'Quattrocento Sans', sans-serif;
    font-size: 14px;
    font-weight: 400;
    line-height: 19px;
}

/* Add an active class to highlight the current page */
.active {
  color: 000;
}

/* Hide the link that should open and close the topnav on small screens */
.topnav .icon {
  display: none;
  color:#b9b9b9;
}

/* Dropdown container - needed to position the dropdown content */
.dropdown {
  float: left;
  overflow: hidden;
}

/* Style the dropdown button to fit inside the topnav */
.dropdown .dropbtn {   
   text-transform: uppercase;
    letter-spacing: .07em;
    font-weight: 400;
    line-height: 19px;
    font-size:inherit;
  border: none;
  outline: none;
  color: #b9b9b9;
  padding: 14px 16px;
  background-color: inherit;
  font-family: inherit;
  margin: 0;
}

/* Style the dropdown content (hidden by default) */
.dropdown-content {
  display: none;
  position: absolute;
  background-color: #f9f9f9;
  min-width: 160px;
  box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
  z-index: 1;
}

/* Style the links inside the dropdown */
.dropdown-content a {
  float: none;
  color: #b9b9b9;
  padding: 12px 16px;
  text-decoration: none;
  display: block;
  text-align: left;
}

/* Add a dark background on topnav links and the dropdown button on hover */
.topnav a:hover, .dropdown:hover .dropbtn {
  color: 000;
}

/* Add a grey background to dropdown links on hover */
.dropdown-content a:hover {
  background-color: #ddd;
  color: black;
}

/* Show the dropdown menu when the user moves the mouse over the dropdown button */
.dropdown:hover .dropdown-content {
  display: block;
}

/* When the screen is less than 600 pixels wide, hide all links, except for the first one ("Home"). Show the link that contains should open and close the topnav (.icon) */
@media screen and (max-width: 600px) {
  .topnav a:not(:first-child), .dropdown .dropbtn {
    display: none;
  }
  .topnav a.icon {
    float: right;
    display: block;
  }
}

/* The "responsive" class is added to the topnav with JavaScript when the user clicks on the icon. This class makes the topnav look good on small screens (display the links vertically instead of horizontally) */
@media screen and (max-width: 600px) {
  .topnav.responsive {position: relative;}
  .topnav.responsive a.icon {
    position: absolute;
    right: 0;
    top: 0;
  }
  .topnav.responsive a {
    float: none;
    display: block;
    text-align: left;
  }
  .topnav.responsive .dropdown {float: none;}
  .topnav.responsive .dropdown-content {position: relative;}
  .topnav.responsive .dropdown .dropbtn {
    display: block;
    width: 100%;
    text-align: left;
  }
}


p {font-family: Verdana, Arial, Helvetica, sans-serif; font-size:14px; color:#333; line-height:20px;}
.thick { font-weight: bold;}
.column {
  float: left;
  width: 285px;
  padding: 15px;
}

.row {
  width: 945px;
  margin: 0 auto;
  text-align: center;
}

/* Clear floats after image containers */
.row::after {
  content: "";
  clear: both;
  display: table;
}

hr.short {
  width: 285px;
  height: 1px;
  border: none;
  background-color: #dedede;
  margin-top: 40px;

}



/* Responsive layout */
@media only screen and (max-width: 767px) {
  .column {
    width: 100%;
    padding: 0px;
  }

  .row {
  width: 100%;
  margin: 0 auto;
  text-align: center;
}

/* Clear floats after image containers */
.row::after {
  content: "";
  clear: both;
  display: table;
}


} 

The menu keeps going to the left (probably the float:left) but I just can't get this to work.

Anyone able to be my hero for the day, please?


Viewing all articles
Browse latest Browse all 67469

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>