position属性可以让你让你随意控制一个特定元素在浏览器何处以及如何显示。比方说我们用position:fixed 让一个图片显示在浏览器的左上角.即使出现滚动条他依然可以在浏览器的左上角.posotion属性有4个取值.由于static为默认的方式。所以实际上可用的值只有3个 为了方便阅读~
以下统称为:固定(fixed)、相对(relative)、 绝对(absolute). 第1:固定定位(fixed) 固定定位可以让某一元素固定在屏幕的某个位置.其效果和背景的background-attachment:fixed属性相似!但是IE6以及更早的版本不支持.所以以下例子请在非IE6以下浏览器下浏览 例子: - <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
- <meta name="author" content="aslen" />
- <meta name="Copyright" content="www.gongchang.com" />
- <style>
- *{margin:0;padding:0}
- </style>
- </head>
- <body>
- <div style="position:fixed;height:50px;width:50px;background:#f00;left:50px;top:50px;"></div>
- <br />换行
- <br />换行
- <br />换行
- <br />换行
- <br />换行
- <br />换行
- <br />换行
- <br />换行
- <br />换行
- <br />换行
- <br />换行
- <br />换行
- <br />换行
- <br />换行
- <br />换行
- <br />换行
- <br />换行
- <br />换行
- <br />换行
- <br />换行
- <br />换行
- <br />换行
- <br />换行
- <br />换行
- <br />换行
- <br />换行
- <br />换行
- <br />换行
- <br />换行
- <br />换行
- <br />换行
- <br />换行
- <br />换行
- <br />换行
- <br />换行
- <br />换行
- <br />换行
- <br />换行
- <br />换行
- <br />换行
- <br />换行
- <br />换行
- <br />换行
- <br />换行
- <br />换行
- <br />换行
- <br />换行
- <br />换行
- <br />换行
- <br />换行
- <br />换行
- <br />换行
- </body>
- </html>
复制代码第2:相对定位(relative) 相对定位是依据设置定位属性的4个方向上的任意值来实现相对与其本来在文档中正常显示的位置的偏移; 当相对定位的元素偏移出其本来的文档流的位置:其他元素仍然认为那个位置为其的逻辑文档流区域.而不会去补上去,虽然我们感官上认为那里是没有东西的~ 例子: - <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <meta name="author" content="aslen" />
- <meta name="Copyright" content="www.gongchang.com" />
- <style type="text/css">
- *{padding:0;margin:0}
- </style>
- </head>
- <body>
- <div style="width:500px;background:#CC9900;height:30px">1</div>
- <div style="width:500px;background:#ff0000;height:30px;position:relative;left:10px;top:20px;">2</div>
- <div style="width:500px;background:#CC9900;height:30px">3</div>
- </body>
- </html>
复制代码其中第2个色块就是相对于其本来的文档流中的位置依据left:10px;top:20px;的定位属性值进行偏移. 其后面的第3个色块依然认为前面的空白(就是第3的原本的文档流的位置)为第3个色块的文档流区域 则不会自动填充上去. 当相对定位的父元素出现滚动条时,IE浏览器的特殊情况
例子: - <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <meta name="author" content="aslen" />
- <meta name="Copyright" content="www.gongchang.com" />
- <style type="text/css">
- *{padding:0;margin:0}
- </style>
- </head>
- <body>
- <div style="width:500px;height:150px;overflow:auto;">
- 我是正常文档流的文字
- <div style="width:300px;background:#ff0000;height:20px;position:relative;">我是相对定位,拉动滚动条 看我在那里</div>
- 我是正常文档流的文字<br />
- 我是正常文档流的文字<br />
- 我是正常文档流的文字<br />
- 我是正常文档流的文字<br />
- 我是正常文档流的文字<br />
- 我是正常文档流的文字<br />
- 我是正常文档流的文字<br />
- 我是正常文档流的文字<br />
- 我是正常文档流的文字<br />
- 我是正常文档流的文字<br />
- 我是正常文档流的文字<br />
- 我是正常文档流的文字<br />
- 我是正常文档流的文字<br />
- 我是正常文档流的文字<br />
- </div>
- </body>
- </html>
复制代码 当相对定位的父元素有滚动条的时候,该相对定位元素再IE的表现很诡异(其后面的元素依然认为那个位置为该元素的默认位置,而表现出相对定位的特性,但是拉动滚动条时,在FF下正常即相对定位的元素和文档一起滚动,但是在IE系列里面,相对定位的色块依然在原地不动,此时元素的特性有点像绝对定位)当相对定位同时拥有定位属性的4个方向的值和margin属性。相对定位的定位属性 top right bottom left和margin-top margin-right margin-bottom margin-left;各个方向上一至的时候其值会产生叠加效果,而按照方向执行叠加后的数值的偏移例子:- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <meta name="author" content="aslen" />
- <meta name="Copyright" content="www.gongchang.com" />
- <style type="text/css">
- *{padding:0;margin:0}
- </style>
- </head>
- <body>
- <div style="height:50px;background:#f00;position: relative;left:100px;margin-left:-100px;">
- </div>
- </body>
- </html>
复制代码 未完见回复 |