粘连布局,又称为stick footer布局。在网页设计中,Sticky footers设计是最古老和最常见的效果之一,大多数人都曾经经历过。它可以概括如下:如果页面内容不够长的时候,页脚块粘贴在视窗底部;如果内容足够长时,页脚块会被内容向下推送。
0,
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=no">
<title>Title</title>
<link rel="stylesheet" href="css/reset.css">
<style>
#wrap{
width: 100%;
min-height: 100%;
}
#main{
background: yellowgreen;
padding-bottom: 30px;
}
#footer{
width: 100%;
height: 30px;
background: deeppink;
margin-top: -30px;
}
</style>
</head>
<body>
<div id="wrap">
<div id="main">
main<br>
main<br>
main<br>
main<br>
main<br>
main<br>
main<br>
main<br>
main<br>
main<br>
main<br>
main<br>
main<br>
main<br>
main<br>
main<br>
main<br>
main<br>
main<br>
main<br>
main<br>
main<br>
main<br>
main<br>
main<br>
main<br>
main<br>
main<br>
main<br>
main<br>
main<br>
main<br>
main<br>
main<br>
main<br>
main<br>
main<br>
main<br>
main<br>
main<br>
main<br>
main<br>
main<br>
main<br>
main<br>
main<br>
main<br>
main<br>
main<br>
main<br>
main<br>
</div>
</div>
<div id="footer">底部</div>
</body>
</html>
1.绝对定位
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
html,body{height:100%}
body{margin:0}
.box{position:relative;background-color:lightblue;min-height:100%;}
.content{padding-bottom:50px;}
.sticky{position:absolute;background-color:deepskyblue;width:100%;height:50px;bottom:0;}
</style>
</head>
<body>
<div class="box">
<main class="content">
决定是否囧分级基金撒附件撒娇覅偶就阿尔法就案件佛i金额哦附件
决定是否囧分级基金撒附件撒娇覅偶就阿尔法就案件佛i金额哦附件
决定是否囧分级基金撒附件撒娇覅偶就阿尔法就案件佛i金额哦附件
决定是否囧分级基金撒附件撒娇覅偶就阿尔法就案件佛i金额哦附件
决定是否囧分级基金撒附件撒娇覅偶就阿尔法就案件佛i金额哦附件
决定是否囧分级基金撒附件撒娇覅偶就阿尔法就案件佛i金额哦附件
决定是否囧分级基金撒附件撒娇覅偶就阿尔法就案件佛i金额哦附件
决定是否囧分级基金撒附件撒娇覅偶就阿尔法就案件佛i金额哦附件
决定是否囧分级基金撒附件撒娇覅偶就阿尔法就案件佛i金额哦附件
决定是否囧分级基金撒附件撒娇覅偶就阿尔法就案件佛i金额哦附件
决定是否囧分级基金撒附件撒娇覅偶就阿尔法就案件佛i金额哦附件
决定是否囧分级基金撒附件撒娇覅偶就阿尔法就案件佛i金额哦附件
决定是否囧分级基金撒附件撒娇覅偶就阿尔法就案件佛i金额哦附件
决定是否囧分级基金撒附件撒娇覅偶就阿尔法就案件佛i金额哦附件
...
</main>
<footer class="sticky">
看到都能看到可能的困难都能
</footer>
</div>
</body>
</html>
2,calc
上面的代码中,因为要实现最小高度100%的效果,给html、body都设置为高度100%,不利于代码扩展。下面使用100vh来代替100%,代码会简洁很多。内容部分(.content)设置最小高度为calc(100vh - 50px)即可
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
body{margin:0}
.content{background-color:lightblue;min-height: calc(100vh - 50px)}
.sticky{background-color:lightgreen;height:50px;}
</style>
</head>
<body>
<div class="box">
<main class="content">
Lorem ipsum dolor sit amet consectetur, adi
pisicing elit. Quam eos architecto ratione culpa adipisci inventore ipsum eum esse, nam aperiam, non tempora perferendis doloribus cumque ducimus quidem consequuntur reprehenderit reiciendis!
...
Lorem ipsum dolor sit amet consectetur, adi
pisicing elit. Quam eos architecto ratione culpa adipisci inventore ipsum eum esse, nam aperiam, non tempora perferendis doloribus cumque ducimus quidem consequuntur reprehenderit reiciendis!
...覅覅斤斤计较斤斤计较急急急急急急急急急
发窘我就急急急急急急急急急急急急急急急
...覅覅斤斤计较斤斤计较急急急急急急急急急
发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
发窘我就急急急急急急急急急急急急急急急
...覅覅斤斤计较斤斤计较急急急急急急急急急
发窘我就急急急急急急急急急急急急急急急
...覅覅斤斤计较斤斤计较急急急急急急急急急
发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
发窘我就急急急急急急急急急急急急急急急
...覅覅斤斤计较斤斤计较急急急急急急急急急
发窘我就急急急急急急急急急急急急急急急
...覅覅斤斤计较斤斤计较急急急急急急急急急
发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
发窘我就急急急急急急急急急急急急急急急
</main>
<footer class="sticky"></footer>
</div>
</body>
</html>
3,flex
上面的代码中,如果sticky的底部高度发生了变化,则内容部分的代码也需要进行相应地调整。如果使用flex,则可以更加灵活。为父级(.box)设置flex、上下排列及最小高度为100vh,为内容部分(.content)设置flex:1即可
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
body{margin:0}
.box{display:flex;flex-flow:column;min-height:100vh;background-color:lightblue;}
.content{flex:1;}
.sticky{background-color:lightgreen;height:50px;}
</style>
</head>
<body>
<div class="box">
<main class="content">
调度Lorem ipsum dolor sit amet consectetur, adi
pisicing elit. Quam eos architecto ratione culpa adipisci inventore ipsum eum esse, nam aperiam, non tempora perferendis doloribus cumque ducimus quidem consequuntur reprehenderit reiciendis!
...
Lorem ipsum dolor sit amet consectetur, adi
pisicing elit. Quam eos architecto ratione culpa adipisci inventore ipsum eum esse, nam aperiam, non tempora perferendis doloribus cumque ducimus quidem consequuntur reprehenderit reiciendis!
...覅覅斤斤计较斤斤计较急急急急急急急急急
发窘我就急急急急急急急急急急急急急急急
...覅覅斤斤计较斤斤计较急急急急急急急急急
发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
发窘我就急急急急急急急急急急急急急急急
...覅覅斤斤计较斤斤计较急急急急急急急急急
发窘我就急急急急急急急急急急急急急急急
...覅覅斤斤计较斤斤计较急急急急急急急急急
发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
发窘我就急急急急急急急急急急急急急急急
...覅覅斤斤计较斤斤计较急急急急急急急急急
发窘我就急急急急急急急急急急急急急急急
...覅覅斤斤计较斤斤计较急急急急急急急急急
发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
发窘我就急急急急急急急急急急急急急急急
</main>
<footer class="sticky"></footer>
</div>
</body>
</html>
4,grid
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
body{margin:0}
.box{display:grid;grid-template-rows:1fr 50px;min-height:100vh;}
.content{background-color:lightblue;}
.sticky{background-color:lightgreen;}
</style>
</head>
<body>
<div class="box">
<main class="content">
调度Lvv差分方程orem ipsum dolor sit amet consectetur, adi
pisicing elit. Quam eos architecto ratione culpa adipisci inventore ipsum eum esse, nam aperiam, non tempora perferendis doloribus cumque ducimus quidem consequuntur reprehenderit reiciendis!
...
Lorem ipsum dolor sit amet consectetur, adi
pisicing elit. Quam eos architecto ratione culpa adipisci inventore ipsum eum esse, nam aperiam, non tempora perferendis doloribus cumque ducimus quidem consequuntur reprehenderit reiciendis!
...覅覅斤斤计较斤斤计较急急急急急急急急急
发窘我就急急急急急急急急急急急急急急急
...覅覅斤斤计较斤斤计较急急急急急急急急急
发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
发窘我就急急急急急急急急急急急急急急急
...覅覅斤斤计较斤斤计较急急急急急急急急急
发窘我就急急急急急急急急急急急急急急急
...覅覅斤斤计较斤斤计较急急急急急急急急急
发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
发窘我就急急急急急急急急急急急急急急急
...覅覅斤斤计较斤斤计较急急急急急急急急急
发窘我就急急急急急急急急急急急急急急急
...覅覅斤斤计较斤斤计较急急急急急急急急急
发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
发窘我就急急急急急急急急急急急急急急急 ...覅覅斤斤计较斤斤计较急急急急急急急急急
发窘我就急急急急急急急急急急急急急急急
</main>
<footer class="sticky"></footer>
</div>
</body>
</html>