日期:2014-05-17 浏览次数:20768 次
<!DOCTYPE HTML>
<html>
<head>
<meta charset="gb2312" />
<title></title>
<style>
.parent {
position:absolute; left:100px; top:100px;
border:1px solid red;
}
.sub {
position:absolute; left:10px; top:10px;
border:1px solid blue;
background:#eee;
}
</style>
</head>
<body>
<div class="parent">123
<div class="sub">123</div>
</div>
</body>
</html>
------解决方案--------------------
【已经定位了的祖先元素】就是所要定位的父级元素已经属于非标准流(解释:当某个元素(标签)脱离了标准流(如因为相对定位)排列,就成为非标准流排列)了
------解决方案--------------------
相对定位和绝对定位都是相对于父div标签的。
相对------以这个元素的本来应该在的位置为参照点
绝对——以父div标签的原点(左上角)为参照点。
由于外层是position:relative,所以里层是absolute的话,则会以外层的左上角为位移参考对齐。当然外层只写position:relative,写上left,top这两个值,则表示以:以这个元素的本来应该在的位置为布局参照原点进行left,top对齐。
还有一种情况是,只是一个position:absolute;外层没有position:relative,这时会找寻那个点为参考呢?这时候的原则是:如果某父级元素中有relative者,则以某父级元素为参考原点,如果没有position:relative,则以body为参考原点。如果position:absolute外层没有relative时,这两个布局上是没有区别的。
当然最后一种情况是:外层是:position:absolute;里边是position:relative,那会是什么情况?按着原来的原则,absolute会参考body为布局原点,relative会参考他本来应该在的位置为布局原点,这时候其实就是参考外层左上角为布局原点。