悬停时因margin-top导致Megamenu消失的问题求助
用
padding-top替代margin-top调整位置
把给megamenu设置的margin-top: Xpx改成padding-top: Xpx,同时给megamenu内部的内容容器加margin-top: -Xpx修正内容位置。这样megamenu的整体悬触区域依然和导航按钮连在一起,不会出现空隙导致悬停中断,视觉上也能实现下移效果。用伪元素填补空隙
给包含megamenu的导航按钮父元素添加透明伪元素,覆盖空隙区域,让鼠标移动时始终处于父元素的悬停范围内:.nav-megamenu-parent { position: relative; } .nav-megamenu-parent::after { content: ""; position: absolute; top: 100%; left: 0; width: 100%; height: 20px; /* 和你想要的下移距离一致 */ opacity: 0; pointer-events: auto; }这样即使megamenu用
margin-top下移,鼠标经过空隙时实际是在伪元素上,父元素的悬停状态不会中断,megamenu也就不会消失。调整
top定位而非外边距
给megamenu设置position: absolute(未设置的话先加上),然后用top: calc(100% + 20px)实现下移,替代margin-top。这种定位方式下,megamenu和父元素之间没有实际空隙,不会影响悬停的连续性。
内容的提问来源于stack exchange,提问作者Magnus Bomholt
相关产品推荐
相关产品推荐

