Выберите ли в списке

0

Список:

    <ul>
        <li>
            <a href="#">Item 1</a>
            <ul>
                <li>
                    <a href="#">Item 1-1</a>
                    <ul>
                        <li><a href="#">Item 1-1-1</a></li>
                        <li>
                           <a href="#">Item 1-1-2</a>
                           <ul>
                              <li><a href="#">Item 1-1-2-1</li>
                           </ul>
                        </li>
                    </ul>
                </li>
                <li><a href="#">Item 1-2</a></li>
                <li><a href="#">Item 1-2</a></li>
            </ul>
        </li>
        <li><a href="#">Item 2</a></li>
    </ul>

Вот некоторые соответствующие CSS

#nav ul ul {
    display: none;
}

#nav ul li:hover > ul {
    display: block;
}

Первый скроет каждый выпадающий элемент. Вторая будет соответствовать любой ul, которая является дочерним элементом родительского элемента #nav ul li: hover, если таковой отображается: блок и выпадающее изображение видны.

Теперь, поскольку при наведении элемента элементы внутри будут просто перечислены ниже, это не то, что я ищу. Я хочу переместить позиции 1-1-1 и пункт 1-1-2 справа от пункта 1-1, позиция 1-1-1 должна быть справа, пункт 1-1-2 будет быть ниже (действуя как раскрывающийся список). Я не уверен, как я выбираю этот элемент. Пример: http://line25.com/wp-content/uploads/2012/css-menu/demo/index.html

Вот что я получил до сих пор:

http://jsfiddle.net/Gq8C2/

Я пробовал с первым ребенком, например:

#nav ul li:hover > ul li:first-child {
    display: block;
}

Я также попытался использовать позицию абсолютную и относительную, она почти дала мне результат, который я хотел, но я не смог захватить первый элемент...

Должен быть лучший способ сделать это...

Как его выбрать? И как я могу сделать подобное поведение, описанное выше?

  • 0
    «Первый ...» - Первый из какого набора? Я не знаю, на что вы ссылаетесь.
  • 0
    #Nav ul ul {display: none; } скроет любую вложенную ул.
Показать ещё 1 комментарий
Теги:

2 ответа

0

Почему бы вам просто не использовать css/html страницы, к которой вы привязались, вместо того, чтобы пытаться ее изобретать?

HTML:

<nav>
    <ul>
        <li><a href="#">Home</a></li>
        <li><a href="#">Tutorials</a>
            <ul>
                <li><a href="#">Photoshop</a></li>
                <li><a href="#">Illustrator</a></li>
                <li><a href="#">Web Design</a>
                    <ul>
                        <li><a href="#">HTML</a></li>
                        <li><a href="#">CSS</a></li>
                    </ul>
                </li>
            </ul>
        </li>
        <li><a href="#">Articles</a>
            <ul>
                <li><a href="#">Web Design</a></li>
                <li><a href="#">User Experience</a></li>
            </ul>
        </li>
        <li><a href="#">Inspiration</a></li>
    </ul>
</nav>

CSS

0

Просмотрите этот скрипт http://jsfiddle.net/Gq8C2/10/

Я использую position:absolute для под-подменю:

#nav ul li ul li ul {
  position:absolute;
  top:0;
  left:100%;
}

Чтобы обновить код, вы можете назначить класс для каждого уровня меню, например

<ul class="Third_level">

Ещё вопросы

Сообщество Overcoder
Наверх
Меню