如何扩展<li>元素实现导航项hover时占页面四分之一宽度?
解决导航项hover占满1/4宽度的问题
直接调整CSS即可实现需求,具体修改如下:
核心修改思路
- 让每个
<li>平分导航栏宽度(各占1/4) - 确保hover状态的背景色填充整个
<li>区域 - 优化链接的点击交互区域
修改后的CSS代码
nav { background-color: var(--purple); color: #fff; /* 给导航栏设置最小高度,保证视觉一致性 */ min-height: 50px; } .nav { display: flex; /* 移除space-around,改为让子元素平分宽度 */ align-items: center; height: 100%; width: 100%; margin: 0; padding: 0; list-style: none; } .nav-item { /* 关键:每个li平分父容器宽度 */ flex: 1; /* 让li成为flex容器,内部链接居中 */ display: flex; align-items: center; justify-content: center; height: 100%; border-radius: 5px; } .nav-link { color: #fff; /* 让链接占满整个li的点击区域 */ display: block; width: 100%; text-align: center; padding: 1rem 0; text-decoration: none; } .nav-item:hover { background-color: #fff; } .nav-item:hover .nav-link { color: var(--purple); }
代码说明
.nav容器:移除justify-content: space-around,设置width:100%和height:100%,确保占满父级nav的空间.nav-item(li):添加flex:1让四个li平分宽度,同时设置display:flex和居中属性,保证内部链接垂直水平居中,height:100%让li高度和nav一致.nav-link:设置display:block和width:100%,让链接占满整个li的区域,点击更友好;添加上下padding优化视觉间距- hover状态:把背景色放在li上,文字颜色放在hover时的nav-link上,确保hover时整个li区域都有白色背景,文字变成紫色
这样修改后,每个导航项hover时会占满页面的1/4宽度,背景色填充整个li区域,同时文字颜色切换正常。
内容的提问来源于stack exchange,提问作者tices
相关产品推荐
相关产品推荐

