继续在父元素悬停状态

时间:2017-10-03 12:06:26

标签: html5 css3 drop-down-menu sass hover

我整天都在处理这个问题,但我找不到让它发挥作用的方法。当我将鼠标悬停在父元素上时,我正试图显示一个子菜单。问题是,只要我尝试移出父元素,子菜单就会消失,即使子菜单被包裹但是父元素也是如此。我已经尝试了相邻的兄弟解决方案,但也不适合我,我不知道还有什么。下拉菜单还有一个绝对定位的容器,所以也许这是问题的一部分?这是代码:

            <div class="header__top-bar top-bar show">
            <a class="header__logo">
                <img src="assets/img/logo.png" alt="Corporate Logo">
            </a>
            <nav class="main-menu">
                <ul>
                    <li class="main-menu__item mega-dropdown">
                        <a href="#">¿ Quiénes somos ?</a>
                        <ul class="dropdown-menu mega-dropdown-menu">
                            <div class="container dropdown-container">
                                <li><a href="#">LA COMPAÑIA</a></li>
                                <li><a href="#">GOBIERNO CORPORATIVO</a></li>
                            </div>
                        </ul>
                        <div class="background-menu"></div>
                    </li>
                    <li class="main-menu__item mega-dropdown">
                        <a href="#">Inversores</a>
                        <ul class="dropdown-menu mega-dropdown-menu">
                            <div class="container dropdown-container">
                                <li><a href="#">INFORMACIÓN BURSÁTIL</a></li>
                                <li><a href="#">INFORMACIÓN FINANCIERA</a></li>
                                <li><a href="#">HECHOS RELEVANTES</a></li>
                                <li><a href="#">OPERACIONES SOCIETARIAS</a></li>
                            </div>    
                        </ul>
                        <div class="background-menu"></div>                 
                    </li>
                    <li class="main-menu__item mega-dropdown"><a class="single-option" href="#">Activos</a></li>
                    <li class="main-menu__item mega-dropdown">
                        <a href="#">Actualidad</a>
                        <ul class="dropdown-menu mega-dropdown-menu">
                            <div class="container dropdown-container">
                                <li><a href="#">ACTUALIDAD</a></li>
                                <li><a href="#">GALERÍA MULTIMEDIA</a></li>
                            </div>    
                        </ul>
                        <div class="background-menu"></div>
                    </li>
                    <li class="main-menu__item mega-dropdown"><a class="single-option" href="#">Contacto</a></li>
                </ul>
            </nav>
            <nav class="tools">   
                <ul>
                    <li class="tools__item languages">
                        <span>ES</span>
                        <ul class="languages__list" aria-labelledby="dLabel">
                            <li><a href="#">EN</a></li>
                        </ul>                             
                    </li>
                    <li class="tools__item search">
                        <input type="text" id="q" name="q" class="header-search_input valid" value="" placeholder="Buscar" autocomplete="off" aria-invalid="false">
                        <a><i class="fa fa-search"></i></a>
                    </li>
                </ul>                   
            </nav>    
        </div>

SASS:

.header, .sticky-menu { 
ul {
    margin:0;
}      
&__logo {
    float:left;
}
.container>* {
    display:inline-block;
}
.main-menu {
    >ul {
        >li {
            display:block;              
            float:left;
            position: relative;
            &:last-child {
                a {
                    margin-right: 0;
                }
            }
            &:hover {
                ul.dropdown-menu {
                    display:block;
                }
                .background-menu {
                    height:65px;
                }
            }                
            &.mega-dropdown {
                position: static !important;
            }
            >a {
                background:url(../img/icon-main-menu.png) no-repeat right 60%;
                color: $white;
                font: 1em "Palatino Linotype", "Book Antiqua", Palatino, serif;
                margin-right:10px;                    
                padding-right: 20px;
                position:relative;
                text-decoration: none;
                @media only screen and (min-width:1024px) {
                    font-size: 1.2em;
                    margin-right:40px;
                }                     
                &:hover {
                    background:url(../img/icon-main-menu-hover.png) no-repeat right 60%;
                    color:$green;                 
                }
            }
            a.single-option {
                background: transparent;
                padding-right: 0;
            }
        }
    }
}
.tools {
    float:right;
    ul {
        li {
            color: $white;
            display: inline-block;
            padding-top: .5em;
            padding-bottom: .5em;                
            &:first-child {
                position: relative;
                &:after {
                    background-color: white;
                    content: '';
                    height: 20px;
                    position: absolute;
                    right: 0;
                    top: 10px;
                    width: 1px;
                }
            }
            &.languages {
                width: 70px;
                &.open {
                    background-color: $white;
                    color:$green;
                    padding:.5em .5em .5em .8em; 
                    &:first-child {
                        &:after {
                            display:none;
                        }
                    }    
                    .languages__list {
                        display:block;
                    }
                    span {
                        background: url("../img/drop-icon-close.png") no-repeat 95% 50%; 
                    }    
                }                    
                span {
                    background: url("../img/drop-icon.png") no-repeat 70% 50%;
                    cursor:pointer;
                    padding-right:2.5em;
                    display:block;                        
                }
                .languages__list {
                    background-color: $white;
                    display:none;
                    position: absolute;
                    right:0;
                    top:2.5em;
                    width: 70px;                        
                    li {
                        display: block;
                        &:after {
                            display: none;
                        }
                        a {
                            color: $blue;
                            display:block;
                            font-size: 1em;
                            padding:.5em .5em .5em .8em; 
                            text-transform: uppercase;
                            &:hover {
                                color:$green;
                            }
                        }                
                    }
                }   
            }                
            &.search {
                margin-left: 4px;
                @media only screen and (min-width:920px) {
                    margin-left: 8px;
                }    
                a {
                    img {
                        margin-top: 3px;
                        vertical-align: top;
                    }    
                }
                .header-search_input {
                    -moz-appearance: none;
                    -webkit-appearance: none;
                    appearance: none;                                
                    background-color: $white;
                    border: none;
                    color: $bg-dark-grey;
                    display:none;
                    font-size: .625em;
                    font-weight: 600;
                    padding:.5em 0 .5em .5em;
                    position: relative;
                    text-transform: uppercase;
                    transition: width 1s ease-in-out;
                    vertical-align: top;
                    &.open {
                        display:inline-block;   
                        transition: width 1s ease-in-out;
                        -webkit-transition: width 2s, height 4s;
                        width:200px;
                    }
                    &::-webkit-input-placeholder { 
                        color: $text-grey;
                    }                        
                }
            }
            a {
                color: $white;
                margin-right: 5px;
                text-decoration: none;
                @media only screen and (min-width:920px) {
                    margin-right: 10px;
                }                    
            }
            img {
                cursor: pointer;
                margin-right: 10px;
                @media only screen and (min-width:920px) {
                    margin-right: 15px;
                }                   
            }
        }
    }
}      

这是一个笔记本。将鼠标悬停在菜单的第一个元素上,您将看到一个红色框。只要您将鼠标移出li元素以尝试到达下拉列表,它就会消失。

Pencode Example

0 个答案:

没有答案