强制 div 换行

3
我试图让"footer" div坐在"main" div下面,但它总是出现在旁边。我只想让它直接坐在前面的div下面(不被强制放到底部),但它似乎总是出现在头部下面。
<body>
    <div class="wrapper">
        <div class="header">
            Heading
        </div>
        <div class="main">
            Content
        </div>
        <div class="footer">More details on how you can help coming soon.</div>
    </div>
</body>

CSS:

body {
    background-image: url("./../img/bg.jpg");
    background-repeat: no-repeat;
    background-size: 100%;
    margin: 0;
    padding: 0;
}

.header{
    color: #FFFFFF;
    font-size: 14vw;
    text-align: center;
    font-family: OSWALD;
    font-style: normal;
    text-transform: uppercase;
    font-weight: 700;
    letter-spacing: 2px;
    width: 100%;
    line-height: 1.2em;
}

.main{
    display: inline-block;
    width: 300px;
    height: 380px;
    overflow: hidden;
    padding: 19px 22px 7px;
    color: #fff;
    font-size: 13px;
    text-transform: uppercase;
    font-weight: 700;
    font-family: "futura-pt", sans-serif;
    letter-spacing: 2px;
    line-height: 45px;
    position: absolute;
    right: 0px;
}

.contact{
    border-top: 6px solid #e2d056;
    border-bottom: 6px solid #e2d056;
    width: 250px;
    margin: 25px 0 0;
    padding: 10px 22px 10px;
    text-align: center;
}

.footer {
    color: #fff;
    font-size: 13px;
    text-transform: uppercase;
    font-weight: 700;
    font-family: "futura-pt", sans-serif;
    letter-spacing: 2px;
    line-height: 25px;
    text-align: left;
    padding-left: 30px;
}

不要使用display: inline-block。如果您能够简化您的庞大CSS,那将是很好的。 - kornieff
只需移除 main 的 position 属性,它就可以正常工作。 - Domain
3个回答

1
您可以完全删除display: inline-block;,因为它似乎没有任何用处。
如果您仍需要display: inline-block;,您可以使用.footer { clear: both; }.main { float: left; clear: both; }

1
只需将 .mainposition:absolute 更改为 position:relative,因为 absolute 会将 div 元素从布局流中取出。
.main {
    position:relative;
}

这里有一个更新后的代码 jsfiddle:https://jsfiddle.net/AndrewL32/ewaLf4ct/

0
使用 .footer { clear: both; }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接