1

我在一个列表中有 4 个框。我试图在悬停时将宽度设置为 100%。它可以很好地工作而无需将 float:left 设置为 li 元素。设置 float:left 时,悬停在右侧框上的悬停会在悬停时闪烁。

代码在这里 - http://jsfiddle.net/PsYn9/5/

如果我将鼠标悬停在框 #2 上,则会闪烁。为什么会发生这种情况

4

4 回答 4

4

当里被拉伸时,它不会与另一个里重叠,而是通过推动它为自己腾出空间。因此,当您将鼠标悬停在第二列上的 li 上时,它本身会被推动,因此您不再将鼠标悬停在它上面。

于 2011-10-25T11:09:56.803 回答
0

因为悬停时 div 被拉伸到 100%,它导致从 div1 以下开始。这会导致鼠标移出,因为鼠标没有悬停在 div 上......

于 2011-10-25T11:06:42.843 回答
0

当您将鼠标放在该框上时,将触发 mouseenter 并且将宽度设置为 100% 并且框位于下方,因此鼠标不再在其上方并触发 mouseleave ,因此将宽度设置为 48% 并且框位于仍然是鼠标光标的先前位置,所以 mouseenter 被触发并且宽度设置为 100% 并且框低于...

于 2011-10-25T11:08:54.527 回答
0

这种行为是正常的。发生这种情况是因为当您将鼠标悬停在第二个框上时,该框不适合容器,因此它会下降到第二行(因此浮动以这种方式工作)。当盒子下降到第二行时,就像你停止将鼠标悬停在它上面一样,它会恢复到原来的大小和位置。然后它又在它的位置上,你又在它上面盘旋,等等……这就是它闪烁的原因。

解决方案:使容器更宽,并使用固定的盒子固定。

于 2011-10-25T11:11:17.180 回答