目录
如何避免 CSS nth-child 选择器中的隐藏元素
首页 web前端 css教程 如何从 CSS nth-child 选择器计数中排除隐藏元素?

如何从 CSS nth-child 选择器计数中排除隐藏元素?

Nov 16, 2024 am 04:15 AM

How to Exclude Hidden Elements from CSS nth-child Selector Counting?

如何避免 CSS nth-child 选择器中的隐藏元素

使用按钮点击隐藏带有 display: none 的元素时,nth-child 选择器会同时考虑可见和隐藏项目。这可能会破坏不同行的样式模式。

说明:

CSS nth-child() 选择器根据元素在兄弟元素中的位置来匹配元素。然而,即使使用 display: none,隐藏元素仍保留在 DOM 中,导致计数不正确。

解决方案:

从第 n 个子元素计数中排除隐藏元素,您必须将它们从 DOM 中完全删除。但是,使用remove()方法会阻止它们稍后恢复,从而干扰切换功能。

替代方法:

相反,使用jQuery的detach()方法,该方法保留事件侦听器和其他元数据。操作方法如下:

var divs;

$('.photos-board-item').each(function(i){
    $(this).data('initial-index', i);
});

$('.hide-others').on('click', function () {
    if(divs) {
        $(divs).appendTo('.row').each(function(){
            var oldIndex = $(this).data('initial-index');
            $('.photos-board-item').eq(oldIndex).before(this);
        });
        divs = null;
    } else {
        divs = $('.css--all-photo').detach();
    }
});
登录后复制

说明:

此代码切换所选 div 的可见性,同时保持正确的第 n 个子级数:

  1. 将分离的div存储在divs变量中。
  2. 如果div不为空,则之前已被单击过。根据 div 的初始索引数据属性将它们按原始顺序追加回行。
  3. 如果 div 为空,则分离指定的 div 并将它们存储在 div 中。

优点:

  • 尽管存在隐藏元素,仍保留第 n 个子级的准确性。
  • 允许轻松切换可见性,而不破坏视觉设计。
  • 否需要更改 HTML 或 CSS。

以上是如何从 CSS nth-child 选择器计数中排除隐藏元素?的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

带有粘性定位的堆叠卡和一点点的杂物 带有粘性定位的堆叠卡和一点点的杂物 Apr 03, 2025 am 10:30 AM

前几天,我发现了科里·金尼文(Corey Ginnivan)网站上的这一点,当您滚动时,彼此之间的卡片堆放集。

Google字体可变字体 Google字体可变字体 Apr 09, 2025 am 10:42 AM

我看到Google字体推出了新设计(Tweet)。与上一次大型重新设计相比,这感觉更加迭代。我几乎无法分辨出区别

如何使用HTML,CSS和JavaScript创建动画倒计时计时器 如何使用HTML,CSS和JavaScript创建动画倒计时计时器 Apr 11, 2025 am 11:29 AM

您是否曾经在项目上需要一个倒计时计时器?对于这样的东西,可以自然访问插件,但实际上更多

为什么Flex布局中的紫色斜线区域会被误认为是'溢出空间”? 为什么Flex布局中的紫色斜线区域会被误认为是'溢出空间”? Apr 05, 2025 pm 05:51 PM

关于Flex布局中紫色斜线区域的疑问在使用Flex布局时,你可能会遇到一些令人困惑的现象,比如在开发者工具(d...

如何通过CSS选择第一个类名为item的子元素? 如何通过CSS选择第一个类名为item的子元素? Apr 05, 2025 pm 11:24 PM

在元素个数不固定的情况下如何通过CSS选择第一个指定类名的子元素在处理HTML结构时,常常会遇到元素个数不�...

HTML数据属性指南 HTML数据属性指南 Apr 11, 2025 am 11:50 AM

您想了解的有关HTML,CSS和JavaScript中数据属性的所有信息。

使Sass更快的概念证明 使Sass更快的概念证明 Apr 16, 2025 am 10:38 AM

在一个新项目开始时,Sass汇编发生在眼睛的眨眼中。感觉很棒,尤其是当它与browsersync配对时,它重新加载

在前端开发中,如何使用CSS和JavaScript实现类似Windows 10设置界面的探照灯效果? 在前端开发中,如何使用CSS和JavaScript实现类似Windows 10设置界面的探照灯效果? Apr 05, 2025 pm 10:21 PM

在前端开发中如何实现类似Windows...

See all articles