HTML / CSS显示/隐藏多个元素?

时间:2012-03-02 13:30:10

标签: html css

我正在寻找针对此挑战的HTML / CSS解决方案: 我有多个具有相同类或相同ID的元素,我想使用按钮或切换开关同时显示/隐藏它们。所以我有一个点击事件,当我点击代表所有这些元素的那个类或ID时,它们都隐藏了。当我再次点击时,它们必须再次显示。

我很感激

由于

6 个答案:

答案 0 :(得分:5)

HTML和CSS用于描述内容的静态表示 - 无法使用HTML / CSS动态隐藏/显示内容。您需要使用Javascript来执行此操作。代码示例(非常简单和不典型的例子):

<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但我认为你应该首先学习Javascript和HTML / CSS的基础知识,然后再转到jQuery。

答案 1 :(得分:3)

对HTML元素使用相同的ID!使用元素类属性。 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

答案 2 :(得分: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>

答案 3 :(得分:2)

你可以使用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");
 }
});

答案 4 :(得分:1)

您的任务没有CSS解决方案。寻找JQuery函数.toggle()。

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

答案 5 :(得分:1)

在Jquery中,你可以简单地调用:

$('.ToggleMe).toggle();

其中.ToggleMe是元素的类。

按ID切换:

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

切换我的名字:

$('div[name=ToggleMe]')