Многоуровневое раскрывающееся меню HTML и CSS, нужна помощь при наведении цвета - PullRequest
1 голос
/ 21 января 2011

Вот список и элементы:

<ul>
    <li>
        <a href="#">Home</a>
    </li>
    <li>
        <a href="#">Forums</a>
        <ul>
            <li>
                <a href="#">Baseball</a>
                <ul>
                    <li>
                        <a href="#">Trading</a>
                    </li>
                    <li>
                        <a href="#">Personal Collections</a>
                    </li>
                    <li>
                        <a href="#">Box Breaks</a>
                    </li>
                </ul>
            </li>
            <li>
                <a href="#">Basketball</a>
                <ul>
                    <li>
                        <a href="#">Trading</a>
                    </li>
                    <li>
                        <a href="#">Personal Collections</a>
                    </li>
                    <li>
                        <a href="#">Box Breaks</a>
                    </li>
                </ul>
            </li>
            <li>
                <a href="#">Football</a>
                <ul>
                    <li>
                        <a href="#">Trading</a>
                    </li>
                    <li>
                        <a href="#">Personal Collections</a>
                    </li>
                    <li>
                        <a href="#">Box Breaks</a>
                    </li>
                </ul>
            </li>
            <li>
                <a href="#">Hockey</a>
                <ul>
                    <li>
                        <a href="#">Trading</a>
                    </li>
                    <li>
                        <a href="#">Personal Collections</a>
                    </li>
                    <li>
                        <a href="#">Box Breaks</a>
                    </li>
                </ul>
            </li>
        </ul>
    </li>
</ul>

Вот CSS:

ul
{
    margin: 0;
    padding: 0;
    list-style: none;
    width: 100px;
    border-bottom: 1px solid #ccc;
}

a
{
    color: #777;
}

a:hover
{
    background-color: #fff;
}

ul li
{
    position: relative;
}

li ul
{
    display: inline;
    position: absolute;
    left: 99px;
    top: 0;
    display: none;
}

li ul li ul
{
    width: 150px;
}

ul li a
{
    display: block;
    text-decoration: none;
    background: #bad8f8;
    padding: 2px 0 2px 10px;
    border: 1px solid #ccc;
    border-bottom: 0;
}

li:hover > ul
{
    display: block;
}

То, что я хочу, это когда я нахожу курсор на Форумы, он выделяется белым цветом.Затем, если я перейду к Баскетболу, Форум и Баскетбол будут выделены белым цветом.И то же самое касается детей.Я хочу иметь возможность показывать путь, поэтому, когда они пересекают что-то, а позиционирование должно указывать им, к какому из них они обращаются, я хочу, чтобы подсветка прояснила его.Любая помощь будет оценена.Ох, и, пожалуйста, не используйте Javascript, если это возможно.Спасибо.

Вот как это выглядит сейчас, когда я наведу курсор на последнего ребенка: alt text

И те, которые обведены красным, я тоже хочу выделить белым.alt text

Обновление
Это то, что я собираюсь принять.Пока это некрасиво, но это лучшее, что я могу придумать.alt text

1 Ответ

2 голосов
/ 21 января 2011

Сохранение родителя в «выбранном» состоянии при навигации по вложенным спискам ul, вероятно, невозможно в CSS.Я не думаю, что CSS-селекторы способны подниматься вверх по дереву.Это не должно быть трудно с помощью JavaScript, хотя.Вот ссылка:

Сложный селектор CSS для родителя активного потомка

Боб

...