页脚不粘在 React 页面的底部
Footer Not Sticking to Bottom of React Page
我创建了一个页脚并将其放在 app.jsx 文件中以显示在每个页面上。但是,如果页面上的内容没有占据整个页面,页脚就会浮起来。我需要更新 index.html 吗?
页脚:
<Grid container spacing={2} className={classes.container}>
<Grid xs={12}>
<a href='https://twitter.com/loremipsum'>
<SocialIcons>
<FaTwitter className={classes.icon} />
</SocialIcons>
</a>
<a href='https://www.facebook.com/loremipsum'>
<SocialIcons>
<FaFacebookSquare className={classes.icon} />
</SocialIcons>
</a>
<a href='https://www.linkedin.com/company/loremipsum'>
<SocialIcons>
<FaLinkedin className={classes.icon} />
</SocialIcons>
</a>
</Grid>
</Grid>
页脚样式:
export const useStyles = makeStyles({
container: {
backgroundColor: 'black',
color: '#F5F5F5',
borderTop: '5px solid #669999',
marginTop: 20,
},
icon: {
width: 20,
height: 20,
color: '#669999',
marginTop: 10,
marginBottom: 10,
marginLeft: 10,
marginRight: 10,
},
});
export const SocialIcons = styled.div`
transition: transform 250ms;
display: inline-block;
&:hover {
transform: translateY(-2px);
}
`;
正文Index.html
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>
<div id="root"></div>
</body>
想法是固定页脚高度和主要内容高度,即所有高度减去页脚高度。
您的模板代码应如下所示:
<div id="root">
<main>
Some main content
</main>
<footer>
Some footer content
</footer>
</div>
样式:
#root {
main {
min-height: calc(100vh - 100px);
}
footer {
height: 100px;
}
}
我通过将所有内容放在一个 page-container 和一个 content-wrapper 中来得到它,除了页脚。
App.jsx
const App = () => (
<div className='App'>
<div className='page-container'>
<div className='content-wrapper'>
<NavigationBar />
</div>
<Footer />
</div>
</div>`);`
App.css
.page-container {
display: flex;
flex-direction: column;
min-height: 100vh;
}
.content-wrapper {
flex: 1;
}
我创建了一个页脚并将其放在 app.jsx 文件中以显示在每个页面上。但是,如果页面上的内容没有占据整个页面,页脚就会浮起来。我需要更新 index.html 吗?
页脚:
<Grid container spacing={2} className={classes.container}>
<Grid xs={12}>
<a href='https://twitter.com/loremipsum'>
<SocialIcons>
<FaTwitter className={classes.icon} />
</SocialIcons>
</a>
<a href='https://www.facebook.com/loremipsum'>
<SocialIcons>
<FaFacebookSquare className={classes.icon} />
</SocialIcons>
</a>
<a href='https://www.linkedin.com/company/loremipsum'>
<SocialIcons>
<FaLinkedin className={classes.icon} />
</SocialIcons>
</a>
</Grid>
</Grid>
页脚样式:
export const useStyles = makeStyles({
container: {
backgroundColor: 'black',
color: '#F5F5F5',
borderTop: '5px solid #669999',
marginTop: 20,
},
icon: {
width: 20,
height: 20,
color: '#669999',
marginTop: 10,
marginBottom: 10,
marginLeft: 10,
marginRight: 10,
},
});
export const SocialIcons = styled.div`
transition: transform 250ms;
display: inline-block;
&:hover {
transform: translateY(-2px);
}
`;
正文Index.html
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>
<div id="root"></div>
</body>
想法是固定页脚高度和主要内容高度,即所有高度减去页脚高度。
您的模板代码应如下所示:
<div id="root">
<main>
Some main content
</main>
<footer>
Some footer content
</footer>
</div>
样式:
#root {
main {
min-height: calc(100vh - 100px);
}
footer {
height: 100px;
}
}
我通过将所有内容放在一个 page-container 和一个 content-wrapper 中来得到它,除了页脚。
App.jsx
const App = () => (
<div className='App'>
<div className='page-container'>
<div className='content-wrapper'>
<NavigationBar />
</div>
<Footer />
</div>
</div>`);`
App.css
.page-container {
display: flex;
flex-direction: column;
min-height: 100vh;
}
.content-wrapper {
flex: 1;
}