强制绝对定位div不重叠

时间:2011-09-28 19:05:11

标签: css positioning

我有一个使用position:absolute;定位的标题栏,我似乎无法将其与 重叠我的内容。

enter image description here

以下是我用于示例的html:

<div class="ui-page ui-page-active">
    <div class="ui-header">
        <div class="ui-title ui-title-h1">
            Page Title 1
        </div>
    </div>
    <div class="ui-content">
        <a href="#pg-two">Page Two</a>
    </div>
    <div class="ui-footer">
        <div class="ui-title ui-title-h3">
            Page Footer 1
        </div>
    </div>
</div>

这是我的css

html,body {
    height: 100%;
    width: 100%;
    margin: 0;
    padding: 0; 
}
.ui-page {
    background-color: #bbb;
    height: 100%;
    width: 100%;
    display: block;
    position: relative;
}
.ui-page-inactive {
    display: none;  
}
.ui-page-active {
    display: block; 
}
.ui-header {
    position: absolute;
    top: 0;
    background-color: #000;
    width: 100%;
    display: inline-block;
}
.ui-content {

}
.ui-footer {
    position: absolute;
    bottom: 0;
    background-color: #000;
    width: 100%;
    display: inline-block;
}
.ui-title {
    text-align: center;
    color: #fff;
    padding: 4px;
    line-height: 150%;
}
.ui-title-h1 {
    font-size: 1.5em;
    font-weight: 900;
}

我的最终目标是始终在顶部显示标题栏,页脚栏始终位于底部,内容填充中心。内容div不 实际 需要填充100%,我只是不希望它被页眉或页脚阻止。

2 个答案:

答案 0 :(得分:1)

一种简单的方法是将.ui-content上的padding-top或margin-top(我不确定哪个)设置为标题的高度,这会将.ui-content向下推,因此不存在不重叠。

答案 1 :(得分:0)

如果页眉和页脚是固定高度(例如“80px”),那么你可以使用上下边距使内容绝对(位置:绝对;溢出-y:滚动;顶部: 80px;底部:80px;)并固定页眉和页脚(位置:固定;高度:80px;顶部:0;左:0;右:0;溢出:隐藏;标题和位置:固定;高度:80px ; bottom:0; left:0; right:0; overflow:hidden; for footer)

这样的事可能有用。