ThunderToes
ThunderToes

Reputation: 233

How do i center my navigation bar?

I have a script here for my navigation bar:

<style type="text/css">
 /* Navigation Bar */
 #nav_bar {
     display:inline-block;
     height:50px;
 }
 #nav_bar ul {
     display:inline-block;
     list-style-type: none;
     border: 1px solid red;
     width: 565px;
     height: 100%;
     text-align: center;
     padding: 0;
     margin: 0;
 }
 #nav_bar li {
     display:inline;
     height:100%;
     padding: 0;
     margin: 0;
 }
 #nav_bar a:hover {
     background-color: #000000;
 }
 #nav_bar a {
     display:inline-block;
     height: 100%;
     color:white;
     text-decoration:none;
     line-height: 50px;
     padding: 0 1em 0 1em;
     background-color: #900000;
 }
</style>
</font>

I'm having trouble trying to get it displayed in the centre of the page, how can I do it? I've looked into "display: inline-block;" and "position: relative" and couldn't find a code that worked the html part of my nav bar is as follows (in regards to your comments) I hope it helps! :)

<div id="nav_bar">
            <ul>
                <li> <a href="#">Home</a> </li>
                <li> <a href="#">Forums</a> </li>
                <li> <a href="#">Shipping Info</a> </li>
                <li> <a href="#">Contact us</a> </li>
                <li> <a href="#">About us</a> </li>
            </ul>
        </div>

Upvotes: 0

Views: 124

Answers (4)

Airen
Airen

Reputation: 2169

A total of six kinds of methods: 1、Margin and width to achieve horizontal center

#nav_bar {
     height:50px;
 }
 #nav_bar ul {
     list-style-type: none;
     border: 1px solid red;
     width: 565px;
     height: 100%;
     text-align: center;
     padding: 0;
     margin-left: auto;
    margin-right: auto;
 }

please view the demo. 2、use the inline-block, like this:

#nav_bar {
     height:50px;
     text-align: center;
 }
 #nav_bar ul {
     list-style-type: none;
     display: inline-block;
     border: 1px solid red;
     width: 565px;
     height: 100%;
     text-align: center;
     padding: 0;
    text-align: center;
    font-size: 0;
    letter-spacing: -4px;
    word-spacing: -4px;
 }
 #nav_bar li {
    margin: 0 5px;
   display: inline-block;
  *display: inline;
  zoom:1;
  letter-spacing: normal;  
  word-spacing: normal;
  font-size: 12px;
 }

please view the demo.

3、use the float,like this:

#nav_bar {
     float: left;
     width: 100%;
     overflow: hidden;
     position: relative;
 }
 #nav_bar ul {
     list-style-type: none;
     width: 565px;
      height: 50px;
     height: 100%;
     padding: 0;
     clear: left;
      float: left;
      position: relative;
      left: 50%;/*整个分页向右边移动宽度的50%*/
      text-align: center;
 }
 #nav_bar li {
     margin: 0 5px;
     display: block;
     height: 50px;
     float: left;
     position: relative;
     right: 50%;/*将每个分页项向左边移动宽度的50%*/
 }
 #nav_bar a:hover {
     background-color: #000000;
 }
 #nav_bar a {
     display:block;
     height: 100%;
     color:white;
     text-decoration:none;
     line-height: 50px;
     padding: 0 1em 0 1em;
     background-color: #900000;
 }

Please view the demo.

Other methods, you can click here.

Upvotes: 0

Alex Gill
Alex Gill

Reputation: 2491

Give it a width and auto margins and make sure its a block level element.

By default a 'div' is a block level element so you can remove this rule.

You must set a width or the menu with expand to the width of its container.

#nav_bar {
     display:block;
     height:50px;
     margin: 0 auto;
     width: 567px; /* or whatever you require */
 }

Example: http://jsfiddle.net/29FRa/

Upvotes: 1

Tum
Tum

Reputation: 21

Use text-align: center; on your #nav_bar and be sure it is a block-level element.

http://jsfiddle.net/TKMeU/

Upvotes: 0

Marc
Marc

Reputation: 5455

 #nav_bar {
   height:50px;
   width:800px;
   margin:0 auto;
 }

HTML:

<html>
 <body>
  <div id="#nav_bar"></div>
 </body>
</html>

Upvotes: 0

Related Questions