css - 我将图像设置为绝对定位,使用百分比设置,但是在调整窗口大小时一张图像仍然没有保留
问题描述
我已经设置了一个 div,里面有很多图像。它们都设置为绝对值,并且它们都将顶部和右侧设置为百分比。调整窗口大小时,所有图像都保持不变,只有一张除外。
这是小提琴:https ://jsfiddle.net/a268w7ez/
或者,我在下面输入了关键代码。
我的 html 看起来像这样:
<div id="space">
<div id="map">
<img id="layer9" src="./assets/css/images/layer9.png">
<img id="layer8" src="./assets/css/images/layer8.png">
<img id="layer7" src="./assets/css/images/layer7.png">
<img id="layer6" src="./assets/css/images/layer6.png">
<img id="layer5" src="./assets/css/images/layer5.png">
<img id="layer4" src="./assets/css/images/layer4.png">
<img id="layer3" src="./assets/css/images/layer3.png">
<img id="layer2" src="./assets/css/images/layer2.png">
<img id="layer1" src="./assets/css/images/layer1.png">
<img id="cantonica" class="planet" src="./assets/css/images/dot.png">
</div>
</div>
我的 CSS 看起来像这样:
#map {
display: block;
position: relative;
top: 2%;
height: 76%;
width: 33%;
margin: auto;
z-index: 0;
}
#layer9 {
height: 100%;
margin: auto;
position: relative;
z-index: 1;
}
#layer8 {
height: 90.11553273427471%;
position: absolute;
top: 5.006418485237484%;
left: 3.465982028241335%;
z-index: 2;
}
// The #layer id's go on like this with different heights, tops, and
// lefts, all set in percentages.
.planet {
width: 10px;
}
#cantonica {
position: absolute;
top: 12.195121951219512%;
right: 14.120667522464696%;
z-index: 10;
}
但是当我调整窗口大小时,除了白点之外,所有东西都保持在同一个位置:
我将添加更多的点(50+),所以我可以调整窗口的大小并且它们都保持在同一个位置非常重要。
我在这里先向您的帮助表示感谢。
解决方案
按照您的模式,看起来您希望每个较低层都比前一层大一点。因为您已经应用了height: 100%;
to layer9
,所以我假设该层将是容器的全尺寸。
您可以使用在所有其他层上使用的相同 CSS 样式,但只需将其设为容器的完整大小:
#layer9 {
height: 100%;
position: absolute;
top: 0%;
left: 0%;
z-index: 1;
}
问题是因为您将relative
位置应用于layer9
,这意味着如果高度是百分比(100%),它将缩小或增大。
推荐阅读
- python-3.x - 导入 seaborn 时出现此错误
- python - 在 Kivy 中舍入备用边缘
- python - auth.user.none 和
在 ManyToManyField 渲染中 - c++ - 标准::对
返回类型 - c# - 鼠标悬停时按钮的背景闪烁或消失
- pytorch - 有没有什么方法可以为pytorch中的张量生成分段函数?
- c++ - 两个数的对称配对函数
- swift - Swift 无法检索子节点 firebase 数据库
- asp.net-core - Microsoft 标识脚手架页面的 css 文件在哪里?
- django - Django RadioSelect 字段未正确呈现