1. 程式人生 > >布局模型 之 層模型(position的relative、absolute與fixed區別?)

布局模型 之 層模型(position的relative、absolute與fixed區別?)

absolute fixed relative


css的布局模型分為流動模型(Flow)、浮動模型(Float)、層模型(Layer)。


浮動模型(Float)和層模型(Layer)有什麽顯著區別?

浮動模型(Float):浮動是讓某元素脫離文檔流的限制,在浮動框之前和之後的非定位元素會當它不存在一樣,可能沿著它的另一側垂直流動;浮動的元素仍然會占據文檔流的物理空間。關於浮動模型的詳細說明請看另一篇文章的介紹。http://ycgit.blog.51cto.com/8590215/1958452


層模型(Layer):設置為層模型的元素已從文檔流刪除,在文檔流上層一層層覆蓋,寫在後面的層模型元素會覆蓋前面層模型元素,層模型元素的定位與文檔流無關,只基於帶有定位屬性(

relativeabsolute)的元素或視窗;


position的relative、absolute與fixed區別?

這三個定位屬性是屬於層模型的三種體現形式,另外任何元素都可以定位,不過絕對定位或固定定位元素會生成一個塊級框(有塊級元素特性,但不占整行),而不論該元素本身是什麽類型。

使用區別

relative 相對定位,以自己當前處於文檔流的位置為基準設置偏移量,所以自身在文檔流會保持占有固定的物理空間,並且物理空間的位置只受文檔流的影響,而不受自身設置偏移量(top/left這些)影響,註意自身設置了margin這類非定位屬性也一樣改變其在文檔流的物理位置。

absolute 絕對定位,是相對於設置了position為relative或者absolute最近的父級元素定位(body、html標簽也需要定位屬性才能作為定位父級),如果沒有就是基於視窗定位,不占文檔流的物理空間。

fixed 固定定位,是相對於瀏覽器視窗的,不占文檔流的物理空間。


布局模型 之 層模型(position的relative、absolute與fixed區別?)