【发布时间】:2021-11-23 22:37:10
【问题描述】:
我正在寻找使用 CSS 来定位我的文档,我想知道关于将 body 元素的 position 属性设置为 relative 以建立初始包含块的共识是什么。这被认为是不好的做法吗?我读过这不是必需的,也就是说,如果 body 元素的第一个子元素是绝对定位的,那么它的包含块默认为 HTML 元素,相当于视口。我很困惑,因为如果没有 body {position: relative;},我似乎无法让定位工作。
这是 HTML 和 CSS:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link href="styles.css" type="text/css" rel="stylesheet" />
</head>
<body>
<div id="div1">
<p id="p1">
content
</p>
</div>
<div id="div2">
<p id="p2">
content
</p>
</div>
</body>
</html>
body{
position: relative;
}
#div1 {
position: absolute;
top: 500px;
width:auto;
margin: auto;
}
#p1 {
position: absolute;
width: auto;
background-color: aqua;
}
#div2 {
position:absolute;
top: 200px;
background-color: red;
}
#p2 {
position: absolute;
}
我把这个例子放在一起,所以我可以开始弄乱position、margin 和width 的不同值。这与我最初发布的内容有很大不同。我希望了解如何为文档中的所有其他定位元素设置初始上下文,以便最终了解浏览器如何计算自动值。我开始对在页面上自动设置宽度和中心元素感到困惑。
【问题讨论】:
-
如果您没有在身体上设置相对位置,您会遇到哪些具体问题?
-
谢谢@Chaim。不使用的时候,一个定位都不起作用,好像一切都是正常的流程,这是我所期望的。我只是想知道我是否不应该这样做,因为我已经读过它是不必要的。对不起,我无法指出回哪里。我掉进了一个兔子洞。如果可以这样做并且不被认为是禁忌,特别是在 body 元素上,那将是完美的。
-
没有必要。但是,请发布您到目前为止的具体问题/问题,否则我们只是在猜测。
-
抱歉,还是新手。
-
请更新您的问题本身,以包含您迄今为止尝试过的代码——没有它,我们无法确定问题所在。话虽如此,我个人从未遇到过需要在
<body>元素上定义位置的情况。