2012-03-02 230 views
2

我正在尋找適用於此挑戰的HTML/CSS解決方案: 我有多個具有相同類或相同ID的元素,並且我希望使用按鈕或切換開關同時顯示/隱藏它們。所以我有一個點擊事件,當我點擊代表所有這些元素的類或ID時,它們都隱藏起來。當我再次點擊時,他們必須再次顯示。HTML/CSS顯示/隱藏多個元素?

我將不勝感激

感謝

+0

沒有這樣的事,作爲一個在CSS中點擊事件,在HTML中最接近的是錨點。我相信你會需要JavaScript。 – xec 2012-03-02 13:32:32

+0

您可以使用javascript或jquery實現此功能 – 2012-03-02 13:33:10

+2

請不要在具有相同ID的頁面上創建多個元素。 – Andrew 2012-03-02 13:50:24

回答

5

HTML和CSS用於描述內容的靜態表示 - 無法使用HTML/CSS動態地隱藏/顯示內容。你將需要使用Javascript來做到這一點。代碼示例(非常簡單和unelegant爲例):

<div id="somediv">Hide This</div> 
<input type="button" onclick="hide('somediv')" value="Hide Div"/> 
<script type="text/javascript"> 
    function hide(div_id) { 
      document.getElementById(div_id).style.display = "none"; 
    } 
</script> 

一個更好的解決辦法是使用jQuery,但我認爲你的情況下,你首先應該移動到之前的jQuery學習JavaScript和HTML/CSS的基礎知識。

+0

感謝你,這真的看起來像一個可行的解決方案,將嘗試。 – DextrousDave 2012-03-02 16:26:45

1

還有就是你的任務沒有CSS的解決方案。尋找JQuery函數.toggle()。

$('.button').click(function(){ 
    $('.some_class').toggle(); 
}); 
1

在jQuery中,你可以直接電話諮詢:

$('.ToggleMe).toggle(); 

其中.ToggleMe是類的元素。

要通過ID切換:

$("#ToggleMe").toggle(); 

還可以切換我的名字:

$('div[name=ToggleMe]') 
+0

我是通用的,你可以傳遞ID的名稱到$構造函數,我已經澄清了我的答案,但以防萬一:) – HeavenCore 2012-03-02 13:41:17

+0

感謝您的回答,將盡力 – DextrousDave 2012-03-02 16:21:42

3

使用相同ID的HTML元素!使用元素類屬性。 jQuery是很好的事,但矯枉過正這樣的事情:)

<div class="hide1">One</div> 
<div class="hide2">Two</div> 

<a href="#" onclick="ToggleVisibility('hide1'); return false;">One</a> 
<a href="#" onclick="ToggleVisibility('hide2'); return false;">Two</a> 
<a href="#" onclick="ToggleVisibility('nosuchclass'); return false;">No hide</a> 

而且簡單的JS代碼:

function ToggleVisibility(divClass) 
{ 
    var els = document.getElementsByClassName(divClass); 
    for(var i = 0; i < els.length; i++) 
    { 
     els[i].style.visibility = els[i].style.visibility == "hidden" ? "visible" : "hidden"; 
    } 
} 

據W3Schools的,能見度是所有主流瀏覽器非標準的東西 http://www.w3schools.com/jsref/prop_style_visibility.asp

+0

謝謝您的回答。我的大腦會對此咀嚼。讚賞 – DextrousDave 2012-03-02 16:21:19

2

你可以用CSS來完成。 看到這個簡單的例子http://jsfiddle.net/rHSmV/(代碼粘貼在下面)。

看到這裏http://dev.opera.com/articles/view/css3-show-and-hide/

這裏http://cssdeck.com/labs/css-only-showhide

進行更深入的示例

<html> 
<head> 
<style type='text/css'> 
/* Use a checkbox to workaround showing and hiding */ 
input[type=checkbox] { 
    position: absolute; 
    top: -9999px; 
    left: -9999px; 
} 
label { 
    cursor: pointer; 
} 
/* Shown */ 
div.showhide { 
    display: inline; 
} 
/* Hidden */ 
input[type=checkbox]:checked ~ div.showhide { 
    display: none; 
} 
</style> 
</head> 
<body> 
<label for="showHide">Show/Hide</label> 
<input type="checkbox" id="showHide"> 
<div class="showhide"> 
    <p>Show and hide me without JavaScript!</p> 
</div> 
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.</p> 
<div class="showhide"> 
    <p>Show and hide me too without JavaScript!</p> 
</div> 

</body> 

</html> 
1

您可以使用jQuery ...

$("id of button").click(function(e) { 
if($("class of elements").css("display") != "none") { 
    $("class of elements").hide(); 
    $("class of elements").css("display","none"); 
} else { 
    $("class of elements").show(); 
    $("class of elements").css("display","block"); 
} 
});