CSS 相對定位
相對定位是一個非常容易掌握的概念。如果對一個元素進行相對定位,它將出現在它所在的位置上。然後,可以通過設定垂直或水平位置,讓這個元素“相對於”它的起點進行移動。
如果將 top 設定為 20px,那麼框將在原位置頂部下面 20 像素的地方。如果 left 設定為 30 像素,那麼會在元素左邊建立 30 像素的空間,也就是將元素向右移動。
| 代碼如下 |
複製代碼 |
#box_relative { position: relative; left: 30px; top: 20px; }
|
如下圖所示:
注意,在使用相對定位時,無論是否進行移動,元素仍然佔據原來的空間。因此,移動元素會導致它覆蓋其它框。
CSS 絕對位置
絕對位置使元素的位置與文檔流無關,因此不佔據空間。這一點與相對定位不同,相對定位實際上被看作普通流定位模型的一部分,因為元素的位置相對於它在普通流中的位置。
普通流中其它元素的布局就像絕對位置的元素不存在一樣:
| 代碼如下 |
複製代碼 |
#box_relative { position: absolute; left: 30px; top: 20px; }
|
如下圖所示:
絕對位置的元素的位置相對於最近的已定位祖先元素,如果元素沒有已定位的祖先元素,那麼它的位置相對於最初的包含塊。
通過這個demo可以快速地協助理解css的各種定位的問題.閑話不說,直接上代碼吧
| 代碼如下 |
複製代碼 |
<!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" /> <title>無標題文檔</title><style> body {margin: 30px; font-size:9pt;} .a, .b, .c, .d, .e { width: 100px; height: 100px; margin: 5 auto; color: #fff; background: #000; } .aa, .bb, .cc, .dd, .ee { top: 10px; left: 10px; width: 10px; height: 10px; overflow: hidden; background: #F90; } .b, .d, .e {position: relative;} .cc, .dd, .ee {position: absolute;} </style> </head> <body> <div class="a"> <div class="aa"></div> A:均不設定postion,一般嵌套關係 </div> <div class="b"> <div class="bb"></div> B:僅外div設定relative,一般嵌套關係 </div> <div class="c"> <div class="cc"></div> C:僅內div設定absolute,文檔中為嵌套關係,頁面中內div浮起[非float],相對於頁面定位,與外div無關。 </div> <div class="d" style="background:#ff0000"> <div class="dd" ></div> D:外div設定relative,內div設定absolute,內div浮起來並相對於外div定位 </div> <div class="d" style="background:#ff0000"> <div class="dd" style="position:relative"></div> D:外div設定relative,內div設定relative,內div浮起來並相對於外div定位 </div> <div class="e"> <div class="ee" style="left: -10px;"></div> E:這個是說明邊界問題。-10 != 反向10px間距 </div> </body> </html> |