1

im using ready made dropdown menu from http://cssmenumaker.com/menu/grey-red-drop-down-menu the menu is working pretty fine but i like to center the buttons.Is there any way to do that? Here is the css code:

@import url(http://fonts.googleapis.com/css?family=Open+Sans:600);
/* Menu CSS */#cssmenu,
#cssmenu > ul {
  background: url(images/highlight-bg.png) repeat;
  padding-bottom: 3px;
  font-family: 'Open Sans', sans-serif;
  font-weight: 600;
}
#cssmenu:before,
#cssmenu:after,
#cssmenu > ul:before,
#cssmenu > ul:after {
  content: '';
  display: table;
}
#cssmenu:after,
#cssmenu > ul:after {
  clear: both;
}
#cssmenu {
  width: auto;
  zoom: 1;
}
#cssmenu > ul {
  background: url(images/menu-bg.png) repeat;
  margin: 0;
  padding: 0;
  position: relative;
}
#cssmenu > ul li {
  margin: 0;
  padding: 0;
  list-style: none;
}
#cssmenu > ul > li {
  float: left;
  position: relative;
}
#cssmenu > ul > li > a {
  padding: 23px 26px;
  display: block;
  color: white;
  font-size: 13px;
  text-decoration: none;
  text-transform: uppercase;
  text-shadow: 0 -1px 0 #0d0d0d;
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.7);
  line-height: 18px;
}
#cssmenu > ul > li:hover > a {
  background: url(images/highlight-bg.png) repeat;
  text-shadow: 0 -1px 0 #97321f;
  text-shadow: 0 -1px 0 rgba(122, 42, 26, 0.64);
}
#cssmenu > ul > li > a > span {
  line-height: 18px;
}
#cssmenu > ul > li.active > a,
#cssmenu > ul > li > a:active {
  background: url(images/hover.png) repeat;
}
/* Childs */
#cssmenu > ul ul {
  opacity: 0;
  visibility: hidden;
  position: absolute;
  top: 120px;
  background: url(images/menu-bg.png) repeat;
  margin: 0;
  padding: 0;
  z-index: -1;
}
#cssmenu > ul li:hover ul {
  opacity: 1;
  visibility: visible;
  margin: 0;
  color: #000;
  z-index: 2;
  top: 64px;
  left: 0;
}
#cssmenu > ul ul:before {
  content: '';
  position: absolute;
  top: -10px;
  width: 100%;
  height: 20px;
  background: transparent;
}
#cssmenu > ul ul li {
  list-style: none;
  padding: 0;
  margin: 0;
  width: 100%;
}
#cssmenu > ul ul li a {
  padding: 18px 26px;
  display: block;
  color: white;
  font-size: 13px;
  text-decoration: none;
  text-transform: uppercase;
  width: 150px;
  border-left: 4px solid transparent;
  -webkit-transition: all 0.35s ease-in-out;
  -moz-transition: all 0.35s ease-in-out;
  -ms-transition: all 0.35s ease-in-out;
  transition: all 0.35s ease-in-out;
}
#cssmenu > ul ul li a:hover {
  border-left: 4px solid #d64e34;
  background: url(images/hover.png) repeat;
}
#cssmenu > ul ul li a:active {
  background: url(images/menu-bg.png) repeat;
}

Here is the basic html code:

<div id='cssmenu'>
<ul>
   <li class='active'><a href='index.html'><span>Home</span></a></li>
   <li class='has-sub'><a href='#'><span>Products</span></a>
      <ul>
         <li><a href='#'><span>Product 1</span></a></li>
         <li class='last'><a href='#'><span>Product 2</span></a></li>
      </ul>
   </li>
   <li><a href='#'><span>About</span></a></li>
   <li class='last'><a href='#'><span>Contact</span></a></li>
</ul>
</div>

1 Answers1

0

If you want to center the main menu links, you could try this:

#cssmenu ul {text-align: center;}
#cssmenu ul li {float: none; display: inline-block;}

Rather than float: none, you can just remove the original float on the lis.

If you are worried about the inline-block gaps that appear between the menu items, you could do this:

#cssmenu ul {text-align: center;display: table; width: 100%; word-spacing:-.25em;}
#cssmenu ul li {float: none; display: inline-block; word-spacing:0;}

To avoid the submenu text being centered, try this:

#cssmenu ul {text-align: center;display: table; width: 100%; word-spacing:-.25em;}
#cssmenu ul > li {float: none; display: inline-block; word-spacing:0;}
#cssmenu ul li li {text-align: left;}
ralph.m
  • 13,468
  • 3
  • 23
  • 30
  • I've tryed both ways and only my sub-menu text is getting centered. I manged to center it using http://stackoverflow.com/questions/2865380/how-do-i-center-align-horizontal-ul-menu but using that method my background images are getting confused and flying around.TY for trying! – Angel Arakov Aug 05 '13 at 09:52
  • It worked! I used #cssmenu ul li {float: none;} instead of removing #cssmenu ul li {float: left;} and is done by the second method. Thank you! – Angel Arakov Aug 05 '13 at 10:01
  • I've updated my post with extra code to avoid the submenu text being centered. – ralph.m Aug 05 '13 at 10:04
  • #cssmenu ul li li {text-align: left;} <==doesnt exist #cssmenu ul ul li {text-align: left;} <==add it here and is working! – Angel Arakov Aug 05 '13 at 11:52
  • Cool. Glad it helped. If the answer worked, it helps others if you upvote / mark as answered. – ralph.m Aug 05 '13 at 14:13