28/28 100% - подскажите ошибки, пожалуйста...? ))


#1

html,
body {
margin: 0;
padding: 0;
}

body {
width: 380px;
min-height: 280px;
padding: 10px;

font-size: 14px;
line-height: 1.4;
font-family: “Arial”, sans-serif;

background-color: #ecf0f1;
}

.main-menu {
position: relative;
margin: 0;
padding: 0;
list-style: none;
width: 200px;
background-color: #2980b9;
}

.main-menu a {
text-decoration: none;
display: block;
padding: 10px 15px;
color: #ffffff;
}
.main-menu .sub-menu {
position: absolute;
margin: 0;
padding: 0;
list-style: none;
top: 41px;
left: 180px;
background-color: #1abc9c;
z-index: 10px;
width: 200px;
}

.main-menu > li {

border-bottom: 2px solid #2c3e50;

}

.open {
background-color: #1abc9c;
}

.sub-menu > li {
border-bottom: 2px solid #2ecc71;
}


#2

position: relative; перенесите в .main-menu > li.
Если всплывающих меню будет больше – каждое из них будет привязано к своему элементу основного меню…

z-index: 10px; – должно быть просто число.


#3

Спасибо! Я не заметила, что на автомате добавила туда пиксели… Перенесла position: relative; в .main-menu > li. Но не очень понимаю… когда я прописываю .main-menu > li, я фактически говорю: “элемент списка главного меню”, но я ведь не уточняю, какой именно элемент списка… Как оно понимает, что я имею в виду - второй сверху (Курсы)…?


#4

В этом испытании всплывающее меню добавлено в HTML только во втором элементе списка.
А, вообще в нормальном меню всплывающее может быть в каждом элементе списка.
Примерно так:

<!DOCTYPE html>
<html lang="ru">
    <head>
        <meta charset="utf-8">
        <title>Испытание: многоуровневое меню</title>
        <style>
html, 
body {
    margin: 0;
    padding: 0;
}

body {
    width: 380px;
    min-height: 280px;
    padding: 10px;
    font-family: "Arial", sans-serif;
    font-size: 14px;
    line-height: 1.4;
    background: #ecf0f1;
}

.main-menu,
.sub-menu {
    width: 200px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.main-menu li {
    position: relative;    
}

.main-menu a {
    display: block;
    color: #fff;
    text-decoration: none;
    padding: 10px 15px;
}

.main-menu > li > a {
    background: #2980b9;
    border-bottom: 2px solid #2c3e50;
}

.main-menu .sub-menu {
    display: none;      
    position: absolute;
    top: 0px;
    left: 180px;
    z-index: 10;
}

.main-menu .sub-menu a {
    background: #1abc9c;
    border-bottom: 2px solid #2ecc71;
}

.main-menu > li > a:hover {
    background: #1abc9c;
}

.main-menu li:hover .sub-menu {
    display: block;    
}

.main-menu .sub-menu a:hover { 
    background: #2ecc71;
}
            </style>
    </head>
    <body>
        <ul class="main-menu">
            <li><a href="/demos">Демонстрации</a></li>
            <li class="opened">
                <a href="/courses">Курсы</a>
                <ul class="sub-menu">
                    <li><a href="/courses/4">Знакомство</a></li>
                    <li><a href="/courses/42">Селекторы</a></li>
                    <li><a href="/courses/45">Позиционирование</a></li>
                </ul>
            </li>
            <li>
                <a href="/public_profiles">Участники</a>
                <ul class="sub-menu">
                    <li><a href="/courses/4">Знакомство</a></li>
                    <li><a href="/courses/42">Селекторы</a></li>
                    <li><a href="/courses/45">Позиционирование</a></li>
                </ul>
            </li>
            <li>
                <a href="/achievments">Достижения</a>
                <ul class="sub-menu">
                    <li><a href="/courses/4">Знакомство</a></li>
                    <li><a href="/courses/42">Селекторы</a></li>
                    <li><a href="/courses/45">Позиционирование</a></li>
                </ul>
            <li>
                <a href="/profile">Профиль</a>
                <ul class="sub-menu">
                    <li><a href="/courses/4">Знакомство</a></li>
                    <li><a href="/courses/42">Селекторы</a></li>
                    <li><a href="/courses/45">Позиционирование</a></li>
                </ul>
            </li>
        </ul>
    </body>
</html>

#5

Спасибо! Код в основном разобрала, но не могу понять, что задается вот этим:

.main-menu li:hover .sub-menu {
display: block;
}
???


#6
.main-menu .sub-menu {
    display: none;  
}

это правило скрывает всплывающее меню.


.main-menu li:hover .sub-menu {
    display: block;    
}

а это при наведении на элемент основного меню – всплывающее меню показывает.


https://htmlacademy.ru/courses/50/run/23


#7

Спасибо!!! Всё поняла! Всё стало на свои места!!! ))) Сейчас еще повторю “Отображаем подменю при наведении”!! Спасибо!!