2017-05-06 61 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