如何让页脚始终在底部
How to make the footer always at the bottom
我正在制作一个网站,我试图让页脚始终位于底部。我希望页脚始终位于浏览器 window 的底部,但如果内容足够长,它会将页脚推到看不见的底部。现在,页脚始终紧跟在其上方的内容之后。
我试过设置display: flex, flex-direction, align-items: flex-end, margin-bottom: 0px
,但没用。我也在努力避免设置固定高度。
相关代码
Footer.js
<footer className='footer'>
<div className='icons'>
<span><a href='/'><img src={LinkedIn} alt='LinkedIn'/></a></span>
<span><a href='/'><img src={Mail} alt='Email' /></a></span>
<span><a href='/'><img src={Resume} alt='Resume' /></a></span>
</div>
<div>
<span className='footer-link'><a href='/'>Home</a></span>
<span className='footer-link'><a href='/about'>About</a></span>
<span className='footer-link'><a href='/blog'>Blog</a></span>
<span className='footer-link'><a href='/contact'>Contact</a></span>
</div>
<div className='footer-copyright'>2020 Daniel Zhang. This site was made by Daniel Zhang from scratch with React.</div>
</footer>
.footer {
align-items: center;
border-top: 1px solid grey;
border-width: 100%;
box-sizing: border-box;
display: flex;
flex-direction: column;
flex-shrink: 0;
font-size: 12px;
margin: 0px auto;
padding: 10px 0px;
text-align: center;
}
.icons img {
display: inline-block;
padding: 10px;
width: 25px;
}
.footer-link {
padding: 0px 5px;
}
.footer-link a {
color: grey;
text-decoration: none;
}
.footer-link a:hover {
color: black;
text-decoration: none;
}
.footer-copyright {
padding: 5px 0px;
}
App.js
<NavBar />
<Router>
<Switch>
<Route exact path='/' render={() => <Home />} />
<Route exact path='/about' render={() => <About />} />
<Route exact path='/blog' render={() => <Blog />} />
<Route exact path='/contact' render={() => <Contact />} />
{/* Adds page not found. */}
<Route render={() => <Home />} />
</Switch>
</Router>
<Footer />
App.css
* {
font-family: 'Lato', sans-serif;
}
html, body {
height: 100%;
margin: 0px;
}
body {
display: flex;
flex-direction: column;
}
.container {
flex: 1 0 auto;
margin: 0px auto;
width: 65%;
}
您可以利用 bootstrap 并使用下面的 class。
<div className="fixed-bottom">
你可以使用属性位置:固定;
body {
min-height: 100vh;
}
.footer {
position: fixed;
bottom: 0;
left: 0;
width: 100%;
}
请尝试此代码。
body{
padding-bottom:50px; //same to the height of footer to avoid overlapping with fixed element
}
.footer {
position: fixed;
bottom: 0;
left: 0;
width: 100%;
height:50px; //set height as per your requirement
z-index:10;
overflow:hidden;
}
尝试flex-direction: column;
。
document.getElementById('add').addEventListener('click', e => {
document.getElementById('content').innerHTML += '<br />content<br />content<br />content';
});
html,
body {
margin: 0;
height: 100%;
}
body {
display: flex;
flex-direction: column;
}
.content {
flex: 1 0 auto;
}
.footer {
background: #999;
flex-shrink: 0;
}
<body>
<div class="content">
<button id="add">Add Content</button>
<p id="content">content</p>
</div>
<footer class="footer">footer</footer>
</body>
我正在制作一个网站,我试图让页脚始终位于底部。我希望页脚始终位于浏览器 window 的底部,但如果内容足够长,它会将页脚推到看不见的底部。现在,页脚始终紧跟在其上方的内容之后。
我试过设置display: flex, flex-direction, align-items: flex-end, margin-bottom: 0px
,但没用。我也在努力避免设置固定高度。
相关代码
Footer.js
<footer className='footer'>
<div className='icons'>
<span><a href='/'><img src={LinkedIn} alt='LinkedIn'/></a></span>
<span><a href='/'><img src={Mail} alt='Email' /></a></span>
<span><a href='/'><img src={Resume} alt='Resume' /></a></span>
</div>
<div>
<span className='footer-link'><a href='/'>Home</a></span>
<span className='footer-link'><a href='/about'>About</a></span>
<span className='footer-link'><a href='/blog'>Blog</a></span>
<span className='footer-link'><a href='/contact'>Contact</a></span>
</div>
<div className='footer-copyright'>2020 Daniel Zhang. This site was made by Daniel Zhang from scratch with React.</div>
</footer>
.footer {
align-items: center;
border-top: 1px solid grey;
border-width: 100%;
box-sizing: border-box;
display: flex;
flex-direction: column;
flex-shrink: 0;
font-size: 12px;
margin: 0px auto;
padding: 10px 0px;
text-align: center;
}
.icons img {
display: inline-block;
padding: 10px;
width: 25px;
}
.footer-link {
padding: 0px 5px;
}
.footer-link a {
color: grey;
text-decoration: none;
}
.footer-link a:hover {
color: black;
text-decoration: none;
}
.footer-copyright {
padding: 5px 0px;
}
App.js
<NavBar />
<Router>
<Switch>
<Route exact path='/' render={() => <Home />} />
<Route exact path='/about' render={() => <About />} />
<Route exact path='/blog' render={() => <Blog />} />
<Route exact path='/contact' render={() => <Contact />} />
{/* Adds page not found. */}
<Route render={() => <Home />} />
</Switch>
</Router>
<Footer />
App.css
* {
font-family: 'Lato', sans-serif;
}
html, body {
height: 100%;
margin: 0px;
}
body {
display: flex;
flex-direction: column;
}
.container {
flex: 1 0 auto;
margin: 0px auto;
width: 65%;
}
您可以利用 bootstrap 并使用下面的 class。
<div className="fixed-bottom">
你可以使用属性位置:固定;
body {
min-height: 100vh;
}
.footer {
position: fixed;
bottom: 0;
left: 0;
width: 100%;
}
请尝试此代码。
body{
padding-bottom:50px; //same to the height of footer to avoid overlapping with fixed element
}
.footer {
position: fixed;
bottom: 0;
left: 0;
width: 100%;
height:50px; //set height as per your requirement
z-index:10;
overflow:hidden;
}
尝试flex-direction: column;
。
document.getElementById('add').addEventListener('click', e => {
document.getElementById('content').innerHTML += '<br />content<br />content<br />content';
});
html,
body {
margin: 0;
height: 100%;
}
body {
display: flex;
flex-direction: column;
}
.content {
flex: 1 0 auto;
}
.footer {
background: #999;
flex-shrink: 0;
}
<body>
<div class="content">
<button id="add">Add Content</button>
<p id="content">content</p>
</div>
<footer class="footer">footer</footer>
</body>