fixed,生成绝对定位的元素,相对于浏览器窗口进行定位。元素的位置是通过 “left”, “top”,或者”right” 以及 “bottom” 属性来进行定位,随网页的滚动,定位元素的位置不发生改变,即固定定位。看过了很多网站,fixed不外乎就几种运用,包括以下三种:

一、顶部运用:新浪顶部导航

<style>
body{
_background-color:url(about:blank);
_background-attachment:fixed; /**ie6,防止fixed上下抖动**/
}

#fixed{
position:fixed;
right:10px;
top:0;
_position:absolute;
_top:expression(document.documentElement.scrollTop-this.offsetHeight*0); /**对于ie6,this.offsetHeight为必须的,但是导航又需在顶端,所以乘以零,即在ie6下,fixed元素的top值即为滚动条滚动的距离**/
}
</style>

<div class="nav" id="fixed">
<a href="#">导航</a>
</div>

二、侧边运用:新浪微博 和 迅雷看看 —-返回顶部

说到侧边运用,这是现在网站最普遍的运用。侧边运用从fixed元素所在的位置又分为两种,一种是相对于浏览器窗口定位,在用户缩放浏览器时,fixed元素始终在浏览器的右下角(也可能右上,右中等),比如迅雷看看的返回顶部。另外一种是相对于内容主体定位的,在用户缩放浏览器时,fixed元素始终在内容主体的右下角(也可能右上,右中等),比如新浪微博右侧的返回顶部。

先来说迅雷看看的返回顶部:

<style>
body{
_background-color:url(about:blank);
_background-attachment:fixed; /**ie6,防止fixed上下抖动**/
}

#fixed{
position:fixed;
right:10px; /**距离浏览器右边10px**/
top:0;
_position:absolute;
_top:expression(document.documentElement.clientHeight+document.documentElement.scrollTop-this.offsetHeight)); /**对于ie6,this.offsetHeight为必须的属性**/
}
</style>

<div id="fixed">
<a href="#">返回顶部</a>
</div>

再来说说新浪微博的返回顶部:

起初开始想下,好像此效果无法实现, 因为fixed是相对于于浏览器定位的,但是现在浏览器的宽度又是不统一的。所以无法给fixed一个固定的right数值,怎么办??? 这个时候就需要我们换位思考:因为主体内容(假设id为container)的宽度是固定的(假设为1000px),如果给fixed一个left:50%,再给它一个marin-left:500px。呵!这样试了下,果真靠谱。O(∩_∩)O~

<style>
body{
_background-color:url(about:blank);
_background-attachment:fixed;
/**ie6,防止fixed上下抖动**/
}

#container{width:1000px;}

#fixed{
position:fixed;
left:50%;
margin-left:500px; /**紧挨着主体内容**/
top:10px;
_position:absolute;
_top:expression(document.documentElement.clientHeight+document.documentElement.scrollTop-this.offsetHeight);
}
</style>

<div id="container"></div>
...
<div id="fixed">
<a href="#">返回顶部</a>
</div>

三、背景运用:新浪微博—-固定背景

body{
background:url(../images/qz.jpg) fixed left top repeat;
}