J'ai une liste réductible mise en œuvre en utilisant HTML et CSS. La liste fonctionne correctement, mais j'ai besoin d'une petite modification.
Chaque fois que je clique sur un élément de la liste, il se développe. Mais lorsque je clique sur un autre élément de la même liste, l'élément précédemment développé est réduit alors que celui sur lequel vous cliquez est développé.
Aidez-moi à appliquer le comportement qui permet d’agrandir plusieurs éléments de la liste en même temps.
Je veux que ce soit fait en HTML et CSS uniquement.
Voici la mise en œuvre que j'ai actuellement. Styles CSS:
.row { vertical-align: top; height: auto !important; }
list { display: none; }
.show { display: none; }
.hide:target + .show { display: inline; }
.hide:target { display: none; }
.hide:target ~ .list { display:inline; }
@media print { .hide, .show { display: none; } }
Et le balisage HTML:
<div class="row">
<a href="#hide1" class="hide" id="hide1">Expand</a>
<a href="#show1" class="show" id="show1">Collapse</a>
<div class="list">
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
</div>
</div>
<details>
<summary>See More</summary>
This text will be hidden if your browser supports it.
</details>
Pure HTML et CSS
Une case à cocher et son état :checked
semble correspondre parfaitement à votre cas:
[id^="togList"], /* HIDE CHECKBOX */
[id^="togList"] ~ .list, /* HIDE LIST */
[id^="togList"] + label span + span, /* HIDE "Collapse" */
[id^="togList"]:checked + label span{ /* HIDE "Expand" (IF CHECKED) */
display:none;
}
[id^="togList"]:checked + label span + span{
display:inline-block; /* SHOW "Collapse" (IF CHECKED) */
}
[id^="togList"]:checked ~ .list{
display:block; /* SHOW LIST (IF CHECKED) */
}
<div class="row">
<input id="togList1" type="checkbox">
<label for="togList1">
<span>Expand</span>
<span>Collapse</span>
</label>
<div class="list">
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
</div>
</div>
Sur la base des réponses ci-dessus, nous venons de créer un seul code HTML avec CSS et JS incorporés pour ce type de tâche . GitHub repo , le lien restera valide car je n’ai pas l’intention de le supprimer.