博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

css position定位

Posted on 2010-03-29 22:20  peswe  阅读(537)  评论(0编辑  收藏  举报
在css中position属性的可能值为:static,relative,absolute,fixed,默认为static
注:1、absolute,fixed设置的left,top默认都是相对body形成的坐标系而言的,而且当position为fixed时,只能相对body形成的坐标系;

当position为:absolute时,可以设置其父级元素的position为:relative改变坐标系,例如:

<div style="border:1px solid green;position:relative;height:200px;">
    <div style="margin:3px;border:1px solid blue;position:fixed;left:100px;top:5px;height:100px;width:20px;">good</div>
    <div style="margin:3px;border:1px solid blue;position:absolute;left:100px;top:5px;height:100px;width:20px;">good</div>
</div>

2、relative的left,top是相对其前一个元素或者其父级元素而言的;
3、只有relative可以只用单个left,top来进行定位,其他fixed,absolute都必须使用(left,top)、(left,bottom)对来进行定位;
4、在ff和ie7以后的版本中都可以识别position:fixed,但在ie6中却不能识别,不过可以用expression来解决:

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>fixed scroll</title>
<style>
#f_box
{position:absolute;left:0;top:0;}
body > div#f_box
{position:fixed;left:0;top:0;}
</style>

<!--[if gte IE 5.5]>
    <![if lt IE 7]>
<style>
div#f_box{
/*必须先赋值给一个变量,否则没有效果*/
left:expression((a = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft)+'px');
top:expression((a = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop)+'px');
}
</style>
    <![endif]>
<![endif]
-->
</head>

<body>
<div id="f_box" style="background:red;width:20px;height:50px;">
the fixed box
</div>
<script>
for(var i=0;i<100;i++)
    document.write(
'some words<br>');
</script>
</body>