Контекстные меню на языке HTML

by आर्थर

HTML

<ul class="menu">
    <li class="menu__item">
        Файл
        <ul class="pull-menu">
            <li><a href="https://db.tt/xXPK9Vjv" target="_blank" class="pull-menu__link">Dropbox</a></li>
            <li><a href="#" class="pull-menu__link">Открыть</a></li>
            <li><a href="#" class="pull-menu__link">Сохранить</a></li>
            <li><a href="#" class="pull-menu__link">Закрыть</a></li>
        </ul>
    </li>
    <li class="menu__item">
        Правка
        <ul class="pull-menu">
            <li><a href="#" class="pull-menu__link">Вырезать</a></li>
            <li><a href="#" class="pull-menu__link">Копировать</a></li>
            <li><a href="#" class="pull-menu__link">Вставить</a></li>
            <li><a href="#" class="pull-menu__link">Удалить</a></li>
        </ul>
    </li>
</ul>

CSS

.menu {
    width: 200px;
    margin: 50px auto 0;
    padding: 0;
    list-style: none;
}

.menu__item {
    position: relative;
    float: left;
    margin-left: 30px;
    padding: 3px;
    color: #0303c8;
    background: #fff;
    text-decoration: underline;
    cursor: pointer;
}

.menu__item:first-child {
    margin-left: 0;
}

.menu__item:hover {
    color: #000;
    text-decoration: none;
    border-radius: 5px 5px 0 0;
}

.menu__item:hover:before {
    content: "";
    position: absolute;
    top: 0; right: 0; bottom: 0; left: 0;
    box-shadow:  0 0  10px rgba(0, 0, 0, .6);
    border-radius: 5px 5px 0 0;
    z-index: -1;
}

.menu__item:hover + .menu__item {
    z-index: -2;
}

.pull-menu {
    display: none;
    position: absolute;
    left: 0;
    width: 110px;
    padding: 5px 2px;
    list-style: none;
    background: #fff;
    box-shadow: 0 0 8px 0 rgba(0, 0, 0, .6); 
    z-index: -1;
}

.pull-menu__link {
    display: block;
    padding: 1px 2px;
    text-decoration: none;
    color: #0303c8;
}

.pull-menu__link:hover {
    background: #37ABFF;
    color: #fff;
}

.menu__item:hover .pull-menu {
    display: block;
}