2016-10-01 263 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相關的錯誤,然後嘗試。希望它能工作。

謝謝!