html - 放大时或更改视口大小时元素会四处移动
问题描述
我到处寻找解决此问题的方法,甚至查看了此处发布的一些类似问题,因此请不要将其标记为重复,因为我仍然无法弄清楚。
正如您在此处看到的,我试图将图像保持在红色容器上方的确切位置,但是当我放大或更改屏幕尺寸时,图像不在我想要的位置,它移动到页面的左侧。(尝试自己放大页面或在编辑器模式下将幻灯片一直滑动到右侧,看看我的意思)。
我已经尝试了从绝对和相对定位到使图像成为内联块和块的所有方法。我不知道该怎么办?请帮我理解。 代码在这里
.container {
background: red;
width: 50em;
height: 50em;
margin: 2em auto 3em auto;
position: relative;
}
.image {
width: 150px;
position: relative;
margin: 3em 0 0 13em;
}
.header {
font-size: 3em;
position: absolute;
left: 6em;
top: 1em;
}
<img class="image" src="https://i.imgur.com/zKdvwvz.jpg" alt="" />
<div class="container">
<h2 class="header">Hello</h2>
</div>
解决方案
您可以将代码包装在包装器中并为其定义margin: 0 auto;
。此外,您应该在容器边距中替换auto
为0
:
#wrapper {
margin: 0 auto;
}
.container {
...
margin: 2em 0 3em 0;
}
工作示例:
#wrapper {
margin: 0 auto;
}
.image {
width: 150px;
margin: 3em 0 0 13em;
}
.container {
background: red;
width: 50em;
height: 50em;
margin: 2em 0 3em 0;
position: relative;
}
.header {
font-size: 3em;
position: absolute;
left: 6em;
top: 1em;
}
<div id="wrapper">
<img class="image" src="https://i.imgur.com/zKdvwvz.jpg" alt="" />
<div class="container">
<h2 class="header">Hello</h2>
</div>
</div>
如果您希望包装器(带有容器)居中,您可以display: flex
为包装器周围的元素定义(也许main
):
工作示例:
main {
display: flex;
}
#wrapper {
margin: 0 auto;
}
.image {
width: 150px;
margin: 3em 0 0 13em;
}
.container {
background: red;
width: 50em;
height: 50em;
margin: 2em 0 3em 0;
position: relative;
}
.header {
font-size: 3em;
position: absolute;
left: 6em;
top: 1em;
}
<main>
<div id="wrapper">
<img class="image" src="https://i.imgur.com/zKdvwvz.jpg" alt="" />
<div class="container">
<h2 class="header">Hello</h2>
</div>
</div>
</main>
推荐阅读
- google-sheets - 表格转换 Google 表格
- android - “错误保存规则 - 第 1 行:解析错误”当我尝试将此规则添加到 Firebase 中时
- php - Laravel spatie/laravel 可翻译
- javascript - 如何深度复制包含嵌套对象和数组的对象?
- binary - 如何以二进制最佳方式存储十进制数字?
- php - 在非分层输入上使用 xpath
- laravel - Laravel 调度器非重叠方法
- r - R中的主成分分析(共线预测变量)和预测函数
- python - 调用碰撞检测函数时应该输入什么参数?
- python - 在 Visual Studio Code 中调试 python 单元测试