gpt4 book ai didi

css - CSS 绝对定位之谜

转载 作者:太空狗 更新时间:2023-10-29 16:36:42 28 4
gpt4 key购买 nike

考虑下面的网页。 <img>绝对相对于其父级定位,当我在 Safari 或 Firefox 上加载此页面时,<img>正如预期的那样出现在右上角(见第一张图片)。但是,当边框从 <div> 中移除时,例如,通过设置 border-width: 0 , <img>绝对相对于 <p> 定位自己标记,它的兄弟!参见图片 #2。为什么是这样?边界应该有什么区别?

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>

<style type="text/css">
body {
margin: 0;
}
div {
position: relative;
left: 0;
top: 0;
border: 1px solid red;
}
img {
position: absolute;
right: 0;
top: 0;
}
p {
margin: 20px;
}
</style>

</head>
<body>
<div>
<img src="content/en/flag.png" />
<p>This is a test</p>
</div>
</body>
</html>

absolutely relative to div absolutely relative to p

最佳答案

您的图片始终位于右上角。它与 collapsing margins 有关.

尝试用背景色来做。您会看到您的 div 正从 body 的顶部移开几个像素。如果你删除 p 的边距一切都会好起来的,或者将 p 设置为内联元素或 float 它,甚至将溢出设置为 auto隐藏滚动 到父级。另一种对抗折叠边距的方法是向容器元素添加边框。所以你真的是用那个边界来解决这个问题。

但图像始终位于其应有的位置。

关于css - CSS 绝对定位之谜,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17768520/

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