如何解决纯CSS实现的粘性下拉菜单中相邻菜单浮动问题
解决下拉菜单展开时挤动右侧菜单的问题
问题根源在于下拉菜单的定位逻辑:当前.drop_items使用position: relative,会占据文档流空间,当菜单项宽度超过按钮时,就会挤压右侧的兄弟菜单。只需修改两处CSS即可解决:
需要调整的CSS部分
- 给
.menu_drop添加position: relative,让下拉菜单的绝对定位以它为参考容器:
.menu_drop { /* dropdown with menu items */ float: left; overflow: hidden; position: relative; /* 新增:作为下拉菜单的定位父容器 */ }
- 将
.drop_items的position改为absolute,并设置left: 0确保对齐按钮左侧,同时脱离文档流:
.drop_items { display: none; position: absolute; /* 修改:脱离文档流,不再占用行空间 */ left: 0; /* 确保下拉菜单对齐父容器左侧 */ background-color: #c0c0c0; box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); z-index: 1; white-space: nowrap; /* 可选:防止菜单项文本换行,保持一行显示 */ }
修改后的完整CSS代码
.nav_menu { overflow: hidden; position: fixed; top: 0; width: 100%; color: #ffffff; } .nav_bar { /* nav_menu background to keep it transparent and to add background only to top bar */ overflow: hidden; background-color: #000000; position: absolute; top: 0; width: 100%; height: 2.1em; z-index: -100; /* to show behind menu buttons */ } /* Menu items with dropdowns */ .menu_drop { /* dropdown with menu items */ float: left; overflow: hidden; position: relative; /* 新增定位父容器 */ } .drop_button { /* a button that opens dropdown */ color: inherit; background-color: inherit; font-family: inherit; /* to be the same as parent */ font-size: inherit; padding: 0.5em; border: none; outline: none; } .drop_items { display: none; position: absolute; /* 修改为绝对定位 */ left: 0; /* 对齐父容器左侧 */ background-color: #c0c0c0; box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); z-index: 1; white-space: nowrap; /* 可选:保持菜单项单行显示 */ } .drop_items a { float: none; display: block; text-align:left; padding: 0.5em; color: #000000; text-decoration: none; } .drop_items a:hover { color: #ffffff; background-color: #000000; } .menu_drop:hover .drop_button { /* button color when hovered */ color: #000000; background-color: #c0c0c0; } .menu_drop:hover .drop_items { /* show dropdown when hovered */ display: block; }
效果说明
修改后,下拉菜单会脱离文档流,悬浮在页面内容上方,不会占用按钮所在行的空间,因此右侧菜单按钮不会被挤动。同时菜单依然保持固定在页面顶部的特性,鼠标悬停时正常展开下拉选项。
内容的提问来源于stack exchange,提问作者ishaan_awasthi
相关产品推荐
相关产品推荐

