点击隐藏此(按钮链接)纯CSS

时间:2014-03-11 06:39:59

标签: html css html5 css3

我的功能是隐藏并使用纯css 显示div但是当我点击打开时,该按钮仍然不会消失。

<a href="#show" id="open" class="btn btn-default btn-sm">Open</a>
<div id="show">
  some text...
  <a href="#hide" id="close" class="btn btn-default btn-sm">Close</a>
</div>

和css看起来像:

<style>
    #show {display: none; }
    #show:target { display: inline-block; }
    #hide:target ~ #show { display: none; }
<style>

当我添加这个:

#show:target ~ #open { display: none; }

按钮#open仍未隐藏 任何人都可以帮助我。

之前感谢:)

3 个答案:

答案 0 :(得分:6)

您可以通过将您的Open链接放在#show div

中来解决此问题

<强> jsFiddle

<强> HTML

<div id="show">
    <a href="#show" id="open" class="btn btn-default btn-sm">Open</a>
    <div id="content">
        some text...
        <a href="#hide" id="close" class="btn btn-default btn-sm">Close</a>
    </div>
</div>

<强> CSS

#content {
    display: none;
}
#show:target #content {
    display: inline-block;
}
#show:target #open {
    display: none;
}

答案 1 :(得分:3)

可以使用Checkbox为纯css实现点击功能。我按如下方式修改了您的HTML:

<强> HTML

<input id="checkbox" type="checkbox" class="checkbox" />
<label id="open" for="checkbox" class="btn btn-default btn-sm"> <span class="show-text"></span>

</label>
<div id="show">some text...
    <label for="checkbox" class="second-label btn btn-default btn-sm">Close</label>
</div>

<强> CSS

:checked ~ .btn-default, #show, .checkbox {
    display: none;
}
:checked ~ #show {
    display: block;
}
.show-text:after {
    content:"Open";
}
:checked + .show-text:after {
    content:"";
}
.second-label, .show-text {
    text-decoration: underline;
    cursor: pointer;
}

Working Fiddle

答案 2 :(得分:1)

Mr_Green感谢您提供该代码。我将其修改为移动设备上的响应式扩展菜单

HTML

<input id="menu-toggle" type="checkbox" class="checkbox-toggle" />
<label id="open" for="menu-toggle" class="btn btn-default">Menu</label>
<div id="show">
   Some Content
</div>

CSS

@media (max-width: 650px) {

input.checkbox-toggle + label {
    display: block;
    padding:.7em 0;
    width:100%;
    background:#bbbbbb;
    cursor: pointer;
    text-align:center;
    color:white;
    Text-transform:uppercase;
    font-family:helvetica, san serif;
    }

input.checkbox-toggle:checked + label {
    background:#6a6a6a;
    }

#show {
    display: none;
    }

input.checkbox-toggle:checked ~ #show {
    display: block;
    }

}

input.checkbox-toggle {
    display: none;
    }