2016-10-01 189 views
1

这里是我的下拉按钮的代码与1个额外的水平。下拉菜单不显示子菜单

当我点击按钮时,它的工作正常,但当我尝试点击子菜单的下拉菜单内,所以我意识到有什么是错误的我所有的四个项目只显示最后一个子菜单。

.icon-cadet-left { 
 
    float: right; 
 
} 
 
.dropbtn { 
 
    width: 300px; 
 
    background-color: #4CAF50; 
 
    color: white; 
 
    padding: 16px; 
 
    font-family: 'Play'; 
 
    font-size: 20px; 
 
    border: none; 
 
    cursor: pointer; 
 
    text-transform: uppercase; 
 
    letter-spacing: 2px; 
 
} 
 
.dropdown { 
 
    position: relative; 
 
    display: inline-block; 
 
} 
 
.dropdown-content { 
 
    display: none; 
 
    position: relative; 
 
    background-color: #f9f9f9; 
 
    min-width: 160px; 
 
    box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2); 
 
} 
 
.dropdown-content a { 
 
    width: 300px; 
 
    color: black; 
 
    font-family: 'Play'; 
 
    letter-spacing: 2px; 
 
    padding: 12px 16px; 
 
    text-decoration: none !important; 
 
    display: block; 
 
    text-align: center; 
 
    border-bottom: 0.1em solid #e1e1e1; 
 
    border-radius: 5%; 
 
    text-transform: uppercase; 
 
    overflow: hidden; 
 
} 
 
#dropdown-submenu { 
 
    display: none; 
 
    background-color: #f9f9f9; 
 
    position: absolute; 
 
    box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2); 
 
    left: 100%; 
 
    top: 0px; 
 
} 
 
#dropdown-submenu a { 
 
    z-index: 1000; 
 
    width: 300px; 
 
    color: black; 
 
    font-family: 'Play'; 
 
    letter-spacing: 2px; 
 
    padding: 12px 16px; 
 
    text-decoration: none !important; 
 
    display: block; 
 
    text-align: center; 
 
    border-bottom: 0.1em solid #e1e1e1; 
 
    border-radius: 5%; 
 
    text-transform: uppercase; 
 
} 
 
.dropdown-content a:hover { 
 
    background-color: #f1f1f1 
 
} 
 
#dropdown-submenu a:hover { 
 
    background-color: #f1f1f1 
 
} 
 
.dropdown:hover .dropdown-content { 
 
    display: block; 
 
} 
 
.dropdown-content:hover #dropdown-submenu { 
 
    display: block; 
 
} 
 
.dropdown:hover .dropbtn { 
 
    background-color: #3e8e41; 
 
}
<div class="pricing-button"> 
 
    <div class="dropdown"> 
 
    <button class="dropbtn">Logo Design</button> 
 
    <div class="dropdown-content animated fadeIn"> 
 
     <a class="span1" href="#">Logo & Identity<i class="fa fa-caret-right icon-cadet-left"></i></a> 
 
     <div id="dropdown-submenu"> 
 
     <a>Logo Design</a> 
 
     <a>Business Cards</a> 
 
     <a>Sationary</a> 
 
     <a>Holiday Doodles</a> 
 
     </div> 
 
     <a class="hover2" href="#">Business & Advertising<i class="fa fa-caret-right icon-cadet-left"></i></a> 
 
     <div id="dropdown-submenu"> 
 
     <a>Sample 01</a> 
 
     <a>Sample 02</a> 
 
     <a>Sample 03</a> 
 
     <a>Sample 04</a> 
 
     </div> 
 
     <a class="hover3" href="#">Website & Digitals<i class="fa fa-caret-right icon-cadet-left"></i></a> 
 
     <div id="dropdown-submenu"> 
 
     <a>Sample 01</a> 
 
     <a>Sample 02</a> 
 
     <a>Sample 03</a> 
 
     <a>Sample 04</a> 
 
     </div> 
 
     <a class="hover4" href="#">Textile Designing<i class="fa fa-caret-right icon-cadet-left"></i></a> 
 
     <div id="dropdown-submenu"> 
 
     <a>Sample 01</a> 
 
     <a>Sample 02</a> 
 
     <a>Sample 03</a> 
 
     <a>Sample 04</a> 
 
     </div> 
 
    </div> 
 
    </div> 
 
</div>

回答

1

所以这是我在你的代码更改:

  1. 你有无效syntax-你不能有多个id S-使用class ES为。

    因此,我将dropdown-submenu更改为class。和

  2. 代替.dropdown-content:hover #dropdown-submenu使用这样的:

    .dropdown-content a:hover + .dropdown-submenu { 
        display: block; 
    } 
    

    相邻兄弟选择器(+)选择dropdown-submenu紧随菜单a标签。

相邻兄弟选择器(+),其选择紧随同级元素。例如, 参见herehere

