我有以下布局。
<div class="container">
<div class="content">
<div class="post">post</div>
<div class="image">image</div>
</div>
<div class="footer">footer</div>
</div>
http://jsbin.com/xicatoq/4/edit?html,css,output
我想要达到的目的是让页脚粘到底部(我不想使用绝对定位)并从顶部到页脚进行.content
拉伸,如下图所示
有人可以解释我是如何做到的吗?
答案 0 :(得分:1)
在您的代码中,类content
的div是一个flex容器。这使得子元素(.post
和.image
)变为项目。
但是,您的类container
的div不是 Flex容器。因此.content
和.footer
不是弹性项目,也不能接受弹性属性。
所以,第一步,添加:
.container {
display: flex;
flex-direction: column;
}
然后使用flex auto
边距将页脚粘贴到容器的底部:
.footer {
margin-top: auto;
}
这是完整的代码:
body {
font-family: monospace;
color: #fff;
text-align:center;
}
.container {
width: 100%;
height: 800px;
background: red;
display: flex; /* NEW */
flex-direction: column; /* NEW */
}
.content {
/* float: left; */
width: 100%;
display: flex;
align-items: center;
}
.post {
width: 70%;
background: pink;
line-height: 300px;
}
.image {
width: 30%;
height: 500px;
background: green;
}
.footer {
background: blue;
line-height: 70px;
text-align: center;
/* float: left; */
width: 100%;
margin-top: auto; /* NEW */
}
<div class="container">
<div class="content">
<div class="post">post</div>
<div class="image">image</div>
</div>
<div class="footer">footer</div>
</div>
请注意,我注释掉了花车。他们没有工作。 In a flex container floats are ignored.
在此处详细了解auto
页边距:https://stackoverflow.com/a/33856609/3597276
答案 1 :(得分:1)
请检查:http://jsbin.com/dojitevoye/edit?html,css,output
body {
font-family: monospace;
color: #fff;
text-align:center;
}
.container {
width: 100%;
height: 800px;
background: red;
}
.content {
float: left;
width: 100%;
height: 100%;
display: flex;
align-items: center;
}
.post {
width: 70%;
background: pink;
line-height: 300px;
align-self: flex-start;
}
.image {
width: 30%;
height: 500px;
background: green;
align-self: flex-start;
}
.footer {
background: blue;
line-height: 70px;
text-align: center;
float: left;
width: 100%;
align-self:flex-end;
}
将.content
类的高度设置为100%,这将取其父级的高度(.container
),在这种情况下为800px。
现在将.post
和.image
与align-self: flex-start;
现在,类似地使用align-self:flex-end;
答案 2 :(得分:0)
只需使用height: 100%;
到.content
,就会让页脚粘到底部。
<强> Working JSBin 强>