Я использую простой аккордеон только для CSS для наших условий, чтобы скрыть и показать предложения с флажки и свойством преобразовать. Однако при обновлении этой информации между пунктами списка внезапно возникают большие несогласованные промежутки. Это происходит, когда содержимое раскрывающегося списка длиннее трех абзацев и каждый промежуток отличается по высоте.
Какое лучшее решение, которое использует наименьшее количество кода для исправления этого с помощью ТОЛЬКО с использованием CSS?
* Абсолютно нельзя использовать jQuery, Javascript или другую внешнюю библиотеку. Полный код можно найти здесь: codepen.io/makecodenotwar/pen/dmXpjJ
ОБРАЗЕЦ: HTML-структура одного маркера (полный код в коде):
<ul>
<li>
<input type = "checkbox" checked>
<i></i>
<h5><span>►</span>Payment Clause</h5>
<p>Blah, blah, blah...</p>
</li>
</ul>
ПРИМЕР 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);
}
}






Ваши товары не видны, но они все еще там.
Попробуйте добавить это в свой код:
ul li input[type=checkbox]:checked ~ p {
display: none;
}
Вот и все! Спасибо @claudio, я знал, что это что-то простое.
Прошло очень много времени с тех пор, как я работал над HTML или CSS, но вы уже видели этот пример? Пожалуйста, простите меня, если да.
может добавить
<br>break?