Как отцентровать CSS menu

Тема в разделе "Верстка", создана пользователем Non-Stop, 8 май 2014.

Информация :
Уважаемые пользователи, прежде чем ответить в теме или создать новую, внимательно ознакомьтесь с Правилами раздела и Правилами форума
Для быстрого поиска ответов на ваши вопросы воспользуйтесь Картой раздела и/или Поиском по разделу
Статус темы:
Закрыта.
Модераторы: ultra
  1. Non-Stop

    Non-Stop

    Регистр.:
    9 июл 2007
    Сообщения:
    323
    Симпатии:
    25
    Помогите пожалуйста отцентровать CSS menu/
    Задача растянуть на всю ширину страницы и сделать пункты меню по центру.
    Код:
    #cssmenu ul,
    #cssmenu li,
    #cssmenu span,
    #cssmenu a {
       margin: 0 ;
      padding: 0;
      position: relative;
    }
    #cssmenu {
      height: 49px;
    
      border-radius: 5px 5px 0 0;
      -moz-border-radius: 5px 5px 0 0;
      -webkit-border-radius: 5px 5px 0 0;
      background: #141414;
      background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAxCAIAAACUDVRzAAAAA3NCSVQICAjb4U/gAAAALElEQVQImWMwMrJi+v//PxMDw3+m//8ZoPR/qBgDEhuXGLoeYswhXg8R5gAAdVpfoJ3dB5oAAAAASUVORK5CYII=) 100% 100%;
      background: -moz-linear-gradient(top, #32323a 0%, #141414 100%);
      background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #32323a), color-stop(100%, #141414));
      background: -webkit-linear-gradient(top, #32323a 0%, #141414 100%);
      background: -o-linear-gradient(top, #32323a 0%, #141414 100%);
      background: -ms-linear-gradient(top, #32323a 0%, #141414 100%);
      background: linear-gradient(to bottom, #32323a 0%, #141414 100%);
      border-bottom: 2px solid #0fa1e0;
    }
    #cssmenu:after,
    #cssmenu ul:after {
      content: '';
      display: block;
      clear: both;
    }
    #cssmenu a {
      background: #141414;
      background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAxCAIAAACUDVRzAAAAA3NCSVQICAjb4U/gAAAALElEQVQImWMwMrJi+v//PxMDw3+m//8ZoPR/qBgDEhuXGLoeYswhXg8R5gAAdVpfoJ3dB5oAAAAASUVORK5CYII=) 100% 100%;
      background: -moz-linear-gradient(top, #32323a 0%, #141414 100%);
      background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #32323a), color-stop(100%, #141414));
      background: -webkit-linear-gradient(top, #32323a 0%, #141414 100%);
      background: -o-linear-gradient(top, #32323a 0%, #141414 100%);
      background: -ms-linear-gradient(top, #32323a 0%, #141414 100%);
      background: linear-gradient(to bottom, #32323a 0%, #141414 100%);
      color: #E9E9E9;
      display: inline-block;
      font-family: Helvetica, Arial, Verdana, sans-serif;
      font-size: 12px;
      line-height: 49px;
      padding: 0 20px;
      text-decoration: none;
    }
    #cssmenu ul {
      list-style: none;
    }
    #cssmenu > ul {
      float: left;
    }
    #cssmenu > ul > li {
      float: left;
    }
    #cssmenu > ul > li:hover:after {
      content: '';
      display: block;
      width: 0;
      height: 0;
      position: absolute;
      left: 50%;
      bottom: 0;
      border-left: 10px solid transparent;
      border-right: 10px solid transparent;
      border-bottom: 10px solid #0fa1e0;
      margin-left: -10px;
    }
    #cssmenu > ul > li:first-child > a {
      border-radius: 5px 0 0 0;
      -moz-border-radius: 5px 0 0 0;
      -webkit-border-radius: 5px 0 0 0;
    }
    #cssmenu > ul > li:last-child > a {
      border-radius: 0 5px 0 0;
      -moz-border-radius: 0 5px 0 0;
      -webkit-border-radius: 0 5px 0 0;
    }
    #cssmenu > ul > li.active a {
      box-shadow: inset 0 0 3px #000000;
      -moz-box-shadow: inset 0 0 3px #000000;
      -webkit-box-shadow: inset 0 0 3px #000000;
      background: #070707;
      background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAxCAIAAACUDVRzAAAAA3NCSVQICAjb4U/gAAAALklEQVQImWNQU9Nh+v//PxMDw3+m//8ZkNj/mRgYIHxy5f//Z0BSi18e2TwS5QG4MGB54HL+mAAAAABJRU5ErkJggg==) 100% 100%;
      background: -moz-linear-gradient(top, #26262c 0%, #070707 100%);
      background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #26262c), color-stop(100%, #070707));
      background: -webkit-linear-gradient(top, #26262c 0%, #070707 100%);
      background: -o-linear-gradient(top, #26262c 0%, #070707 100%);
      background: -ms-linear-gradient(top, #26262c 0%, #070707 100%);
      background: linear-gradient(to bottom, #26262c 0%, #070707 100%);
    }
    #cssmenu > ul > li:hover > a {
      background: #070707;
      background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAxCAIAAACUDVRzAAAAA3NCSVQICAjb4U/gAAAALklEQVQImWNQU9Nh+v//PxMDw3+m//8ZkNj/mRgYIHxy5f//Z0BSi18e2TwS5QG4MGB54HL+mAAAAABJRU5ErkJggg==) 100% 100%;
      background: -moz-linear-gradient(top, #26262c 0%, #070707 100%);
      background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #26262c), color-stop(100%, #070707));
      background: -webkit-linear-gradient(top, #26262c 0%, #070707 100%);
      background: -o-linear-gradient(top, #26262c 0%, #070707 100%);
      background: -ms-linear-gradient(top, #26262c 0%, #070707 100%);
      background: linear-gradient(to bottom, #26262c 0%, #070707 100%);
      box-shadow: inset 0 0 3px #000000;
      -moz-box-shadow: inset 0 0 3px #000000;
      -webkit-box-shadow: inset 0 0 3px #000000;
    }
    #cssmenu .has-sub {
      z-index: 1;
    }
    #cssmenu .has-sub:hover > ul {
      display: block;
    }
    #cssmenu .has-sub ul {
      display: none;
      position: absolute;
      width: 200px;
      top: 100%;
      left: 0;
    }
    #cssmenu .has-sub ul li {
      *margin-bottom: -1px;
    }
    #cssmenu .has-sub ul li a {
      background: #0fa1e0;
      border-bottom: 1px dotted #6fc7ec;
      filter: none;
      font-size: 11px;
      display: block;
      line-height: 120%;
      padding: 10px;
    }
    #cssmenu .has-sub ul li:hover a {
      background: #0c7fb0;
    }
    #cssmenu .has-sub .has-sub:hover > ul {
      display: block;
    }
    #cssmenu .has-sub .has-sub ul {
      display: none;
      position: absolute;
      left: 100%;
      top: 0;
    }
    #cssmenu .has-sub .has-sub ul li a {
      background: #0c7fb0;
      border-bottom: 1px dotted #6db2d0;
    }
    #cssmenu .has-sub .has-sub ul li a:hover {
      background: #095c80;
    }
    Код:
    <div id="cssmenu" align="center">
    <ul>
       <li><a href='#'><span><b><big>MENU</big></b></span></a></li>
    
       <li class='has-sub'><a href='#'><span><b><big>MENU</big></b></span></a>
                <ul>
                   <li class='has-sub '><a href='#'><span>Sub menu</span></a></li>
                   <li class='has-sub '><a href='#'><span>Sub menu</span></a></li>
                </ul>
             </li>
    
       <li><a href='#'><span><b><big>MENU</big></b></span></a></li>
       <li><a href='#'><span><b><big>MENU</big></b></span></a></li>
        <li><a href='#'><span><b><big>MENU</big></b></span></a></li>
       <li><a href='#'><span><b><big>MENU</big></b></span></a></li>
          <li><a href='#'><span><b><big>MENU</big></b></span></a></li>
    </ul>
    </div>
     
    Последнее редактирование модератором: 8 май 2014
  2. Denis_Pi

    Denis_Pi Art сreator

    Заблокирован
    Регистр.:
    8 май 2012
    Сообщения:
    398
    Симпатии:
    214
    Количество пунктов меню верхнего уровня фиксированное?
    Если ответ - ДА, то вот:
    Код:
    #cssmenu > ul {
    float: left;
    }
    замените на:
    Код:
    #cssmenu > ul {
    margin: 0 auto;
    width: 590px; /*размер выставите на своё усмотрение*/
    }

    p.s. В посте ниже более простое и изящное решение от mdss:
    Код:
    #cssmenu > ul {
    float: left;
    }
    заменить на :
    Код:
    #cssmenu > ul {
    }
    Код:
    #cssmenu > ul > li {
    float: left;
    }
    Заменить на:
    Код:
    #cssmenu > ul > li {
    display: inline-block;
    }
    З.ы. Использовать по ситуации
     
    Последнее редактирование: 8 май 2014
  3. mdss

    mdss ♖♘♗♕♔♗♘♖

    Moderator
    Регистр.:
    20 фев 2007
    Сообщения:
    1.126
    Симпатии:
    668
    для элементов li первого уровня удали float:left и добавь display:inline-block. Также удали флоат и для самого списка (тег ul)
     
    Non-Stop и Denis_Pi нравится это.
  4. shure348

    shure348 Создатель

    Регистр.:
    6 ноя 2012
    Сообщения:
    11
    Симпатии:
    2
    inline-block не любят старые "ишаки"
    когда надо ровно растянуть меню я обычно делаю
    ul {display: table;}
    ul li {display: table-cell;}
     
  5. mdss

    mdss ♖♘♗♕♔♗♘♖

    Moderator
    Регистр.:
    20 фев 2007
    Сообщения:
    1.126
    Симпатии:
    668
    вот чего ты пишешь, сам понимаешь? Свойство inline-block прекрасно в старых ишаках эмулируется просто inline'ом. А вот как раз display:table поддерживается только с 8ой версии ИЕ
     
    ITeshnik нравится это.
Статус темы:
Закрыта.