gpt4 book ai didi

css - 绝对在 2 个 div 之间叠加图像

转载 作者:太空宇宙 更新时间:2023-11-04 09:23:55 26 4
gpt4 key购买 nike

所以我有几个部分具有动态高度(基于视口(viewport)),我需要能够将 img 定位为部分之间的分隔线。我能想到的唯一方法是绝对定位图像。问题是我并不总是知道每个部分的固定高度是多少。

那么有没有一种方法可以添加一个相对于自身定位的部分,而不会从 position: relative 留下空白空间。

.section {
width: 100%;
height: 200px;
}
.divider1 {
position: absolute;
left: calc(50vw - 100px);
top: 150px;
}
.divider2 {
position: absolute;
left: calc(50vw - 100px);
top: 350px;
}
.blue {
background-color: blue;
}
.red {
background-color: red;
}
.green {
background-color: green;
}
<!DOCTYPE html>
<html>

<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>JS Bin</title>
</head>

<body>
<div class="section blue"></div>
<div class="divider1">
<img width="200" height="100" src="http://www.clipartbest.com/cliparts/ace/o9d/aceo9daEi.jpeg" />
</div>
<div class="section red"></div>
<div class="divider2">
<img width="200" height="100" src="http://www.clipartbest.com/cliparts/ace/o9d/aceo9daEi.jpeg" />
</div>
<div class="section green"></div>
</body>

</html>

最佳答案

在 section 元素上将分隔符设置为伪元素(我使用了 ::after)。相对于 section 元素的底部定位伪元素。这样,部分的高度就可以改变,分隔符就会在正确的位置。

注意 - 你必须将 div 包装在一个容器中,这样我们就可以在最后一部分禁用 ::after

.section {
position: relative;
width: 100%;
height: 200px;
}
.section:not(:last-child)::after {
position: absolute;
width: 200px;
height: 100px;
bottom: -50px;
left: calc(50% - 100px);
background: url(http://www.clipartbest.com/cliparts/ace/o9d/aceo9daEi.jpeg) no-repeat;
background-size: contain;
content: "";
z-index: 1;
}
.blue {
background-color: blue;
}
.red {
background-color: red;
}
.green {
background-color: green;
}
<div>
<div class="section blue"></div>

<div class="section red"></div>

<div class="section green"></div>
</div>

关于css - 绝对在 2 个 div 之间叠加图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41291832/

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