Есть ли способ CSS для подключения .menu> div.show положением четырех к четвертому .parent div.item , как это было сделано с жестким кодированием 4/5 в nth-child () , когда число каждого не известно, хотя знайте, что они будут равны; Как будто аргумент в nth-child () может быть переменной?
Есть ли способ CSS для подключения .menu> div.show положением четырех к четвертому .parent div.item , как это было сделано с жестким кодированием 4/5 в nth-child () , когда число каждого не известно, хотя знайте, что они будут равны; Как будто аргумент в nth-child () может быть переменной?[code].parent { border: 1px solid black; position: relative; width: fit-content; } .menu { display: flex; flex-flow: row nowrap; } .menu > div { height: 10px; width: 10px; margin: 2px; background-color: blue; } .menu > div.show { background-color: red; } div.item { display:none; position: absolute; height: 20px; width: 10px; background-color: green; color: white; padding: 2px; } .parent:has(> .menu .show:nth-child(4)) { border-color: red; } .parent:has(> .menu .show) > .item:nth-child(5) { display: block; }< /code>
1 2 3 4 5 < /code> < /div> < /div> < /p>
edit: добавил этот пример позже. < /strong> Этот пример иллюстрирует, что я пытался сделать. Я не мог понять, как сохранить скользящий див внутри каждого узла папки, так как скользящий Div часто шире; и не хочу, чтобы он покрывал смежный узел папки или был видимым в пространстве между ними, когда он скользит или вышел. Div на узел папки, хотя и не ребенок узла папки. Спасибо.let catObj = Object.create(null,{ selDropArrow: { value: null, writable: true }, dropSelect: { value: [document.querySelector('.dropSelect.ds0'),document.querySelector('.dropSelect.ds1')] }, ds_no: { value: null, // 0 or 1 writable: true } });
document.querySelector('.catPathWrapper').addEventListener( 'mousedown', (evt)=>{ let e = evt.target; if ( e.matches('.dropArrow, .dropArrow *') && (e = e.closest('.dropArrow')) ) { if ( catObj.selDropArrow ) { if ( catObj.selDropArrow === e) { e.classList.remove(`show${catObj.ds_no}`); catObj.selDropArrow = null; catObj.ds_no = null; } else { let n = catObj.ds_no; catObj.selDropArrow.classList.remove(`show${n}`); n = n === 0 ? 1 : 0; catObj.dropSelect[n].style.left = e.parentNode.offsetLeft + 'px'; e.classList.add(`show${n}`); catObj.selDropArrow = e; catObj.ds_no = n; } } else { catObj.dropSelect[0].style.left = e.parentNode.offsetLeft + 'px'; e.classList.add('show0'); catObj.selDropArrow = e; catObj.ds_no = 0; } } }, false );< /code> button { background-color: transparent }