仅使用 css 显示隐藏 div

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/17042279/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-29 23:10:39  来源:igfitidea点击:

Show Hide div with css only

javascriptcssxhtml

提问by acctman

I'm trying to do a show / hide using css only, is that possible or does some type of jscript is needed? this is what i'm trying to do, when anyone one of the 4 div's are clicked the div for it below is shown.

我正在尝试仅使用 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>

Show div when div is click:

单击 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>

回答by Explosion Pills

You can use a hidden input that can be toggled that corresponds to the label in the click area.

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

<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>

Then in your CSS:

然后在你的 CSS 中:

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

I would also stear clear of styleand just use the stylesheet.

我也会避免style使用样式表。

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

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

回答by David says reinstate Monica

In most browsers you should simply use the hrefattribute of the aelements and an idfor the element to show:

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

<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>

Coupled with the CSS:

结合CSS:

#content > div {
    display: none;
}

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

JS Fiddle demo.

JS小提琴演示

In the HTML the wrapper div(#content) isn't necessary, it's simply to make it easier to specifically target those elements it contains (you could, of course, simply use a classinstead).

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

To add hiding functionality (to hide all, rather than just hide the sibling divs when showing another), unfortunately requires a link to trigger a hash-change (in order to stop the :targetselector matching the divs), which in turn requires a link (either in each of the divs to show or elsewhere in the document, either linking elswhere (as follows):

要添加隐藏功能(隐藏所有divs ,而不是在显示另一个时只隐藏同级s),不幸的是需要一个链接来触发哈希更改(为了停止:target匹配divs的选择器),而这又需要一个链接(无论是在div要显示的每个s 中,还是在文档的其他地方,要么链接 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 demo (link in each div).

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

Or the simple use of just a hash:

或者只是一个散列的简单使用:

  • Div one
  • Div two
  • Div three
  • Div four
  • hide
  • 一格
  • 二区
  • 三区
  • 四格
  • 隐藏

<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 demo (using a single a, and an 'empty' hash).

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

回答by nur farazi

this is how i solve show hide problem with just

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

here is my div with its class declared

这是我的 div 声明了它的类

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

and here is the javascript that

这是javascript

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

and

$('.loading').css("display", "block");