我有一把css手风琴,我需要在点击每个标题时自动关闭.这样一次只能打开一个部分.现在他们都保持开放.
<section class="ac-container">
<div>
<input id="ac-1" name="accordion-1" type="checkbox" />
<label for="ac-1"> title 1</label>
<article class="ac-small">
<p>some content</p>
</article>
</div>
<div>
<input id="ac-2" name="accordion-1" type="checkbox" />
<label for="ac-2">title 2</label>
<article class="ac-small">
<p>some content </p>
</article>
</div>
<div>
<input id="ac-3" name="accordion-1" type="checkbox" />
<label for="ac-3">title 3</label>
<article class="ac-small">
<p>some content</p>
</article>
</div>
</section>
CSS
.ac-container {
margin-left: 200px;
margin-top: 100px;
}
.ac-container h3 {
font-size: 1.2em;
margin-bottom: 25px;
margin-top: 5px;
margin-left: -70px;
width: 500px
}
.ac-container h1 {
font-size: 3.2em;
margin-bottom: 10px;
width: 370px;
color: #eb519c;
}
.ac-container p {
margin-left: 40px
}
.ac-container{
width: 450px;
margin: 10px auto 30px auto;
text-align: left;
height: auto;
background-color: #2d2d2d;
}
.ac-container label{
font-family: 'forced_squaremedium', helvetica , sans-serif;
padding: 5px 60px;
position: relative;
text-transform: lowercase;
z-index: 20;
display: block;
height: auto;
cursor: pointer;
color: #fff;
line-height: 33px;
font-size: 1.5em;
background: #ffffff;
}
.ac-container label:hover{
background: #2d2d2d;
}
.ac-container input:checked + label,
.ac-container input:checked + label:hover{
background: #2d2d2d;
color: #5dc8d6;
background-image: url(../img/pinkBulletTurn.png);
background-repeat: no-repeat;
background-position: 3.1% -.1%;
}
.ac-container label:hover:after,
.ac-container input:checked + label:hover:after{
content: '';
position: absolute;
width: 24px;
height: 24px;
right: 413px;
top: 7px;
background: transparent url(../img/whiteBullet.png) no-repeat center center;
}
.ac-container input:checked + label:hover:after{
background-image: url(../img/blueBullet.png);
background-position:center bottom;
}
.ac-container input{
display: none;
background-image: url(../img/whiteBullet.png);
}
.ac-container article{
background: #43535b;
margin-top: -1px;
overflow: hidden;
height: 0px;
position: relative;
z-index: 10;
-webkit-transition: height 0.3s ease-in-out, box-shadow 0.6s linear;
-moz-transition: height 0.3s ease-in-out, box-shadow 0.6s linear;
-o-transition: height 0.3s ease-in-out, box-shadow 0.6s linear;
-ms-transition: height 0.3s ease-in-out, box-shadow 0.6s linear;
transition: height 0.3s ease-in-out, box-shadow 0.6s linear;
}
.ac-container article p{
font-style: italic;
color: #fff;
line-height: 23px;
font-size: 14px;
padding: 20px;
}
.ac-container input:checked ~ article{
-webkit-transition: height 0.5s ease-in-out, box-shadow 0.1s linear;
-moz-transition: height 0.5s ease-in-out, box-shadow 0.1s linear;
-o-transition: height 0.5s ease-in-out, box-shadow 0.1s linear;
-ms-transition: height 0.5s ease-in-out, box-shadow 0.1s linear;
transition: height 0.5s ease-in-out, box-shadow 0.1s linear;
}
.ac-container input:checked ~ article.ac-small{
height: auto;
}
.ac-container input:checked ~ article.ac-medium{
height: 180px;
}
.ac-container input:checked ~ article.ac-large{
height: 230px;
}
.ac-container label {
background-color: #2d2d2d;
background-image: url(../img/pinkBullet.png);
background-repeat: no-repeat;
background-position: 2.5%
}
我制作了它的代码笔:http://codepen.io/anon/pen/zvBKby
谢谢!
最佳答案 您只需要在输入元素中进行更改:
type="checkbox"
至:
type="radio"
但是你应该注意到这一点,总是会打开一个标签.