2017-06-05 41 views
0

我正在使用導航菜單的一系列提交按鈕(提交值將是整個站點的導航方法)。我從下拉菜單中創建了一個帶有彈出窗口的下拉菜單。但是,我無法弄清楚如何僅隔離下拉框中的懸停元素以顯示它的彈出窗口。所有下拉菜單項都顯示所有子菜單或無。我曾嘗試在不同區域使用>和+子選擇器。任何人都可以幫忙嗎?如何僅在類列表中選擇一個孩子

我的CSS:

/* Dropdown Button */ 
.ddb-container { 
width: 100%; 
    overflow: hidden; 
    background-color: #faebca; 
    font-family: Arial; 
    margin-top: 75px; 
    padding-left: 150px; 
    z-index: 1; 
    border-top: 3px black solid; 
    border-bottom: 3px black solid; 
    border-left: none; 
    border-right: none; 
} 

.ddb-container button { 
    margin: 0; 
    padding: 0; 
    float: left; 
    font-size: 14px; 
    border: none; 
    color: #000000; 
    text-align: center; 
    padding: 5px 10px; 
    text-decoration: none; 
    font-weight: bold; 
    background-color: transparent; 
} 

.ddb-container button:hover { 
    background-color: #dbcfa4; 
} 

.ddb-dropdown { 
    float: left; 
    overflow: hidden; 
    font-size: 14px;  
    font-weight: bold; 
} 

.ddb-dropdown .dropbtn { 
    border: none; 
    outline: none; 
    color: #000000; 
    padding: 5px 10px; 
    background-color: transparent; 
} 

.ddb-dropdown .dropbtn:hover { 
    background-color: #dbcfa4; 
} 

.ddb-dropdown .dropdown-level1 { 
    display: none; 
    position: absolute; 
    background-color: #faebca; 
    min-width: 160px; 
    box-shadow: 0px 8px 12px 0px rgba(0,0,0,0.2); 
    z-index: 1; 
} 

.ddb-dropdown:hover .dropdown-level1 { 
    display: block; 
} 

.ddb-dropdown .dropdown-level1 .dropdown-level2 { 
    display: none; 
    position: absolute; 
    background-color: #faebca; 
    min-width: 160px; 
    margin-left: 160px; 
    box-shadow: 0px 8px 12px 0px rgba(0,0,0,0.2); 
    z-index: 2; 
} 

.ddb-dropdown .dropdown-level1:hover .dropdown-level2 { 
    display: block; 
} 

HTML:

<div class='ddb-container'> 
<button type='submit' name='submit' value='0'>Home</button> 
<div class='ddb-dropdown'> 
    <div class='dropbtn'>Sales</div> 
     <div class='dropdown-level1'><button type='submit' name='submit' value='#1'>Link 1</button><br /><br /> 
     <button type='button'>Link 2 ></button><br /> 
      <div class='dropdown-level2'> 
      <button type='submit' name='submit' value='#1'>Sublink 1</button><br /> 
      <button type='submit' name='submit' value='#2'>Sublink 2</button><br /> 
      <button type='submit' name='submit' value='#3'>Sublink 3</button><br /><br /> 
      </div><br /> 
     <button type='submit' name='submit' value='#3'>Link 3</button><br /><br /> 
     <button type='submit' name='submit' value='#4'>Link 4</button><br /><br /> 
     <button type='button'>Link 5 ></button><br /> 
      <div class='dropdown-level2'> 
      <button type='submit' name='submit' value='#1'>Sublink 1</button><br /> 
      <button type='submit' name='submit' value='#2'>Sublink 2</button><br /> 
      <button type='submit' name='submit' value='#3'>Sublink 3</button><br /><br /> 
      </div><br /><button type='submit' name='submit' value='#6'>Link 6</button><br /><br /> 
     </div> 
</div> 

<div class='ddb-dropdown'> 
    <div class='dropbtn'>Purchasing</div> 
</div> 
<div class='ddb-dropdown'> 
    <div class='dropbtn'>Inventory</div> 
</div> 
<div class='ddb-dropdown'> 
    <div class='dropbtn'>Accounting</div> 
</div> 
<div class='ddb-dropdown'> 
    <div class='dropbtn'>Documents</div> 
</div> 
<div class='ddb-dropdown'> 
    <div class='dropbtn'>Tools</div> 
     <div class='dropdown-level1'> 
      <button type='submit' name='submit' value='#1'>Tools Link 1</button><br /><br /> 
      <button type='submit' name='submit' value='#2'>Tools Link 2</button><br /><br /> 
      <button type='submit' name='submit' value='#3'>Tools Link 3</button><br /><br /> 
      <button type='button'>Tools Link 4 ></button><br /> 
       <div class='dropdown-level2'> 
        <button type='submit' name='submit' value='#1'>Sublink 1</button><br /> 
        <button type='submit' name='submit' value='#2'>Sublink 2</button><br /> 
        <button type='submit' name='submit' value='#3'>Sublink 3</button><br /><br /> 
       </div><br /> 
      <button type='submit' name='submit' value='#5'>Tools Link 5</button><br /><br /> 
      <button type='submit' name='submit' value='#6'>Tools Link 6</button><br /><br /> 
     </div> 
    </div> 
