gpt4 book ai didi

CSS 绝对位置在顶部留下空白

转载 作者:行者123 更新时间:2023-12-02 04:01:14 25 4
gpt4 key购买 nike

我想绝对定位一个div,但它没有粘在顶部,而是有一个空格。容器有 position:relative ,内部 block 有 position:absolute css 规则。我尝试使用代码并注意到更改背景位置有一些效果,但我不知道为什么。

<header>
<div class="header-wrapper">
<div class="header-slogan-1 text-center">Base info</div>
<div class="header-info">Info</div>
</div>
</header>

我想要的是顶部有绿色 block (参见 fiddle )。

这是fiddle

请谁能解释一下这种行为并回答为什么该 block 从顶部移动?

最佳答案

它从顶部移动,因为它相对于其具有上边距的父级 .header-wrapper 而言。为了获得所需的结果,您必须从其父级中删除 position:relative ,因此它将相对于视口(viewport)并放置在顶部。

编辑:我意识到,他的边距实际上应用于包装器的子项,导致 margin collapsing 。为了解决这个问题,您需要将 overflow: auto 应用于父元素。通过这样做,您仍然可以在包装器上有一个 position:relative ,因为它不会被子级下推。看看演示:

/* header block */
header {
height: 536px;
background-color: #ddd;
background-position: center;
background-size: 100% 536px;
background-repeat: no-repeat;
overflow: hidden;
}

header .header-wrapper {
position: relative;
overflow: auto;
z-index: 2;
}

.header-slogan-1 {
font-size: 32px;
font-weight: 700;
font-style: italic;
margin-top: 88px;
}

.header-wrapper .header-info {
position: absolute;
top: 0;
z-index: 3;
background-color: #4caf50;
max-width: 600px;
padding: 25px 25px 25px 75px;
color: #fff;
}

.text-center {
text-align: center;
}
<header>
<div class="header-wrapper">
<div class="header-slogan-1 text-center">Base info</div>


<div class="header-info">Info</div>
</div>
</header>

关于CSS 绝对位置在顶部留下空白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41895994/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com