【发布时间】:2020-01-02 04:54:14
【问题描述】:
我有一个不填充视口的联系页面组件,因此我需要弹性增长内容部分以将页脚保持在底部。不幸的是,this vanilla solution 在我的 React 项目中不起作用。我把它改编成我认为可行的:
App.js:
import ...
function App() {
return (
<div className="app-container">
<NavigationBar className="nav-container"/>
<Router className="content-container">
<Route exact path="/" component={HomePage} />
<Route exact path="/home" component={HomePage} />
<Route path="/classes" component={GroupClasses} />
<Route exact path="/lessons" component={PrivateLessons} />
<Route exact path="/contact" component={Contact} />
</Router>
<Footer className="footer-container"/>
</div>
);
}
App.css
html,
body,
#root{
height:100%;
margin: 0
}
.app-container{
display: flex;
flex-flow: column;
height: 100%;
}
.nav-container{
flex: 0 1 auto;
}
.content-container{
flex: 1 1 auto;
}
.footer-container{
flex: 0 1 auto;
}
【问题讨论】:
-
你确定路由器需要一个类名的道具吗?您可以检查元素并确保“内容容器”是文档中的活动类吗?在反应小提琴jsfiddle.net/boilerplate/react-jsx 中使用最小示例进行复制可能会有所帮助
-
在大多数/所有情况下,使用
100%元素高度不会导致它填充所有可用的垂直空间。如果您没有高于或低于.app-container的元素,您可以尝试height: 100vh,它确实占据了整个高度。 -
flex-flow: column;不应该是flex-direction: column;吗? The rest looks fine -
使用
position: fixed作为页脚或在页面底部留出一个边距,以便您可以看到页脚。可以上传代码吗?