首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > CSS >

关于css绝对定位有关问题

2012-06-13 
关于css绝对定位问题书上说绝对定位是“相对于离它最近的已经定位的祖先元素的位置”,绝对定位的元素脱离了

关于css绝对定位问题
书上说绝对定位是“相对于离它最近的已经定位的祖先元素的位置”,绝对定位的元素脱离了文档流。


我想问一下什么算是已经定位了的祖先元素,不太理解已经定位了的这几个字



求各位帮忙,感激不尽!

[解决办法]
比如

HTML code
<!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会参考他本来应该在的位置为布局原点,这时候其实就是参考外层左上角为布局原点。

热点排行