gpt4 book ai didi

javascript - 跳过 :first-child selector 上的隐藏元素

转载 作者:太空宇宙 更新时间:2023-11-04 01:30:38 25 4
gpt4 key购买 nike

我正在使用 Sortable.js我遇到了以下问题:

我有一个要排序的元素列表,我需要第一个元素比其他所有 3 个元素都宽。

为了做到这一点,我有以下 CSS:

#produto_img {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
}

#produto_img > li {
height: 100px;
margin: 0 5px;
}

#produto_img > li:not(:first-child) {
flex: 1;
}

#produto_img > li:first-child {
width: 100%;
height: 200px;
margin-bottom: 10px;
}

当我在第一个元素之后开始拖动任何元素时,它工作正常,即使我切换到第一个元素,它也工作正常。

它创建以下标记:

First-markup

但是当我从第一个开始拖动时,我会失去样式,因为插件在它的位置创建了另一个元素并将其设置为 display: none,所以 :first- child 选择器将不再起作用,并且失去了样式。

Second-markup

This gif显示正在发生的事情。

enter image description here

如果第一个元素是 display: none,我的第一个想法就是以某种方式跳过它,或者使用类似 :first-child:visible 的内容,但这是很明显,它在工作。

有什么解决方法吗?

最佳答案

遗憾的是,:visible 伪类仍然与 jQuery 不同。不过,您可以使用的解决方法是通过添加/删除类来处理隐藏。

那就是覆盖问题了

li.hidden {
display: none;
}

li:not(.hidden) {
width: 100%;
height: 200px;
margin-bottom: 10px;
}

li:not(.hidden) ~ li {
width: auto;
height: auto;
margin-bottom: 0;
flex: 1;
}

关于javascript - 跳过 :first-child selector 上的隐藏元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47158839/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com