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

使用Display Flex构建导航栏时,右侧菜单元素无法横向对齐

问题:导航栏右侧元素重叠无法横向排列

我在练习复刻ARTE网站导航栏时遇到问题:已使用Display Flex布局,左侧导航元素可正常横向对齐,但右侧导航元素重叠无法在同一行排列。我学习CSS已有一个月,每天学习4小时,仍无法解决该问题,以下是我的代码:

CSS代码

* {
  list-style: none;
  background-color: black;
  font-family: "Lucida Sans", "Lucida Sans Regular", "Lucida Grande",
    "Lucida Sans Unicode", Geneva, Verdana, sans-serif;
  color: rgb(221, 213, 213);
  margin: 0;
  padding: 0;
}

.arte-logo {
  height: 45px;
  margin: 0;
}

nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.nav-left ul {
  display: flex;
}

.nav-right ul {
  display: flex;
}

HTML代码

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Documentaires et reportages</title>
    <link rel="stylesheet" href="style.css" />
    <link
      rel="icon"
      href="/Users/jeandizian/Documents/Code/space/Arte/Assets/imgs/arte-icon.png"
    />
  </head>
  <body>
    <nav>
      <div class="nav-left">
        <ul>
          <li>
            <img
              class="arte-logo"
              src="/Users/jeandizian/Documents/Code/space/Arte/Assets/imgs/arte-logo.png"
              alt="arte logo"
              ;
            />
          </li>
          <li><span>&#9783;</span></li>
          <li>Guide TV</li>
          <li>Direct</li>
          <li>Bientôt en ligne</li>
          <li>Arte Concert</li>
        </ul>
      </div>
      <div class="nav-right">
        <ul>
          <li><span>&#9784;</span></li>
          <li><span>&#8853;</span></li>
          <div class="connecter">
            <li><span>&#9865;</span></li>
            <li>Se connecter</li>
          </div>
          <li>ARTE en 6 langues</li>
        </ul>
      </div>
    </nav>
  </body>
</html>

解决方案

问题核心是HTML结构不符合规范:<ul>的直接子元素只能是<li>,但你在右侧<ul>中嵌套了<div class="connecter">,同时<li>内部又嵌套了<li>,这两种错误结构破坏了Flex布局的正常渲染,导致元素重叠。

修改后的HTML代码

调整结构,将connecter改为<li>,内部图标和文字用<span>包裹:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Documentaires et reportages</title>
    <link rel="stylesheet" href="style.css" />
    <link
      rel="icon"
      href="/Users/jeandizian/Documents/Code/space/Arte/Assets/imgs/arte-icon.png"
    />
  </head>
  <body>
    <nav>
      <div class="nav-left">
        <ul>
          <li>
            <img
              class="arte-logo"
              src="/Users/jeandizian/Documents/Code/space/Arte/Assets/imgs/arte-logo.png"
              alt="arte logo"
            />
          </li>
          <li><span>&#9783;</span></li>
          <li>Guide TV</li>
          <li>Direct</li>
          <li>Bientôt en ligne</li>
          <li>Arte Concert</li>
        </ul>
      </div>
      <div class="nav-right">
        <ul>
          <li><span>&#9784;</span></li>
          <li><span>&#8853;</span></li>
          <li class="connecter">
            <span>&#9865;</span>
            <span>Se connecter</span>
          </li>
          <li>ARTE en 6 langues</li>
        </ul>
      </div>
    </nav>
  </body>
</html>

修改后的CSS代码

添加间距和对齐样式,确保元素不重叠:

* {
  list-style: none;
  background-color: black;
  font-family: "Lucida Sans", "Lucida Sans Regular", "Lucida Grande",
    "Lucida Sans Unicode", Geneva, Verdana, sans-serif;
  color: rgb(221, 213, 213);
  margin: 0;
  padding: 0;
}

.arte-logo {
  height: 45px;
  margin: 0;
}

nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 1rem; /* 避免导航元素贴边 */
}

.nav-left ul, .nav-right ul {
  display: flex;
  align-items: center;
  gap: 1.5rem; /* 列表项之间添加间距 */
}

.nav-right .connecter {
  display: flex;
  align-items: center;
  gap: 0.5rem; /* 图标与文字之间添加间距 */
}

修改后右侧导航元素即可正常横向排列,不会出现重叠问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 10:32:15