2017-05-06 60 views
1

美好的一天, 我想知道是否有人可以看看這個幫助我理解爲什麼第二個標籤按鈕似乎不起作用。 我想使用標籤按鈕和右側div來製作包裝div,左側div以顯示內容。 如果我把左邊的顯示/隱藏div與按鈕然後它顯示並隱藏它應該,但是,當它在右邊的div時,按鈕什麼也不做。在另一個容器中顯示/隱藏div

#chk:checked~#tab1, 
 
#chk2:checked~#tab2 { 
 
    display: none; 
 
} 
 

 
div.wrapper { 
 
    width: 100%; 
 
    background: black; 
 
    height: 300px; 
 
} 
 

 
div.forred { 
 
    width: 80%; 
 
    float: right; 
 
} 
 

 
div.left { 
 
    width: 20%; 
 
    float left; 
 
} 
 

 
div#tab1 { 
 
    background: red; 
 
    width: 100%; 
 
    text-align: center; 
 
} 
 

 
div#tab2 { 
 
    background: red; 
 
    width: 100%; 
 
    text-align: center; 
 
} 
 

 
div.right { 
 
    width: 80%; 
 
    float: right; 
 
} 
 

 
input.tabs { 
 
    display: none; 
 
} 
 

 
label.tab_button { 
 
    float: left; 
 
    padding: 15px 0px; 
 
    font-weight: 600; 
 
    text-align: center; 
 
    color: #FFFFFF; 
 
    border-bottom: 1px inset black; 
 
    background: #30E514; 
 
    width: 100%; 
 
}
<div class="wrapper"> 
 
    <div class="left"> 
 
    <input type=checkbox id=chk class=tabs> 
 
    <label for=chk class=tab_button>tab 1</label> 
 
    <input type=checkbox id=chk2 class=tabs> 
 
    <label for=chk2 class=tab_button>tab 2</label> 
 
    <div id=tab1> 
 
     OVER HERE 
 
    </div> 
 
    </div> 
 
    <div class="right"> 
 
    <div id=tab2> 
 
     OVER HERE 
 
    </div> 
 
    </div> 
 
</div>

回答

0

你的第二個 「按鈕」 不工作,因爲看看你的CSS的這一部分:

#chk:checked ~ #tab1, 
#chk2:checked ~ #tab2 { display:none; } 

在這裏,你申請#chk的兄弟:檢查顯示:無;它適用於第一個「按鈕」,因爲在HTML中,您可以看到#tab1是#chk的兄弟:checked,但是,正如您已經猜到的那樣,#chk2:checked不是#tab2的兄弟。因此,在div#tab1後面向上移動div#tab2,然後它就會起作用。

此外,我花了一些時間來修改您的代碼,使它們在第一時間不可見,然後,如果有人點擊tab1或tab2,就可以看到它們。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" /> 
<meta name="viewport" content="width=device-width, initial-scale=1.0"/> 
<title>Untitled 1</title> 

<style> 

    div.wrapper {width: 100%; background: black; height: 300px;} 
    div.left {width: 20%; float left;} 
    input.tabs { display: none;} 
    label.tab_button { 
     float: left; 
     padding: 15px 0px; 
     font-weight: 600; 
     text-align: center; 
     color: #FFFFFF; 
     border-bottom: 1px inset black; 
     background: #30E514; 
     width: 100%; 
    } 
    #tab1, #tab2 {background: red; width: 100%; text-align: center;} 
    div.right { width: 80%; float: right;} 

    #tab1, #tab2 {display:none;} 

    #chk:checked ~ #tab1, 
    #chk2:checked ~ #tab2 { display:block; } 

</style> 
</head> 
<body> 
<div class="wrapper"> 
    <div class="left"> 
     <input type="checkbox" id="chk" class="tabs"> 
     <label for="chk" class="tab_button">tab 1</label> 
     <input type="checkbox" id="chk2" class="tabs"> 
     <label for="chk2" class="tab_button">tab 2</label> 
     <div id="tab1"> 
      TAB 1 HERE 
     </div> 
     <div id="tab2"> 
      TAB 2 HERE 
     </div> 
    </div> 
    <div class="right"> 
     Right div 
    </div> 
</div> 
</body> 
</html> 

希望這有助於!

+0

謝謝你的幫助。我試圖讓div顯示在右邊。所以當左邊div容器中的按鈕被按下時,它會在右邊顯示div。有沒有辦法讓按鈕顯示在右邊的其他股利div內容? – jObE