You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何扩展<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);
}

代码说明

  1. .nav容器:移除justify-content: space-around,设置width:100%和height:100%,确保占满父级nav的空间
  2. .nav-item(li):添加flex:1让四个li平分宽度,同时设置display:flex和居中属性,保证内部链接垂直水平居中,height:100%让li高度和nav一致
  3. .nav-link:设置display:block和width:100%,让链接占满整个li的区域,点击更友好;添加上下padding优化视觉间距
  4. hover状态:把背景色放在li上,文字颜色放在hover时的nav-link上,确保hover时整个li区域都有白色背景,文字变成紫色

这样修改后,每个导航项hover时会占满页面的1/4宽度,背景色填充整个li区域,同时文字颜色切换正常。

内容的提问来源于stack exchange,提问作者tices

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 23:45:35