2012-06-16 99 views
0

我很难使divs顶部的位置相对于其前面的subling。CSS位置相对作为绝对

我:

<style> 
#container {position:absolute; top:0px; height:100%} 
.question {position:relative;border: 1px double black;} 
.question [scope=title] {position:relative; top:0px; color:black;font-size:28px; border-bottom: 1px double black;} 
.question [scope=body] {position:relative; top:0px; color:black;font-size:18px; } 
.question [scope=author] {position:relative;top:10px} 
.question [scope=tags] {position:relative;top:0px} 
</style> 

然后

<div ID="container"> 
     <div class="question"> 
      <div scope="title">A</div> 
      <div scope="body">B</div> 
      <div scope="author">C</b></div> 
      <div scope="tags">D</div> 
     </div> 
</div> 

我希望笔者的div是10px的低于通常会和以下的div相对于这一点。但是,“标签”和“作者”重叠。

太刺激了,但我打赌有一个简单的答案。任何帮助?

+0

在作者div中有一个大胆的结束标记...(?) – Connor

+0

不影响CSS,浏览器编译器将忽略松散的结束标记。 – Terry

+0

这是我在删除代码时所犯的一个错误,以增加对您的好人的理解。傻我 – rikAtee

回答

3

尝试设置上撰文代替边距:

.question [scope=author] {position:relative;margin-top:10px} 
1

因为您的question元素正在计算子元素的高度。 因此,它的高度与孩子的确切高度相匹配,但是其中一个孩子(C)会向下推动10px,因此它与下方的孩子重叠。

只需更改author,它将起作用。

.question [scope=author] {position:relative;top:0px} 
+0

但我希望作者比“香草”低10px。问题是我如何让兄弟姐妹div与前面的兄弟姐妹div相关? – rikAtee

+2

然后使用'padding'或'margin'。 – Terry

1

当一个元件具有一个位置:相对偏移,所述元件在偏移呈现,但是其他元件被放置在布局流程中,就好像元素没有偏移一样。换句话说,偏移发生在布局流程之外。它就像一个绝对定位的元素,它在布局中占据了一个不可见的占位符。

由于您希望元素响应彼此的偏移量,因此建议使用不同的偏移机制,即在布局流程中发生的一种:填充或边距。