Вы должны переместить флажок перед циклом и метку после.Затем вы настраиваете CSS, чтобы он не зависел от метки и флажка рядом друг с другом (на самом деле вам не нужен селектор отношений +
в случае метки).
Затем вы можете использоватькласс .section-imagelist
, чтобы показать / скрыть группы из четырех изображений, как вам нужно.
Скрыть все .section-imagelist по умолчанию
.section-imagelist {
display: none;
}
Показать первый по умолчанию
.section-imagelist:first-of-type {
display: inherit !important;
}
Показать все .section-imagelist, если перед ними стоит отмеченный элемент с классом .hide
.hide:checked~.section-imagelist {
display: inherit;
}
Дайте мне знать, если это не то, что вы хотели.
Веточка
{% block imagelist_field %}
<div class="imagelist columns">
{# The checkbox can be placed as the first child. It does not need to be adjacent to the label (the for= parameter lets it know which one to change #}
<input class="hide" id="hd-2" type="checkbox">
{% for image in value %}
...
...
...
{% endfor %}
{# The label should be last, so it is always after the images #}
<label for="hd-2">Show remaining images</label>
</div>
{% endblock %}
img {
float: left;
width: 25%;
}
.hide {
display: none;
}
.hide:checked~label {
color: red;
border-bottom: 0;
}
.section-imagelist {
display: none;
width: 100%;
}
.section-imagelist:first-of-type {
display: inline-block;
}
.hide:checked~.section-imagelist {
display: inline-block;
}
label:before {
background-color: #1e90ff;
color: #fff;
content: "\002B";
display: block;
float: left;
font-size: 14px;
font-weight: bold;
height: 16px;
line-height: 16px;
margin: 3px 5px;
text-align: center;
width: 16px;
-webkit-border-radius: 50%;
-moz-border-radius: 50%;
border-radius: 50%;
}
.hide:checked~label:before {
content: "\2212";
background: red;
}
label[for='hd-2'] {
cursor: pointer;
}
<div class="imagelist columns">
<input class="hide" id="hd-2" type="checkbox">
<div class="section-imagelist">
<div>
<a>
<img src="https://via.placeholder.com/240/09f">
</a>
</div>
<div>
<a>
<img src="https://via.placeholder.com/240/09f">
</a>
</div>
<div>
<a>
<img src="https://via.placeholder.com/240/09f">
</a>
</div>
<div>
<a>
<img src="https://via.placeholder.com/240/09f">
</a>
</div>
</div>
<div class="section-imagelist below4">
<div>
<a>
<img src="https://via.placeholder.com/240">
</a>
</div>
<div>
<a>
<img src="https://via.placeholder.com/240">
</a>
</div>
<div>
<a>
<img src="https://via.placeholder.com/240">
</a>
</div>
</div>
<label for="hd-2">Show remaining images</label>
</div>