我有两个元素,一个圆形和一个正方形(2个不同的div)。正方形在圆形的上面,但是它阻挡了下面元素的悬停效果(例如,圆形变成蓝色)。对正方形应用悬停效果不起作用,因为悬停效果应用于圆形的每个部分。
在实际示例中(请参见第二个图像),您可以看到圆通过倾斜和旋转变换被分割。
我不想使用JavaScript,只想使用CSS和HTML。
I simplified the problem in this CodePen: codepen.io/tuurtie/pen/XWYPWEb.
这是实际结果的图像(红色是阻挡圆形悬停效果的部分):
我试过用两种方法都溢出,也试过在正方形上打个洞,但这仍然阻挡了悬停。我知道我很接近了!
我还为红色正方形本身添加了悬停效果,但是悬停效果不起作用(悬停效果应用于圆形的每个部分)。
2条答案
按热度按时间khbbv19g1#
正如@IT高盛所说,你可以使用
pointer-events: none;
:第一个
第一个
但是您 * 确实 * 指定了您不希望混合任何JS。我不认为有任何其他仅支持CSS的解决方案能够实现您想要的行为类型。
ryevplcw2#
问题出在您的标记中。即使样式显示方形在圆形内,但标记在
DOM
中使它们彼此相邻。我所做的是把正方形放在圆圈里面,并相应地用
flex box
来设计圆圈的样式,把正方形放在中间。https://codepen.io/gezzasa/pen/xxzabEL
第一个