Jump to content

Не работает менюшка на CSS


Recommended Posts

Привет всем. Делаю менюшку. Есть такая идея. чтобы при наведении на видимы блок срабатывал :hover 

и появлялся скрытый блок. (Типа выпадающего меню)

Все вроде логично, но не работает... Подскажите пожалуйста, что я делаю не так.  

Код такой:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Имя</title>
<style>
.div1{
border: 4px solid black;
width: 200px;
}

.div2{
display: none; 
}

.div1:hover .div2{
display: block; 
border: 4px solid black;
width: 200px;
}


</style>
</head>
<body>
<div class="div1">
Меню
</div>
<div class="div2">Фрукты
</div>
</body>
</html>

 

Link to comment
Share on other sites

Здравствуйте.

Когда Вы описываете структуру:

.div1 .div2 {}

Ожидается что .div2 — это дочерний элемент .div1, а именно:

<div class="div1">
  Меню
  
  <div class="div2">Фрукты</div>
</div>

В таком случае при наведение на .div1:hover будут срабатывать указанные Вами стили.

Link to comment
Share on other sites

Благодарю за ответ. А если я не хочу чтобы была вложенность. Возможно ли как-то реализовать :hover

без вложенности? Т.е. чтобы было наведение мышкой на один элемент, а стили включались для другого?

Или так нельзя?

Link to comment
Share on other sites

Для таких целей целесообразно использовать JavaScript

Хотя, обращу внимание, на то что следующий подход используется повсеместно:

Скрытый текст

<nav class="menu">
    <div class="menu-item parent">
        <a href="#" class="menu-item-link">Woman</a>

        <div class="menu-item-dropdown">
            <ul class="submenu">
                <li class="submenu-item">
                    <a href="#" class="submenu-link">Tops</a>
                </li>
                <li class="submenu-item">
                    <a href="#" class="submenu-link">Bottoms</a>
                </li>
            </ul>
        </div>
    </div>

    <div class="menu-item parent">
        <a href="#" class="menu-item-link">Man</a>

        <div class="menu-item-dropdown">
            <ul class="submenu">
                <li class="submenu-item">
                    <a href="#" class="submenu-link">Tops</a>
                </li>
                <li class="submenu-item">
                    <a href="#" class="submenu-link">Bottoms</a>
                </li>
            </ul>
        </div>
    </div>

    <div class="menu-item parent">
        <a href="#" class="menu-item-link">Gear</a>

        <div class="menu-item-dropdown">
            <ul class="submenu">
                <li class="submenu-item">
                    <a href="#" class="submenu-link">Gear</a>
                </li>
                <li class="submenu-item">
                    <a href="#" class="submenu-link">Fitness Equipment</a>
                </li>
            </ul>
        </div>
    </div>

    <div class="menu-item">
        <a href="#" class="menu-item-link">Sale</a>
    </div>
</nav>

CSS:


.menu .menu-item.parent:hover .menu-item-dropdown {
    display: block;
}

SASS/LESS:


.menu {
    .menu-item {
        &:hover {
            .menu-item-dropdown {
                display: block;
            }
        }
    }
}

 

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy