2015-12-21 69 views
1

我試圖使鼠標懸停時出現下拉菜單,但出於某種原因,菜單不出現。下拉列表不會出現在鼠標懸停上

* { 
 
    margin: 0; 
 
    padding: 0; 
 
} 
 

 
.header { 
 
    position: fixed; 
 
    list-style-type: none; 
 
    height: 35px; 
 
    width: 100%; 
 
    overflow: hidden; 
 
    background: #333333; 
 
} 
 

 
.header > li { 
 
    display: inline-block; 
 
    padding: 8px; 
 
} 
 

 
.header > li:hover { 
 
    background: #000000; 
 
} 
 

 
.home { 
 
    margin-left: 10%; 
 
} 
 

 
.home a:link { 
 
    color: #FFF; 
 
} 
 

 
.home a:visited { 
 
    color: #AAA; 
 
} 
 

 
.home a:hover { 
 
    color: #00F; 
 
} 
 

 
.home a:active { 
 
    color: #F00; 
 
} 
 

 
.dropdown { 
 
    display: block; /* I guess that something is wrong here */ 
 
    width: auto; 
 
    color: #FFF; 
 
} 
 

 
.dropdown li { 
 
    list-style-type: none; 
 
    display: block; /* I guess that something is wrong here too */ 
 
    position: absolute; /* and here */ 
 
    top: 100%; 
 
    color: red; 
 
    width: auto; 
 
    opacity: 0; 
 
    background: yellow; 
 
    border: 1px solid black; 
 
    transition: opacity 1s; 
 
} 
 

 
.dropdown:hover, 
 
.dropdown li:hover { 
 
    opacity: 1; 
 
} 
 

 
.main { 
 
    margin-top: 20px; 
 
    padding-top: 20px; 
 
    height: 50px; 
 
    display: block; 
 
    background: white; 
 
    text-align: center; 
 
    font-size: 20px; 
 
    transition: background 1s; 
 
} 
 

 
.main:hover { 
 
    background: #CCCCCC; 
 
}
<body> 
 
    <ul class="header"> 
 
    <li class="home"><a href="#">&#8962; Home</a> 
 
    </li> 
 
    <li class="dropdown">Dropdown &#10097; 
 
     <ul> 
 
     <li>item 1</li> 
 
     <li>item 2</li> 
 
     <li>item 3</li> 
 
     </ul> 
 
    </li> 
 
    </ul> 
 

 
    <br> 
 

 
    <section> 
 
    <div class="main"> 
 
     Content... 
 
    </div> 
 
    </section> 
 
</body>

我試圖做到這一點使用CSS和HTML只。

我已經評論旁邊的三條線,我認爲是造成這個問題,但我似乎無法弄清楚。什麼是問題?我如何解決它?

回答

3

首先,我們從標題中刪除overflow:hidden,這將停止顯示子菜單。

然後上級li應設置爲position:relative和孩子ulposition:absolute(而不是單個li)。

刪除display:none:hover,你就在那裏。

* { 
 
    margin: 0; 
 
    padding: 0; 
 
} 
 
.header { 
 
    position: fixed; 
 
    list-style-type: none; 
 
    height: 35px; 
 
    width: 100%; 
 
    /*overflow: hidden;*/ 
 
    background: #333333; 
 
} 
 
.header > li { 
 
    display: inline-block; 
 
    padding: 8px; 
 
} 
 
.header > li:hover { 
 
    background: #000000; 
 
} 
 
.home { 
 
    margin-left: 10%; 
 
} 
 
.home a:link { 
 
    color: #FFF; 
 
} 
 
.home a:visited { 
 
    color: #AAA; 
 
} 
 
.home a:hover { 
 
    color: #00F; 
 
} 
 
.home a:active { 
 
    color: #F00; 
 
} 
 
.dropdown { 
 
    color: #FFF; 
 
    position: relative; 
 
} 
 
.dropdown ul { 
 
    list-style-type: none; 
 
    position: absolute; 
 
    /* and here */ 
 
    top: 100%; 
 
    left: 0; 
 
    color: red; 
 
    width: auto; 
 
    display: none; 
 
    background: yellow; 
 
    border: 1px solid black; 
 
} 
 
.dropdown:hover ul { 
 
    display: block; 
 
} 
 
.main { 
 
    margin-top: 20px; 
 
    padding-top: 20px; 
 
    height: 50px; 
 
    display: block; 
 
    background: white; 
 
    text-align: center; 
 
    font-size: 20px; 
 
    transition: background 1s; 
 
} 
 
.main:hover { 
 
    background: #CCCCCC; 
 
}
<body> 
 
    <ul class="header"> 
 
    <li class="home"><a href="#">&#8962; Home</a> 
 
    </li> 
 
    <li class="dropdown">Dropdown &#10097; 
 
     <ul> 
 
     <li>item 1</li> 
 
     <li>item 2</li> 
 
     <li>item 3</li> 
 
     </ul> 
 
    </li> 
 
    </ul> 
 

 
    <br> 
 

 
    <section> 
 
    <div class="main"> 
 
     Content... 
 
    </div> 
 
    </section> 
 
</body>

+0

我想'.dropwdown李{不透明度:0; }'因爲它也是它自己的一小部分,保利:D –

+0

我把它拿出來了......在問題的條款中沒有真正的必要。 –

+0

我知道你有足夠的信息來回答每一個CSS問題,但你不這樣做。你總是喜歡評論而不是張貼答案。 – Alex