0

使用 z-index 属性替换另一个 div 后如何从 div 中删除填充。

这是基本的 HTML 结构:
a) 主容器,height:auto
b) 应该溢出
的 div c) 溢出 div 的 div b)

将 c) div 向上移动 200px 后,我得到了空白空间。主容器具有自动高度属性,但它保持相同的大小。
我的问题是你们如何在使用位置/z-index 属性向上移动 div 后删除额外的空间

4

2 回答 2

0

试试这个替换 top:-30px; 边距顶部:-30px;

http://jsfiddle.net/NqphG/1/

于 2012-05-25T07:55:16.230 回答
0

您可以使用负边距而不是定位 div#c。请参阅此演示

负边距不会改变堆叠,但可以将 div#c 放在 div#b 上。不要忘记边距塌陷的现象。

在某些情况下,就绘画而言,您可以得出相同的结论(无论您采用什么技术)。但这条路线引出了重要的 CSS 概念:

  • 在div#c 占用空间,通过 top|right|bottom|left 进行偏移。因此,以下元素(或在您的情况下为:div#a)以这样的方式排列,因此如果它没有首先被定位。
  • 定位可以创建一个新的堆叠上下文(结合 z-index != auto)
  • 相对定位的元素创建一个包含块(绝对定位的后代的参考框架)
  • 相对定位或多或少有意识地用作 IE 的错误修复。
于 2012-05-25T08:30:46.230 回答