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

Next.js中Navbar与Logo无法在同一行对齐的问题求助

Next.js + Tailwind CSS 导航栏Logo与导航项对齐问题

我在使用Tailwind CSS开发Next.js 14(App Router)的Navbar组件时,遇到Logo与导航项无法在同一行正确对齐的问题,期望实现Logo居左、导航项居右且间距合理的布局。

当前代码

// Navbar.tsx
import React from "react";
import Link from "next/link";
import Image from "next/image";
import { getServerSession } from "next-auth";
import { authOptions } from "@/app/api/auth/[...nextauth]/route";
import LoginButton from "./NavbarButtons/LoginButton";
import UserNavMenu from "./NavbarButtons/UserNavMenu";

const Navbar = async () => {
    const session = await getServerSession(authOptions);
    
    return (
        <div className="w-full px-5 py-3 bg-white shadow-sm font-work-sans">
            <nav className="flex items-center justify-between max-w-7xl mx-auto">
                <Link href="/" className="flex-shrink-0">
                    <Image src="/logo.png" alt="logo" width={144} height={30} />
                </Link>
                
                <div className="flex items-center gap-5">
                    {session?.user && session.user.id ? (
                        <>
                            <Link href="/startup/create">Create</Link>
                            <UserNavMenu user={{
                                id: session.user.id,
                                name: session.user.name,
                                email: session.user.email,
                                image: session.user.image
                            }} />
                        </>
                    ) : (
                        <LoginButton />
                    )}
                </div>
            </nav>
        </div>
    );
};

export default Navbar;

layout.tsx

// layout.tsx
import Provider from "./provider";

export default function RootLayout({
  children,
}: {
  children: React.ReactNode;
}) {
  return (
    <html lang="en">
      <body>
        <Provider>{children}</Provider>
      </body>
    </html>
  );
}

预期效果

  • Logo位于左侧
  • 导航项位于右侧
  • 二者在同一行保持垂直居中对齐
  • 导航栏占满全屏宽度

已尝试方案

  • 在导航栏容器使用flex与justify-between属性
  • 为Logo添加flex-shrink-0属性
  • 嵌套多层flex容器
  • 调整w-full等宽度属性
  • 组合使用不同flex对齐属性

环境

  • Next.js 14
  • Tailwind CSS
  • App Router 结构

效果对比

当前效果截图:当前输出效果
预期效果截图:预期输出效果

恳请帮助解决该布局问题!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 18:22:46