HTML中的幾種定位方式
1,static(預設)
當你沒有為一個元素(例如div)指定定位方式時,預設為static,也就是按照文件的流式(flow)定位,將元素放到一個合適的地方。所以在不同的解析度下,採用流式定位能很好的自適合,取得相對較好的佈局效果。
一般來說,我們不需要指明當前元素的定位方式是static——因為這是預設的定位方式。除非你想覆蓋從父元素繼承來的定位系統。
2,relative(相對定位)
在static的基礎上,如果我想讓一個元素在他本來的位置做一些調整(位移),我們可以將該元素定位設定為relative,同時指定相對位移(利用top,bottom,left,right)。
有一點需要注意的是,相對定位的元素仍然在文件流中
3,absolute(絕對定位)
如果你想在一個文件(Document)中將一個元素放至指定位置,你可以使用absolute來定位,將該元素的position設定為absolute,同時使用top,bottom,left,right來定位。
絕對定位會使元素從文件流中被刪除,結果就是該元素原本佔據的空間被其它元素所填充。
4,mix relative and absolute(混合相對定位和絕對定位)
如果對一個父元素設定relative,而對它的一個子元素設定absolute,如:
1 2 3 4 |
|
則子元素的絕對定位的參照物為父元素。
利用混合定位,我們可以用類似下面的css來實現兩列(Two Column)定位
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
5, fixed(固定定位)
我們知道absolute定位的參照物是“上一個定位過的父元素(static不算)”,那麼如果我想讓一個元素定位的參照物總是整個文件(viewport),怎麼辦呢?
答案是使用fixed定位,fixed定位的參照物總是當前的文件。利用fixed定位,我們很容易讓一個div定位在瀏覽器文件的左上,右上等方位。比如你想新增一個資訊提示的div,並將該div固定在右上方,你可以使用以下css
1 |
|
6,float(浮動)
對於浮動,需要了解的是:
*浮動會將元素從文件流中刪除,他的空間會被其它元素補上。
*浮動的引數物是父元素,是在父元素這個容器中飄。
*為了清除浮動造成的對浮動元素之後元素的影響,我們在浮動元素之後加一個div,並將這個div的clear設定為both。
*如果兩個元素都設定了浮動,則兩個元素並不會重疊,第一個元素佔據一定空間,第二個元素緊跟其後。如果不想讓第二個元素緊跟其後,可以對第二個浮動的元素使用clear。
7,reference
Value | Description |
---|---|
static | Elements renders in order, as they appear in the document flow. This is default. |
absolute | The element is positioned relative to its first positioned (not static) ancestor element |
fixed | The element is positioned relative to the browser window |
relative | The element is positioned relative to its normal position, so "left:20" adds 20 pixels to the element's LEFT position |
inherit | The value of the position property is inherited from the parent element |