Сгруппировать список
Ребята подскажите как сделать из это:
<div class="images">
<img class="p--img" src="images/p01.jpg" alt="">
<img class="p--img" src="images/p02.jpg" alt="">
<img class="p--img" src="images/p03.jpg" alt="">
<img class="p--img" src="images/p04.jpg" alt="">
<img class="p--img" src="images/p05.jpg" alt="">
<img class="p--img" src="images/p06.jpg" alt="">
<img class="p--img" src="images/p07.jpg" alt="">
<img class="p--img" src="images/p08.jpg" alt="">
</div>
Вот это:
<div class="images">
<div class="group">
<img class="p--img" src="images/p01.jpg" alt="">
<img class="p--img" src="images/p02.jpg" alt="">
<img class="p--img" src="images/p03.jpg" alt="">
<img class="p--img" src="images/p04.jpg" alt="">
</div>
<div class="group">
<img class="p--img" src="images/p05.jpg" alt="">
<img class="p--img" src="images/p06.jpg" alt="">
<img class="p--img" src="images/p07.jpg" alt="">
<img class="p--img" src="images/p05.jpg" alt="">
</div>
</div>
То есть добавить в группы и иметь возможность указывать сколько картинок должны быть в группах! Спасибо |
<style>
.images {
border: 1px blue solid;
padding: 10px;
}
.group {
border: 1px red solid;
padding: 10px;
margin: 5px 0;
}
img {
width: 20px;
height: 20px;
margin: 5px;
}
</style>
<body>
<div class="images">
<img class="p--img" src="images/p01.jpg" alt="">
<img class="p--img" src="images/p02.jpg" alt="">
<img class="p--img" src="images/p03.jpg" alt="">
<img class="p--img" src="images/p04.jpg" alt="">
<img class="p--img" src="images/p05.jpg" alt="">
<img class="p--img" src="images/p06.jpg" alt="">
<img class="p--img" src="images/p07.jpg" alt="">
<img class="p--img" src="images/p08.jpg" alt="">
<img class="p--img" src="images/p01.jpg" alt="">
<img class="p--img" src="images/p02.jpg" alt="">
<img class="p--img" src="images/p03.jpg" alt="">
<img class="p--img" src="images/p04.jpg" alt="">
<img class="p--img" src="images/p05.jpg" alt="">
<img class="p--img" src="images/p05.jpg" alt="">
</div>
<script>
const group = (dv, n) => {
let chim;
while ((chim = dv.querySelectorAll(':scope>.p--img')) && chim.length) {
const ng = Math.min(chim.length, n);
const dg = document.createElement('div');
dg.setAttribute('class', 'group');
dv.insertBefore(dg, chim[0]);
for (let i=0; i< ng; i++) dg.append(chim[i])
}
}
group (document.querySelector('.images'), 3)
</script>
</body>
|
обернуть каждые четыре элемента в див
awoll_n,
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<style type="text/css">
.group{
border: 1px solid #0000CD;
display: flex;
justify-content: space-around;
}
.p--img{
height: 100px;
width: 100px;
background-color: #FFFF00;
}
</style>
<script>
document.addEventListener("DOMContentLoaded", function() {
const wrapEach = (selector, wrapper, countToWrap, cls) => {
let container = document.createElement(wrapper);
container.classList.add(cls);
document.querySelectorAll(selector).forEach((el, i) => {
i % countToWrap || (container = container.cloneNode(),
el.replaceWith(container));
container.append(el);
})
}
wrapEach('.p--img', 'div', 4, 'group');
});
</script>
</head>
<body>
<div class="images">
<img class="p--img" src="images/p01.jpg" alt="">
<img class="p--img" src="images/p02.jpg" alt="">
<img class="p--img" src="images/p03.jpg" alt="">
<img class="p--img" src="images/p04.jpg" alt="">
<img class="p--img" src="images/p05.jpg" alt="">
<img class="p--img" src="images/p06.jpg" alt="">
<img class="p--img" src="images/p07.jpg" alt="">
<img class="p--img" src="images/p08.jpg" alt="">
</div>
</body>
</html>
|
| Часовой пояс GMT +3, время: 00:10. |