我在条款和条件中使用一个简单的仅限CSS的手风琴来隐藏和显示带有复选框和转换属性的子句。但是,在更新此信息时,项目符号之间会出现大量不一致的差距。它发生在下拉内容超过三段并且每个间隙的高度不同的地方。
使用最少的代码来解决此问题的最佳解决方案是什么?仅限使用CSS?
*绝对不能使用jQuery,Javascript或其他外部库。 完整的代码可以在这里找到: codepen.io/makecodenotwar/pen/dmXpjJ
SAMPLE:一个项目符号点的HTML结构(代码集中的完整代码):
<ul>
<li>
<input type="checkbox" checked>
<i></i>
<h5><span>►</span>Payment Clause</h5>
<p>Blah, blah, blah...</p>
</li>
</ul>
SAMPLE CSS
p {
position: relative;
overflow: hidden;
opacity: 1;
transform: translate(0, 0);
z-index: 2;
}
ul li {
position: relative;
overflow: hidden;
}
ul li i {
position: absolute;
transform: translate(-6px, 0);
}
ul li i:before, ul li i:after {
content: "";
position: absolute;
width: 3px;
height: 9px;
}
ul li i:before {
transform: translate(-2px, 0) rotate(45deg);
}
ul li i:after {
transform: translate(2px, 0) rotate(-45deg);
}
ul li input[type=checkbox] {
position: absolute;
width: 100%;
height: 100%;
z-index: 1;
opacity: 0;
}
ul li input[type=checkbox]:checked ~ p {
max-height: 0;
opacity: 0;
transform: translate(0, 50%);
}
ul li input[type=checkbox]:checked ~ i:before {
transform: translate(2px, 0) rotate(45deg);
}
ul li input[type=checkbox]:checked ~ i:after {
transform: translate(-2px, 0) rotate(-45deg);
}
@keyframes flipdown {
0% {
opacity: 0;
transform-origin: top center;
transform: rotateX(-90deg);
}
5% {
opacity: 1;
}
80% {
transform: rotateX(8deg);
}
83% {
transform: rotateX(6deg);
}
92% {
transform: rotateX(-3deg);
}
100% {
transform-origin: top center;
transform: rotateX(0deg);
}
}
答案 0 :(得分:0)
您的物品不可见,但它们仍在那里。
尝试在代码中添加:
ul li input[type=checkbox]:checked ~ p {
display: none;
}
答案 1 :(得分:0)
自从我使用HTML或CSS以来已经很长时间了,但您是否已经看到了此example?如果你有,请原谅我。