fixed,生成绝对定位的元素,相对于浏览器窗口进行定位。元素的位置是通过 “left”, “top”,或者”right” 以及 “bottom” 属性来进行定位,随网页的滚动,定位元素的位置不发生改变,即固定定位。看过了很多网站,fixed不外乎就几种运用,包括以下三种:
一、顶部运用:新浪顶部导航
<style> body{ _background-color:url(about:blank); _background-attachment:fixed; }
#fixed{ position:fixed; right:10px; top:0; _position:absolute; _top:expression(document.documentElement.scrollTop-this.offsetHeight*0); } </style>
<div class="nav" id="fixed"> <a href="#">导航</a> </div>
|
二、侧边运用:新浪微博 和 迅雷看看 —-返回顶部
说到侧边运用,这是现在网站最普遍的运用。侧边运用从fixed元素所在的位置又分为两种,一种是相对于浏览器窗口定位,在用户缩放浏览器时,fixed元素始终在浏览器的右下角(也可能右上,右中等),比如迅雷看看的返回顶部。另外一种是相对于内容主体定位的,在用户缩放浏览器时,fixed元素始终在内容主体的右下角(也可能右上,右中等),比如新浪微博右侧的返回顶部。
先来说迅雷看看的返回顶部:
<style> body{ _background-color:url(about:blank); _background-attachment:fixed; }
#fixed{ position:fixed; right:10px; top:0; _position:absolute; _top:expression(document.documentElement.clientHeight+document.documentElement.scrollTop-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; }
#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; }
|