css – top的行为:auto;竹les我

你好
我真的很困惑一些基本的绝对定位。
<!DOCTYPE html>
<html>
<head>    
<link href="http://yui.yahooapis.com/3.0.0/build/cssreset/reset-min.css" rel="stylesheet" type="text/css" />

<style>    
#containingBlock {
  position: relative;
  background: green;

}
#abs {
  position: absolute;
  background: blue;
  top: auto;
}  
</style>
</head>
<body>

<div id="containingBlock">

  <p>foo</p>

  <div id="abs">bar</div>

</div>

</body>
</html>

使用上面的标记排列,div#abs与foo段落不重叠。

我知道我可以通过赋值0而不是auto来做到这一点,但是由于div#containsBlock没有填充,我认为auto和0会做同样的事情。

但是,如果段落和div#abs被切换到源代码中,使得bar到foo -top:auto之前;正如我所料。

任何解释赞赏!

解决方法

你没有真正定位这些元素,你只是宣布要使用什么类型的定位。在这种情况下,自动值不会真的做任何事情,因为#abs元素正好放置在正常的地方。如果你删除了顶部:auto;对于这个元素来说,它不会有任何影响。

“bar”不重叠“foo”,因为你没有定位它。它包含在#containingBlock元素内,并被放置在块元素< p>下方。因为“foo”占用了大量的空间。你想覆盖吗?设置顶部或其他相应的位置值。要重申别人所说的话,顶部:汽车只要把这个元素的顶部置于房间允许的高度(这是元素正常做的)。

为了将来参考,自动值用​​于父CSS属性覆盖子元素的样式时。例如,假设你有更复杂的代码,它有一个规则来对#containingBlock中的每个div应用边距。如果要将其恢复正常,则包括margin:auto;在你的containsBlock CSS。

相关文章

Css3如何实现鼠标移上变长特效?(图文+视频)
css3怎么实现鼠标悬停图片时缓慢变大效果?(图文+视频)
jquery如何实现点击网页回到顶部效果?(图文+视频)
css3边框阴影效果怎么做?(图文+视频)
css怎么实现圆角边框和圆形效果?(图文+视频教程)
Css3如何实现旋转移动动画特效