Невозможно центрировать div, содержащий меню.. Так запутался

#html #css

#HTML #css

Вопрос:

Я уже около часа пытаюсь центрировать меню.

Я перепробовал все, что предложил мне Google, но безрезультатно.

Может кто-нибудь сказать мне, какую очевидную вещь я делаю неправильно, пожалуйста?

Вот HTML:

 <header>
<div class="wrap-header zerogrid">
    <div id="logo"><a href="#"><img src="./images/logonew.png"/></a></div>
    <nav>
        <div class="wrap-nav">
            <div class="menu">
                <ul>
                    <li><a href="index.html">Home</a></li>
                    <li><a href="food.html">Our Food</a></li>
                    <li><a href="drinks.html">Our Bar</a></li>
                    <li><a href="gallery.html">Gallery</a></li>
                    <li><a href="contact.html">Contact Us</a></li>
                </ul>
            </div>

            <div class="minimenu"><div>MENU</div>
                <select onchange="location=this.value">
                    <option></option>
                    <option value="index.html">Home</option>
                    <option value="food.html">Our Food</option>
                    <option value="single.html">Our Bar</option>
                    <option value="gallery.html">Gallery</option>
                    <option value="contact.html">Contact Us</option>
                </select>
            </div>
        </div>
    </nav>
</div>
 

И вот CSS:

 header {background:#e7dcd5; border-bottom: 0px solid #e7dcd5; background:url(../images/speckledbg.jpg) repeat scroll 0 0; text-align: center;}
header .wrap-header{height: 150px; text-align: center;}
header #logo {position:absolute; top: 15px;  padding:5px; width: 100%; margin: 0 auto;}

nav {width:100%;text-align:center; height:37px; display:block; margin-left:auto;margin-right:auto;}
nav .wrap-nav{position:absolute; top:115px; height: 37px; background:#e7dcd5; text-align:center;}

.menu ul {list-style: none;margin: 0;padding: 0; text-align:center; }
.menu  ul li {position: relative;float: left;padding: 6px 5px 0px 5px;}
.menu  ul li:hover {background:#b9aaa0;}
.menu  ul li a {font-size: 18px; line-height:14px;color: #3e3223;display: block;padding: 6px 10px;margin-bottom: 5px;z-index: 6;position: relative;}
.menu  ul li:hover a {color:#ffffff;}

.minimenu{display:none;}
.minimenu{position: relative;margin: 0px;background:#333333;}
.minimenu div{overflow: hidden;position: relative;font: 18px/37px 'PT Sans Narrow' !important;color: #fff;text-align:center;text-transform:uppercase;font-weight:bold;}
.minimenu select{position: absolute;top: 0px;left: 0px;width: 100%;height: 100%; opacity: 0;filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0); cursor: pointer;}
 

Вот JSFiddle

Заранее спасибо

Комментарии:

1. ваш HTML-дизайн не совсем корректен. Попробуйте создать лучший дизайн.

2. И все же, он отлично проверяется?

3. проверка не означает, что вы разрабатываете его правильно. С лучшими структурами вы можете писать более чистый код.

4. Так что же в этом такого плохого?

Ответ №1:

Вам нужно указать ширину для .wrap-nav и назначить a display:inline-block в меню, и все готово.

Вы можете увидеть, как это работает здесь: http://jsfiddle.net/gFb8k/5 /

Ответ №2:

Попробуйте изменить свой стиль следующим образом:

 nav .wrap-nav{
  position:relative;width:500px; top:115px; height: 37px; background:#e7dcd5;    
  text-align:center;margin:auto;
}
 

Ответ №3:

CSS:

 nav .wrap-nav{
      position:relative;
      width:500px; 
      top:115px; 
      height: 37px; 
      background:#e7dcd5;    
      text-align:center;
      margin: 0px auto;
}
.menu ul {
     list-style: none;
     margin: 0;
     padding: 0;
     text-align: center;
     display: inline-block;
}
 

Ответ №4:

Я удалил атрибут position:absolute в классе nav .wrap-nav и добавил в класс .menu ul li атрибут width:20% .

Вот ссылка jsfiddle:

Ответ №5:

Измените css, как:

 nav .wrap-nav{
     /*position:absolute;*/
     top:115px;
     height: 37px;
     background:#e7dcd5;
     text-align:center;
     /*Add these lines*/
     margin: 0 auto; /*center the container if have a width*/
     width: 500px; /8set value width you want*/
}