static : 預設值。如果沒有指定position屬性,支援position屬性的html對象都是預設為static,可以這麼理解:把html頁面看作一個文檔流,原始碼中各個標籤的先後位置就是它們所對應的對象的呈現次序,所有取值為static的對象都按照你所編寫的html標籤的順序依次呈現。
如所示,這是一個常見的指定了float:left;的橫嚮導航:
screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open(this.src);}" alt="" src="http://lh6.google.com/cutsin/RuUJqZ6TMOI/AAAAAAAABuo/v0kyBUwGxOk/s400/css_position_1.gif" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border=0>
relative: 相對定位。這個屬性值保持對象所在文檔流中的位置,也就是說它具有和static相同的呈現方式,它同樣佔有在文檔流中的固定位置,後面的對象不會侵佔或覆蓋;與static屬性值不同的是,設定了relative的對象,可以通過top, left, right, bottom屬性設定自己的新顯示位置,這4個屬性的取值是相對於文檔流的前一個對象的,你可以自由設定這4個屬性位移到新的位置而不對文檔流中的其他對象產生任何影響,原來的頁面呈現仍然會我行我素:
screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open(this.src);}" alt="" src="http://lh6.google.com/cutsin/RuUJqZ6TMPI/AAAAAAAABuw/OM-PVJXVubU/s400/css_position_2.gif" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border=0>
absolute: 絕對位置。和relative不同的是,這個屬性值會將當前對象拖出文檔流,後面的對象會佔有原來的位置,也就是說,當前對象的呈現是獨立顯示的,但是它的位置在指定top, left, right, bottom任一屬性之前仍是有繼承性的,這時的4個屬性的取值是相對於瀏覽器的,和文檔流無關了。如果把樣本中的B地區設定為absolute而不指定4個位置屬性,通過設定margin來改變它的相對位置,用這個方法可以解決前面提到的問題2。
screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open(this.src);}" alt="" src="http://lh6.google.com/cutsin/RuUJqZ6TMQI/AAAAAAAABu4/vIRRliN-coI/s400/css_position_3.gif" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border=0>