1.定位體系的意義:
定位體系幫助作者使文件更易理解,並不需要使用標記的手段達到布局的效果。
格式化上下文決定了視覺化格式模型中框的形式,定位體系布局決定了這些框在頁面中如何布局。
2.分類:
視覺格式化模型規定,定位體系一共有三種:常規流(normal flow)、浮動(float)、絕對定位(absolute positioned)。
任何乙個元素,必須屬於其中一種定位體系。
3.常規流(normal flow):
是最常見的定位體系,所有元素預設狀態下都是常規流定位。
在這裡,我們把它當作可以流動的(位置可變),有先後順序(元素順序載入)的體系。
4.浮動(float):
相對於常規流來講,它漂浮在常規流的上方。因為它不再處於文件流中,所以它不佔據空間。
屬性值可以是:」none」、」left」、」right」。
1)盒子位置:
2)常規流盒子和浮動盒子混合擺放:
5、絕對定位(absolute positioning):
在絕對定位模型中,乙個框(box)整個地從常規流向中脫離(它對後續的兄弟元素沒有影響),並根據它的包含塊來分配其位置。
1)static
該框(box)是乙個常規框,布局根據常規流。'left' 、』right』、』bottom』和 'top'屬性不適用。
如果 『position』沒有設定,預設值也是』static』。這時,設定'left' 、』right』、』bottom』和 'top』,無效。
2)relative相對位置:
框的位置根據常規流計算(被稱為常規流中的位置)。然後框相對於它的常規位置而偏移。如果框 b 是相對定位的,其後框的定位計算並不考慮 b 的偏移。 table-row-group, table-header-group, table-footer-group, table-row, table-column-group, table-column, table-cell, 和 table-caption 元素的 『position:relative』 效果沒有被定義。
在使用相對定位時,無論是否進行移動,元素仍然佔據原來的空間。因此,移動元素會導致它覆蓋其它框。
示例:
結果:
3)absolute絕對位置:
元素框從文件流完全刪除,並相對於其包含塊定位。包含塊可能是文件中的另乙個元素或者是初始包含塊。元素原先在正常文件流中所佔的空間會關閉,就好像元素原來不存在一樣。
框的位置(可能還有它的尺寸)是由』left』,』right』,』top』和』bottom』特性決定。這些特性指定了框相對於它包含塊的偏移量。 絕對定位(」position: absolute」)元素的包含塊由離它最近的 『position』 屬性為 『absolute』、』relative』 或者 『fixed』 的祖先元素建立。絕對定位的元素的位置相對於最近的已定位祖先元素,如果元素沒有已定位的祖先元素,那麼它的位置相對於最初的包含塊。根據使用者的**不同,最初的包含快可能是畫布或html元素。(即元素會一層一層往上找有position屬性的父元素,並以他為相對位置調整(會影響下面盒子的位置),一般會在該盒子基礎上設父元素盒子,設定relative屬性,該盒子設absolute屬性,一起巢狀使用,才能佔位不影響其他盒子位置。且可能發生高度坍塌)
絕對定位的框從常規流向中脫離。這意味著它們對其後的兄弟元素的定位沒有影響。另外,儘管絕對定位框有外邊距(margin), 它們不會和其它任何外邊距發生摺疊(collapsing margins)。
因為絕對定位的框與文件流無關,所以它們可以覆蓋頁面上的其它元素。可以通過設定 z-index 屬性來控制這些框的堆放次序。
示例:
4)fixed固定位置:
主要用於小廣告和導航欄,定在乙個固定位置,相對於 viewport 固定,滾動時不移動。
跟絕對定位一樣,fixed定位元素的margin不會和任何其他 margin發生margin摺疊。
定位體系(定位機制)
1 定位體系的意義 2 定位體系的分類 3 常規流 normal flow 4 浮動 floats 5 絕對定位 absolute positioning 6 選擇定位方案 css2.1中,乙個框 box,就是元素形成的方塊等 可以根據三種定位體系布局。css2.1中的定位體系幫助作者使他們的文件更...
css定位體系
相對位置 是指盒子在原本定位體系 常規流 下的位置,將盒子的position屬性設為relative,啟動相對位置 特點 1.依然占用原來的尺寸 2.不會影響其他的元素位置 固定位置 將盒子的position屬性設為fixed,啟動固定位置 特點 1.起始點在視口的左上角 2.脫離文件流 不佔位置 ...
前端基礎 定位
1.絕對定位 如果所有的父元素都沒有顯式地定義position屬性,那麼所有的父元素預設情況下position屬性都是static。結果,絕對定位元素會被包含在初始塊容器中。這個初始塊容器有著和瀏覽器視口一樣的尺寸,並且元素也被包含在這個容器裡面。簡單來說,絕對定位元素會被放在元素的外面,並且根據瀏...