目录
悬停容器都会影响所有儿童。
首页 web前端 css教程 纯CSS画廊的重点效果:不

纯CSS画廊的重点效果:不

Mar 10, 2025 am 10:40 AM

A Pure CSS Gallery Focus Effect with :not

以前,除了悬停的javaScript外,在容器中造型所有元素。 这通常意味着添加或删除在

mouseenter>事件上的类。虽然功能性,但纯CSS解决方案通常是可取的。 本文详细介绍了一种仅使用CSS的方法,最初是受到重现Netflix主页等动画的技术的启发。 但是,由于元素之间的差距,先前使用此方法的尝试在基于网格的布局上失败。 本文提出了一种优雅处理这些差距的解决方案。 mouseleave标记和基本CSS

基础HTML利用基于网格的列表:>

:容器网格。
  • .grid:单个网格项目。
  • .grid__child标记如下:

最初的CSS样式网格及其孩子:

登录后复制
这将创建一个三柱网格(根据屏幕尺寸动态调整),并且在项目之间存在差距。

利用CSS选择器

.grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, 15rem);
  grid-gap: 1rem;
}

.grid__child {
  background: rgba(0, 0, 0, .1);
  border-radius: .5rem;
  aspect-ratio: 1/1;
}
登录后复制
核心相互作用涉及两个步骤:

悬停容器都会影响所有儿童。

悬停的孩子本身被排除在外。

  1. 首先,当容器悬停时,我们针对所有儿童:
  2. 接下来,我们将使用
  3. 降低不透明度的当前盘旋儿童排除

>这在元素之间没有差距。 但是,由于差距,即使光标本身在差距上,效果也会触发。

解决差距
.grid:hover .grid__child {
  /* ... */
}
登录后复制

解决方案在于控制指针事件。 通过在:not(:hover)>容器上设置

>在其子女上,我们确保只有直接在子元素上方触发悬停效应,从而有效地忽略了差距。
.grid:hover .grid__child:not(:hover) {
  opacity: 0.3;
}
登录后复制

添加一个更平滑的不透明度变化的过渡完成了效果。>

最终结合此解决方案的CSS是:

潜在的局限性pointer-events: none .grid>有效,这种方法可能需要调整可滚动容器(例如水平滑块)。 在这种情况下,将pointer-events: auto包装在另一个容器中可以是解决方法。

>
.grid {
  /* ... */
  pointer-events: none;
}

.grid__child {
  /* ... */
  pointer-events: auto;
}
登录后复制
结论

这为共同的互动挑战展示了强大的纯CSS解决方案。 通过利用高级CSS选择器和指针事件控制,我们在不诉诸JavaScript的情况下实现了复杂的效果,从而导致更清洁,更可维护的代码。 这突出了CSS的越来越多的功能,并鼓励在添加JavaScript复杂性之前探索本地解决方案。

以上是纯CSS画廊的重点效果:不的详细内容。更多信息请关注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)

热门话题

Java教程
1655
14
CakePHP 教程
1414
52
Laravel 教程
1307
25
PHP教程
1254
29
C# 教程
1228
24
Google字体可变字体 Google字体可变字体 Apr 09, 2025 am 10:42 AM

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

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

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

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

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

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

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

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

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

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

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

我们如何创建一个在SVG中生成格子呢模式的静态站点 我们如何创建一个在SVG中生成格子呢模式的静态站点 Apr 09, 2025 am 11:29 AM

格子呢是一块图案布,通常与苏格兰有关,尤其是他们时尚的苏格兰语。在Tar​​tanify.com上,我们收集了5,000多个格子呢

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

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

See all articles