Nodejs 小白现次请教 nextjs layout 相关问题。
请教下大们,页面布局如下,为啥页面高度比屏幕调试多了 60px ,60px 也就是 TopNav 的高度。
--------------------------------------------
|
| TopNav
|-----------------------------------
|
|
|
SideBar |
|
|
|
|
|
|
|
----------------------------------------------
SideBar className=“flex flex-col justify-between top-0 left-0 h-full w-16"
TopNav className=“w-full h-[60px] m-0 p-0 bg-stone-50"
layout.tsx :
<div className=“flex flex-row”>
<div className=””>
<Sidebar />
</div>
<div className=“w-full”>
<div className=“flex flex-col justify-start text-center”>
<TopNavBar/>
<div className=“w-full”>
{children}
</div>
</div>
</div>
</div>
Nodejs 小白现次请教 nextjs layout 相关问题。
TopNav 的 className 加个 fixed
--------------------------------------------
|. |.
|. |. TopNav
|. |-------------------------------
|. |
|. |
|. |
| SideBar |
|. |. Main Page
|. |
|. |
|. |
|. |
|. |
|. |
----------------------------------------------
多谢回复。
TopNav 加 fixed 后,整体高度是不会多出 60px ,但 main page 顶上的 60px 顶到 TopNav 里了。
怎么能做到 main page 的高度刚好是 ( h-screen - 60px ) 呢。
.mainPage { height: calc(100vh - 60px); }
浏览器样式清了没
你好!关于Next.js中的layout布局问题,Next.js本身并没有内置的layout组件,但你可以通过自定义组件和_app.js
文件来实现全局的布局管理。下面是一个简单的示例:
-
创建Layout组件: 首先,你可以创建一个
Layout
组件,这个组件将包含你的页面布局,比如header、footer和main内容区域。// components/Layout.js import React from 'react'; const Layout = ({ children }) => ( <div> <header>Header</header> <main>{children}</main> <footer>Footer</footer> </div> ); export default Layout;
-
使用_app.js文件: 在
pages/_app.js
中,你可以使用这个Layout
组件来包裹你的页面。// pages/_app.js import React from 'react'; import App from 'next/app'; import Layout from '../components/Layout'; class MyApp extends App { render() { const { Component, pageProps } = this.props; return ( <Layout> <Component {...pageProps} /> </Layout> ); } } export default MyApp;
这样,你的所有页面都会自动被Layout
组件包裹,实现全局的布局管理。希望这个回答能帮到你,如果有其他问题,欢迎继续提问!