Css 绝对及;相对内容的显示方式不同

Css 绝对及;相对内容的显示方式不同,css,position,Css,Position,我的问题是: 如果我处于相对和绝对定位应该具有相同结果的情况下(例如,如果我将此位置应用于页面中唯一的div元素),并且我为元素设置了特定宽度,为什么div内容显示不同,有没有办法解决这个问题 一个简单的例子应该有助于理解: 使用位置:相对: 。测试边框{ 宽度:800px; 位置:相对位置; 左边框:3px实心#DFDFDF; } 内容 内容 内容 内容 内容 内容 这是因为定位的元素绝对不会折叠边距,而相对定位的元素则会折叠边距ul元素通常由浏览器自动应用margin和padding。

我的问题是: 如果我处于
相对
绝对
定位应该具有相同结果的情况下(例如,如果我将此位置应用于页面中唯一的
div
元素),并且我为元素设置了特定宽度,为什么
div
内容显示不同,有没有办法解决这个问题

一个简单的例子应该有助于理解:

使用
位置:相对
。测试边框{
宽度:800px;
位置:相对位置;
左边框:3px实心#DFDFDF;
}

  • 内容
  • 内容
  • 内容
  • 内容
  • 内容
  • 内容

这是因为定位的元素绝对不会折叠边距,而相对定位的元素则会折叠边距
ul
元素通常由浏览器自动应用
margin
padding
。当相对定位时,此
页边距
折叠到
正文
页边距
中,这就是列表上方和下方的“填充”似乎较少的原因

发件人:

绝对定位的箱子从正常流量中取出。这意味着它们对以后兄弟姐妹的布局没有影响。此外,尽管绝对定位框有边距,但它们不会与任何其他边距一起折叠

要阻止这种情况发生,请添加
margin:0
ul

。测试边框{
宽度:800px;
位置:绝对位置;
左边框:3px实心#DFDFDF;
}
.测试边界ul{
保证金:0;
}

  • 内容
  • 内容
  • 内容
  • 内容
  • 内容
  • 内容

相对放置的元素仍与其父元素相关。让它继承一些它的风格

放置在绝对位置的元素位于文档流上方。它与它的“父”没有关系


当您禁用body和HTML标记的
边距
填充
时,您将看到差异消失了:

谢谢,但我真的不明白,因为修改必须在“static”(ul)中定位的元素上进行。这是否意味着如果我想在相对和绝对之间得到相同的结果,我必须删除所有子元素的边距(在我的示例中,只有
    ,但事实上我有更多的东西)?@user1961659这取决于许多因素,因此我很难说出会产生什么影响。如果有多个
    ul
    ,所有
    static
    都有顶部和底部的
    margin
    ,则是,这些margin将彼此折叠。这可能会让我们更深入地了解正在崩溃的利润率。