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

CSS导航栏宽度响应式@media查询不生效问题咨询

问题原因

你使用flex布局作为导航栏的容器,但仅给flex子项(.nav-logo、.nav-links)设置了width属性,而flex布局中子元素默认flex-shrink: 1,空间不足时会自动收缩宽度,导致你在媒体查询中设置的30%/70%宽度被压缩失效。同时移动端.nav-links保留了padding-left: 3rem的设置,小屏幕下3rem的内边距会挤占大量可用空间,进一步打乱布局比例。

修复方案

修改你的媒体查询代码,用flex简写属性强制固定子项占比,同时调整小屏幕下的内边距和内部列表宽度即可,修改后的代码如下:

@media all and (max-width:500px) {
  nav {
    position: fixed;
    display: flex;
    height: 4rem;
    background-color: red;
    font-size: .6rem;
  }
  .nav-logo {
    font-weight: bold;
    align-items: center;
    padding-left: 1rem;
    display: flex;
    /* 强制固定占比:不放大、不缩小、占30%宽度 */
    flex: 0 0 30%;
    height: 100%;
    font-family: 'Rock Salt', cursive;
    background-color: yellow;
  }
  .nav-links {
    display: inline-flex;
    /* 强制固定占比:不放大、不缩小、占70%宽度 */
    flex: 0 0 70%;
    background-color: teal;
    height: 100%;
    /* 调小内边距适配小屏幕 */
    padding-left: 0.5rem;
  }
  /* 让内部列表占满导航链接容器 */
  .nav-links ul {
    width: 100%;
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 23:45:05