日期:2014-05-17 浏览次数:20597 次
<!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会参考他本来应该在的位置为布局原点,这时候其实就是参考外层左上角为布局原点。