【发布时间】:2021-07-02 19:09:05
【问题描述】:
Next.js 样式 - 页脚组件由于某种原因不在屏幕底部?
import Head from "next/head";
import Navbar from "./Navbar";
import Footer from "./Footer";
const layoutStyle = {
display: "flex",
flexDirection: "column",
height: "100%",
width: "100%"
};
const Layout = props => (
<div className="Layout" style={layoutStyle}>
<Head>
<title>Oracle</title>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta charSet="utf-8" />
</Head>
<Navbar />
<div>{props.children}</div>
<Footer/>
</div>
);
导出默认布局;
页脚
import React, { Component, Fragment } from "react";
class Footer extends Component {
render() {
return (
<div className="bg-gray-100">
<div className="bg-gray-100 container mx-auto px-6 pt-10 pb-6" >
>
© Oracle Corp. All rights reserved.
</div>
</div>
)
}
}
export default Footer;
我知道这与 next.js 有关,但不确定如何解决:/
我认为与下一步如何设置每个页面有关?
提前致谢,
【问题讨论】:
-
可以把
height: 100%改成min-height: 100vh吗? -
由于您使用的是 flex,您可以在页脚使用
margin-top:auto或在页面包装器中添加flex-grow:1 -
在 next 之类的应用程序中,flex 的问题是 next 添加了一个额外的元素,该元素会破坏整个高度和/或 flex 拉伸值。检查 HTML,您将看到一个具有 _next 或类似类的元素。您需要确保您也将适当的高度和/或弹性应用于属性。你完全可以在不做绝对位置的情况下做弹性盒子粘页脚。当没有足够的内容时,目标是在底部做一个粘性页脚吗?或者您是否试图让页脚始终可见,而不管内容数量如何?