html - div 在另一个绝对定位的 div 之下

标签 html css css-position

我对位于另一个具有“position: absolute”的 div 下面的 div 有疑问。 我需要让 footer 出现在 container div 下,但现在页脚出现在容器后面的某个地方。 屏幕:(绿色背景的div是页脚) enter image description here

HTML:

<div class="horni-panel">
    <div class="logo">
        Zhlednuto.cz
    </div>

    <div class="menu">
        Home, about atd.
    </div>

</div>

<!-- Mini pozadi -->
<div class="minipozadi">
    ahoj
</div>

<!-- hlavni obsah -->
<div class="container">


Lorem ipsum dolor sit amet. x 40
</div>

CSS:

@font-face
{
    font-family: Lato-Bold;
    src: url(fonts/Lato-Bold.ttf);
}

body
{
    font-family: Myriad Pro;
    font-size: 17px;
    color: #a1a8af;
    background-color: #34495e;
}

.horni-panel
{
    border-top: 8px solid #34495e;
    position:absolute;
    top:0;
    left:0;
    right:0;
    height: 77px;
    width: 100%;
    background-color: #ffffff;
}

.logo
{
    color: #34495e;
    font-family: Lato-Bold;
    font-size: 33px;
}


.minipozadi
{
    height: 282px;
    width: 100%;
    background-image: url(img/bg.jpg);
    background-size: cover;
    background-repeat: no-repeat;
    margin: 0 auto;
    position:absolute;
    top: 85px;
    left:0;
    right:0;
    z-index:1;
    text-align:center;
    font-size:30px;
}

.container
{
    padding: 20px;
    margin: 0 auto;
    border-radius: 5px;
    z-index: 100;
    position:absolute;
    top:0;
    right:0;
    left:0;
    margin-top:266px;
    width: 70%;
    background-color: #ffffff;
    border-rder-radius: 5px;
}

.footer
{
margin: 0 auto;
    width: 100%;
    height: 480px;
    background-color: green;
}

最佳答案

绝对定位的元素将从文档流中移除。所以页脚向上移动,因为容器不是该流的一部分。您需要对两者都使用相对定位,或者对两者都使用绝对定位并设置它们特定的顶部和左侧值。

或者,您可以在页脚上设置一个上边距,使其下降足够多,使其位于容器下方。

您还需要查看您的 CSS。有几个可能相互冲突的冗余属性。

body
{
    font-family: arial;
    font-size: 17px;
    color: #a1a8af;
    background-color: #34495e;
}

.horni-panel
{
    border-top: 8px solid #34495e;
    position:absolute;
    top:0; left:0;
    height: 77px;  width: 100%;
    background-color: #ffffff;
}

.logo
{
    color: #34495e;
    font-family: Lato-Bold;
    font-size: 33px;
}

.minipozadi
{
    height: 100px;  width: 100%;
    position:absolute;
    background-color: blue;
    top: 85px;   left:0;
    z-index:1;
    text-align:center;
    font-size:30px;
}

.container
{
    padding: 20px;
    border-radius: 5px;
    z-index: 100;
    position:relative;
    margin: 0 auto;
    top: 120px;
    width: 70%;
    background-color: #fea;
}

.footer
{
    margin-top: 120px;
    width: 100%;
    height: 80px;
    background-color: green;
}

在此 fiddle我删除了一些多余的 css 并在容器 div 上使用 position:relative 而不是 absolute。页脚上的 margin-top 属性需要大于或等于容器上的 top 属性才能使其保持在其下方。

关于html - div 在另一个绝对定位的 div 之下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30559330/

相关文章:

javascript - 在鼠标悬停时取消 Jquery Slider 事件

html - 在背景图像上放置不可见链接

html - figure 和 div 标签之间绝对定位的奇怪差异

html - 如果元素及其子元素的位置均为 :absolute,则元素及其子元素的左值和上值是多少

javascript - 将值从一个 iframe 发布到另一个 iframe

javascript - 使用 CSS 或其他非 JS 方法模仿 "onselectstart=return false"?

jquery - 如何使用第一个类型

Javascript slider 不显示和图形提示

javascript - 在 HTML 中显示 jquery 值

html - 位置固定的 css 添加到 Angular Material 中的 body 标签中