6

我正在尝试仅使用 css 进行显示/隐藏,这是可能的还是需要某种类型的 jscript?这就是我正在尝试做的事情,当单击 4 个 div 中的任何一个时,会显示下面的 div。

    <div class="span3">
        <img src="an1.jpg" class="img-rounded" />
        <h3>AN1<br />1234</h3>
    </div>

    <div class="span3">
        <img src="an2.jpg" class="img-rounded" />
        <h3>AN2<br />1234</h3>
    </div>

    <div class="span3">
        <img src="an3.jpg" class="img-rounded" />
        <h3>AN3<br />1234</h3>
    </div>

    <div class="span3">
        <img src="an4.jpg" class="img-rounded" />
        <h3>AN4<br />1234</h3>
    </div>

单击 div 时显示 div:

<div style="display: none;"> this is AN1 </div>
<div style="display: none;"> this is AN2 </div>
<div style="display: none;"> this is AN3 </div>
<div style="display: none;"> this is AN4 </div>
4

3 回答 3

12

您可以使用与单击区域中的标签相对应的可切换隐藏输入。

<div class="span3">
<label for="an1">
    <img src="an1.jpg" class="img-rounded" />
</label>
<h3><label for="an1">AN1<br />1234</label></h3>
</div>
...
<input id="an1" type=checkbox><div style="display: none;"> this is AN1 </div>

然后在你的 CSS 中:

[type=checkbox] {
    display: none;
}
:checked + div {
    display: block !important;
}

我也会避开style并只使用样式表。

http://jsfiddle.net/ExplosionPIlls/ZyAXA/1/

于 2013-06-11T10:55:21.660 回答
7

在大多数浏览器中,您应该简单地使用元素的属性和href元素来显示:aid

<a href="#div1">Div one</a>
<a href="#div2">Div two</a>
<a href="#div3">Div three</a>
<a href="#div4">Div four</a>

<div id="content">
    <div id="div1">This is div one</div>
    <div id="div2">This is div two</div>
    <div id="div3">This is div three</div>
    <div id="div4">This is div four</div>
</div>

再加上CSS:

#content > div {
    display: none;
}

#content > div:target {
    display: block;
}

JS 小提琴演示

在 HTML 中,包装器div( #content) 不是必需的,它只是为了更容易专门针对它包含的那些元素(当然,您可以简单地使用 aclass代替)。

要添加隐藏功能(隐藏所有s ,而不是div在显示另一个时隐藏兄弟 s),不幸的是需要一个链接来触发哈希更改(为了停止:target匹配divs 的选择器),这反过来又需要一个链接(在要显示的每个divs 中或文档的其他地方,或者链接 elswhere(如下所示):

<ul id="andHideAgain">
    <li><a href="#div1">Div one</a></li>
    <li><a href="#div2">Div two</a></li>
    <li><a href="#div3">Div three</a></li>
    <li><a href="#div4">Div four</a></li>
</ul>

<div id="content">
    <div id="div1">This is div one <a class="hide" href="#andHideAgain">hide</a></div>
    <div id="div2">This is div two <a class="hide" href="#andHideAgain">hide</a></div>
    <div id="div3">This is div three <a class="hide" href="#andHideAgain">hide</a></div>
    <div id="div4">This is div four <a class="hide" href="#andHideAgain">hide</a></div>
</div>

JS Fiddle 演示(每个链接中的链接div

或者简单地使用一个哈希:

  • 第一节
  • 第二部分
  • 第三部分
  • 第四部分
  • 隐藏

<div id="content">
    <div id="div1">This is div one</div>
    <div id="div2">This is div two</div>
    <div id="div3">This is div three</div>
    <div id="div4">This is div four</div>
</div>

JS Fiddle 演示(使用单个a和“空”哈希)

于 2013-06-11T11:00:25.483 回答
4

这就是我解决显示隐藏问题的方法

这是我的 div 声明了它的类

 <div class='loading'> </div>

这是javascript

$('.loading').hide();

$('.loading').css("display", "block"); 
于 2015-09-23T08:46:12.700 回答