纯CSS画廊的重点效果:不
和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; }
悬停容器都会影响所有儿童。
悬停的孩子本身被排除在外。
- 首先,当容器悬停时,我们针对所有儿童:
- 接下来,我们将使用 降低不透明度的当前盘旋儿童排除
>这在元素之间没有差距。 但是,由于差距,即使光标本身在差距上,效果也会触发。
解决差距.grid:hover .grid__child { /* ... */ }
解决方案在于控制指针事件。 通过在:not(:hover)
>容器上设置
.grid:hover .grid__child:not(:hover) { opacity: 0.3; }
添加一个更平滑的不透明度变化的过渡完成了效果。
潜在的局限性pointer-events: none
.grid
>有效,这种方法可能需要调整可滚动容器(例如水平滑块)。 在这种情况下,将pointer-events: auto
包装在另一个容器中可以是解决方法。
.grid { /* ... */ pointer-events: none; } .grid__child { /* ... */ pointer-events: auto; }
这为共同的互动挑战展示了强大的纯CSS解决方案。 通过利用高级CSS选择器和指针事件控制,我们在不诉诸JavaScript的情况下实现了复杂的效果,从而导致更清洁,更可维护的代码。 这突出了CSS的越来越多的功能,并鼓励在添加JavaScript复杂性之前探索本地解决方案。
以上是纯CSS画廊的重点效果:不的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

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

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

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

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

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

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