<div class='ddb-dropdown'> 
    <div class='dropbtn'>Employees</div> 
</div> 
<div class='ddb-dropdown'> 
    <div class='dropbtn'>Administration</div> 
</div> 
+2

我會更好地顯示,呈現給瀏覽器的HTML,所以我們並不需要從你的PHP –

+0

重新創建它謝謝你,喬恩。我編輯它顯示HTML –

+0

不是說這會解決您的問題,但爲什麼使用'button'而不是'a'來鏈接? 'a'被設計用於鏈接。另外使用'br'作爲間隔是一種不好的做法,在CSS中使用'margin'代替。 –

回答

0

隨着您目前有你不能得到你想要的純CSS什麼HTML。您將需要JavaScript。重構你的HTML,我們可以用CSS來做到這一點。

雖然沒有必要用a替換buttons,但使用鏈接進行導航更加合理,請確保在href屬性中使用正確的url。

我們可以通過移除br標籤和使用相鄰兄弟選擇器(+),但將鼠標懸停在當已經實現懸停效果子菜單中的前一個兄弟就失去了懸停和子菜單將會消失。

通過創建層次結構,我們可以保持子菜單處於活動狀態,因爲他們接收到懸停時,其父項也是如此。嵌套列表是標記此層次結構的常用方法。

以下是一個截斷版本,可以幫助您順利完成任務。

/*Basic List Reset*/ 
 

 
ul.ddb-container, 
 
ul.ddb-container ul { 
 
    padding: 0; 
 
    list-style: none; 
 
} 
 

 

 
/*Basic Link Reset*/ 
 

 
ul.ddb-container a { 
 
    text-decoration: none; 
 
} 
 

 
ul.ddb-container a:link, 
 
ul.ddb-container a:visited { 
 
    color: #000; 
 
} 
 

 

 
/*Dropdown Magic*/ 
 

 
.ddb-container ul { 
 
    display: none; 
 
} 
 

 
.ddb-container { 
 
    width: 100%; 
 
    overflow: visible; 
 
    background-color: #faebca; 
 
    font-family: Arial; 
 
    margin-top: 75px; 
 
    padding-left: 150px; 
 
    z-index: 1; 
 
    border-top: 3px black solid; 
 
    border-bottom: 3px black solid; 
 
    border-left: none; 
 
    border-right: none; 
 
} 
 

 
.ddb-container > li { 
 
    margin: 0; 
 
    padding: 0; 
 
    display:inline-block; 
 
    font-size: 14px; 
 
    border: none; 
 
    color: #000000; 
 
    text-align: center; 
 
    padding: 5px 10px; 
 
    text-decoration: none; 
 
    font-weight: bold; 
 
    background-color: transparent; 
 
    position:relative; 
 
    overflow:visible; 
 
} 
 

 
.ddb-container li:hover { 
 
    background-color: #dbcfa4; 
 
} 
 

 
.ddb-dropdown .dropdown-level1 { 
 
    position: absolute; 
 
    background-color: #faebca; 
 
    min-width: 160px; 
 
    box-shadow: 0px 8px 12px 0px rgba(0, 0, 0, 0.2); 
 
    z-index: 1; 
 
    text-align:left; 
 
    top:26px; 
 
    left: 0; 
 
} 
 

 
.ddb-dropdown .dropdown-level1 .dropdown-level2 { 
 
    position: absolute; 
 
    background-color: #faebca; 
 
    min-width: 160px; 
 
    margin-left: 160px; 
 
    box-shadow: 0px 8px 12px 0px rgba(0, 0, 0, 0.2); 
 
    z-index: 2; 
 
} 
 

 
.ddb-dropdown ul > li { 
 
padding: 1em 0; 
 
} 
 

 
.ddb-container li:hover > ul { 
 
    display:block; 
 
}
<ul class='ddb-container'> 
 
    <li> 
 
    <a href="#">Home</a> 
 
    </li> 
 
    <li class='ddb-dropdown'> 
 
    <a href="#">Sales</a> 
 
    <ul class="dropdown-level1"> 
 
     <li><a href="#">Link 1</a></li> 
 
     <li><a href="#">Link 2 ></a> 
 
     <ul class='dropdown-level2'> 
 
      <li><a href="#">Link2 Sublink 1</a></li> 
 
      <li><a href="#">Link2 Sublink 2</a></li> 
 
      <li><a href="#">Link2 Sublink 3</a></li> 
 
     </ul> 
 
     </li> 
 
     <li><a href="#">Link 3</a></li> 
 
     <li><a href="#">Link 4</a></li> 
 
     <li><a href="#">Link 5 ></a> 
 
     <ul class='dropdown-level2'> 
 
      <li><a href="#">Link5 Sublink 1</a></li> 
 
      <li><a href="#">Link5 Sublink 2</a></li> 
 
      <li><a href="#">Link5 Sublink 3</a></li> 
 
     </ul> 
 
     </li> 
 
     <li><a href="#">Link 6</a></li> 
 
    </ul> 
 
    </li> 
 
    <li><a href="#">Purchasing</a></li> 
 
</ul>

相關問題