Помощь Горизонтальное меню 3 уровня

  • Автор темы Автор темы rusalka_tany
  • Дата начала Дата начала

rusalka_tany

Житель
Добрый день.
Появилась потребность переделать горизонтальное меню, чтоб магазин был одной закладкой, но раскрывал категории и подкатегории 2 и 3 уровнем соответственно.
Почти получилось, но выглядит каряво.
1314e1edd8e1.jpg

Желаемый результат - выпадание 3 уровня четко справа и первая подкатегория на одной горизонтальной линии с родителем, как тут:
7fa1f68aeaee.jpg

[HIDE]В header.php
Код:
<li><a href="">Каталог товаров</a>
<div><ul><?php foreach ($categories as $category) { ?>
<li><a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a>
<?php if ($category['children']) { ?>
<div><?php for ($i = 0; $i < count($category['children']);) { ?>
<ul><?php $j = $i + ceil(count($category['children']) / $category['column']); ?>
<?php for (; $i < $j; $i++) { ?> <?php if (isset($category['children'][$i])) { ?>
<li><a href="<?php echo $category['children'][$i]['href']; ?>"><?php echo $category['children'][$i]['name']; ?></a></li>
<?php } ?>
<?php } ?>
</ul>
<?php } ?>
</div>
<?php } ?>
</li><?php } ?></ul></div></li>
в stylesheet.css
Код:
/* Menu
------------------------------------------------------------*/

#menu {
    height: 37px;
    margin-bottom: 10px;
    border-top: 1px solid #5D8EC4;
    border-bottom: 1px solid #5D8EC4;
    background: #69A0DD;
    background: -moz-linear-gradient(top, #69A0DD 50%, #6495CC 100%);
    background:    -webkit-gradient(linear, center top, center bottom, color-stop(50%, #69A0DD), color-stop(100%, #6495CC));
    -webkit-box-shadow: 0 8px 10px -8px #33506F,
                        inset 0 2px 0 -1px #78ADE8;
       -moz-box-shadow: 0 8px 10px -8px #33506F,
                        inset 0 2px 0 -1px #78ADE8;
            box-shadow: 0 8px 10px -8px #33506F,
                        inset 0 2px 0 -1px #78ADE8;
}
#menu ul {
    list-style: none;
    margin: 0;
    padding: 0;
}
#menu > ul > li {
    position: relative;
    float: left;
    z-index: 20;
    padding: 6px 5px 0 0;
    border-right: 1px solid #5D8EC4;
    -webkit-box-shadow: 2px 0 0 -1px #78ADE8;
       -moz-box-shadow: 2px 0 0 -1px #78ADE8;
            box-shadow: 2px 0 0 -1px #78ADE8;
    -webkit-transition: background .2s;
       -moz-transition: background .2s;
            transition: background .2s;
}
#menu > ul > li:hover {
    background: #78ABE4;
    -webkit-box-shadow: 0 0 0 0 #78ADE8;
    -moz-box-shadow: 0 0 0 0 #78ADE8;
        box-shadow: 0 0 0 0 #78ADE8;
}
#menu > ul > li > a {
    font-size: 10px;
    font-weight: bold;
    color: #fff;
    line-height: 14px;
    text-transform: uppercase;
    text-decoration: none;
    display: block;
    padding: 6px 10px 6px 10px;
    margin-bottom: 5px;
    z-index: 6;
    position: relative;
    -webkit-text-shadow: 0 1px 1px #3D5F83;
       -moz-text-shadow: 0 1px 1px #3D5F83;
            text-shadow: 0 1px 1px #3D5F83;
}
#menu > ul > li:hover > a {
}
#menu > ul > li > div {
    display: none;
    background: #78ABE4;
    position: absolute;
    z-index: 5;
    border-left: 1px solid #5D8EC4;
    border-right: 1px solid #5D8EC4;
    border-bottom: 1px solid #5D8EC4;
}
#menu > ul > li:hover > div {
    display: table;
}
#menu > ul > li > div > ul {
    display: table-cell;
}

#menu > ul > li ul + ul {
    padding-left: 20px;
}
#menu > ul > li ul > li > a {
    text-decoration: none;
    padding: 4px;
    font-size: 10px;
    font-weight: bold;
    color: #fff;
    display: block;
    white-space: nowrap;
    min-width: 120px;
    -webkit-text-shadow: 0 1px 1px #3D5F83;
    -moz-text-shadow: 0 1px 1px #3D5F83;
    text-shadow: 0 1px 0 #5D8EC4;
        -webkit-transition: background .1s;
    -moz-transition: background .1s;
    transition: background .1s;
}
#menu > ul > li ul > li > a:hover {
             background: #5D8EC4;
}
#menu > ul > li > div > ul > li > a {
                  color: #FFFFFF;
}

#menu > ul > li > div > ul > li > div {
    display: none;
    background: #78ABE4;
    position: relative;
    z-index: 5;
    border-left: 1px solid #5D8EC4;
    border-right: 1px solid #5D8EC4;
    border-bottom: 1px solid #5D8EC4;
}
#menu > ul > li > div > ul > li:hover > div {
        position: absolute;
    display: table-cell;
        left: 100px;
}
[/HIDE]
Буду рада любой помощи!
 
а ссылки на живой сайт нету?

там как раз проблема решается простой заменой значений margin: на
Код:
.nav li ul ul {
margin: -42px 0 0 310px;
Ссылка на сайт
[hide]aklim.ru[/LIKES]
Если я заменю margin -это будет временное реение проблемы, которое сейчас стоит на сайте.
Если добавится более длинная категория, все опять "поедет"
 
Ссылка на сайт
***Скрытый текст не может быть процитирован.***
Если я заменю margin -это будет временное реение проблемы, которое сейчас стоит на сайте.
Если добавится более длинная категория, все опять "поедет"

в 583 строке изменить на

padding: 0


в 635 строке изменить на

margin-left: 80px;
margin-top: -30px;
 
в 583 строке изменить на

padding: 0


в 635 строке изменить на

margin-left: 80px;
margin-top: -30px;
В explorer смотрится неплохо, в opera заходи на границы родительской категории. Но все равно спасибо
 
padding: 0 - Отступы наружные

margin-left: 80px; - прижаться в левому боку, отступ 80 px.
margin-top: -30px; - прижаться в верней части с нахлестом 30px

попробуй добавить еще раддинг - 1-5.. Тогда должно по идеи появиться внешний отступ + 30 нахлест отстается...

Лучше бы Вы прислали рендомную установку... гадать бы не пришлось... Установил бы себе и глянул...
 

Создайте аккаунт или войдите в систему, чтобы комментировать

Вы должны быть зарегистрированным, чтобы оставить комментарий

Создать аккаунт

Создайте аккаунт в нашем сообществе.

Войти

У вас уже есть аккаунт? Войдите здесь.

Назад
Сверху Снизу