让我知道您对此的反馈。谢谢!

.icon-cadet-left { 
 
    float: right; 
 
} 
 
.dropbtn { 
 
    width: 300px; 
 
    background-color: #4CAF50; 
 
    color: white; 
 
    padding: 16px; 
 
    font-family: 'Play'; 
 
    font-size: 20px; 
 
    border: none; 
 
    cursor: pointer; 
 
    text-transform: uppercase; 
 
    letter-spacing: 2px; 
 
} 
 
.dropdown { 
 
    position: relative; 
 
    display: inline-block; 
 
} 
 
.dropdown-content { 
 
    display: none; 
 
    position: relative; 
 
    background-color: #f9f9f9; 
 
    min-width: 160px; 
 
    box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2); 
 
} 
 
.dropdown-content a { 
 
    width: 300px; 
 
    color: black; 
 
    font-family: 'Play'; 
 
    letter-spacing: 2px; 
 
    padding: 12px 16px; 
 
    text-decoration: none !important; 
 
    display: block; 
 
    text-align: center; 
 
    border-bottom: 0.1em solid #e1e1e1; 
 
    border-radius: 5%; 
 
    text-transform: uppercase; 
 
    overflow: hidden; 
 
} 
 
.dropdown-submenu { 
 
    display: none; 
 
    background-color: #f9f9f9; 
 
    position: absolute; 
 
    box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2); 
 
    left: 100%; 
 
    top: 0px; 
 
} 
 
.dropdown-submenu a { 
 
    z-index: 1000; 
 
    width: 300px; 
 
    color: black; 
 
    font-family: 'Play'; 
 
    letter-spacing: 2px; 
 
    padding: 12px 16px; 
 
    text-decoration: none !important; 
 
    display: block; 
 
    text-align: center; 
 
    border-bottom: 0.1em solid #e1e1e1; 
 
    border-radius: 5%; 
 
    text-transform: uppercase; 
 
} 
 
.dropdown-content a:hover { 
 
    background-color: #f1f1f1 
 
} 
 
.dropdown-submenu a:hover { 
 
    background-color: #f1f1f1 
 
} 
 
.dropdown:hover .dropdown-content { 
 
    display: block; 
 
} 
 
.dropdown-content a:hover + .dropdown-submenu { 
 
    display: block; 
 
} 
 
.dropdown:hover .dropbtn { 
 
    background-color: #3e8e41; 
 
}
<div class="pricing-button"> 
 
    <div class="dropdown"> 
 
    <button class="dropbtn">Logo Design</button> 
 
    <div class="dropdown-content animated fadeIn"> 
 
     <a class="span1" href="#">Logo & Identity<i class="fa fa-caret-right icon-cadet-left"></i></a> 
 
     <div class="dropdown-submenu"> 
 
     <a>Logo Design</a> 
 
     <a>Business Cards</a> 
 
     <a>Sationary</a> 
 
     <a>Holiday Doodles</a> 
 
     </div> 
 
     <a class="hover2" href="#">Business & Advertising<i class="fa fa-caret-right icon-cadet-left"></i></a> 
 
     <div class="dropdown-submenu"> 
 
     <a>Sample 01</a> 
 
     <a>Sample 02</a> 
 
     <a>Sample 03</a> 
 
     <a>Sample 04</a> 
 
     </div> 
 
     <a class="hover3" href="#">Website & Digitals<i class="fa fa-caret-right icon-cadet-left"></i></a> 
 
     <div class="dropdown-submenu"> 
 
     <a>Sample 01</a> 
 
     <a>Sample 02</a> 
 
     <a>Sample 03</a> 
 
     <a>Sample 04</a> 
 
     </div> 
 
     <a class="hover4" href="#">Textile Designing<i class="fa fa-caret-right icon-cadet-left"></i></a> 
 
     <div class="dropdown-submenu"> 
 
     <a>Sample 01</a> 
 
     <a>Sample 02</a> 
 
     <a>Sample 03</a> 
 
     <a>Sample 04</a> 
 
     </div> 
 
    </div> 
 
    </div> 
 
</div>

+0

它看起来很好,但为什么当我尝试选择任何子菜单都会消失...... –

+0

@SyedMuhammadIftikhar对于最近的回复抱歉,错过了您的评论....这是因为'dropdown-submenu'在“a '我们正在把它悬停......改变你的标记,并删除CSS中的'+'会钉我猜..让我知道你的反馈。谢谢! – kukkuz

0

我已经看到你的代码具有相同的id =“下拉菜单,子菜单”好几次,但不应该是。 id属性为HTML元素指定一个唯一的id(该值在HTML文档中必须是唯一的)。如果您需要多次,那么您应该声明为class =“dropdown-submenu”,那么您必须使用.dropdown-submenu而不是#dropdown-submenu。

请先纠正您的ID相关的错误,然后尝试。希望它能工作。

谢谢!