定位=定位模式+邊偏移css
定位模式:用於指定一個元素在文檔中的定位方式,經過position屬性設置。瀏覽器
屬性值 | 說明 |
---|---|
static | 靜態定位 |
relative | 相對定位 |
absolute | 絕對定位 |
fixed | 固定定位 |
邊偏移:決定了該元素的最終位置。佈局
邊偏移屬性 | 示例 | 描述 |
---|---|---|
top | top: 10px | 頂端偏移量,定義元素相對於其父元素上邊線的距離 |
bottom | bottom: 10px | 底部偏移量,定義元素相對於其父元素下邊線的距離 |
left | left: 10px | 左側偏移量,定義元素相對於其父元素左邊線的距離 |
right | right: 10px | 右側偏移量,定義元素相對於其父元素右邊線的距離 |
元素的默認定位方式,無定位的意思。3d
選擇器 { position: static; }
元素在移動位置的時候,是相對於它原來的位置來講的。code
選擇器 { position: relative; }
特色:blog
元素在移動位置的時候,是相對於它父級元素來講的。圖片
選擇器 { position: absolute; }
特色:文檔
絕對定位小技巧:絕對定位的盒子居中it
加了絕對定位的盒子不能經過margin: 0 auto設置水平居中,解決方案以下。io
元素固定於瀏覽器可視區的位置,能夠在瀏覽器頁面滾動時元素的位置不會改變。
選擇器 { position: fixed; }
特色:
固定定位小技巧:固定在版心右側位置
粘性定位能夠被認爲是相對定位和固定定位的混合。
選擇器 { position: sticky; top: 10px; }
特色:
「子絕父相」:子級是絕對定位的話,父級要用相對定位。
相對定位常常用來做爲絕對定位的父級。
一句話總結,由於父級須要佔有位置,所以是相對定位,子盒子不須要佔有位置,則是絕對定位。
注:若父級盒子不須要佔有位置,「子絕父絕」也會遇到。
定位模式 | 是否脫標 | 移動位置 | 是否經常使用 |
---|---|---|---|
static 靜態 | 否 | 不能使用邊偏移 | 不多 |
relative 相對 | 否 | 相對於自身位置移動 | 經常使用 |
absolute 絕對 | 是 | 帶有定位的父級盒子 | 經常使用 |
fixed 固定 | 是 | 瀏覽器可視區 | 經常使用 |
sticky 粘性 | 否 | 瀏覽器可視區 | 當前階段少 |
控制盒子的先後次序(z軸)。
選擇器 { z-index: 1; }
絕對定位、固定定位也和浮動相似。
浮動元素、絕對定位、固定定位的元素都不會觸發外邊距合併的問題。
一個完整的網頁,是標準流、浮動、定位一塊兒完成佈局的,每一個都有本身的專門用法。
標準流
可讓盒子上下排列或者左右排列,垂直的塊級盒子顯示就用標準流佈局。
浮動
可讓多個塊級元素一行顯示或者左右對齊盒子,多個塊級盒子水平顯示就用浮動佈局。
定位
定位最大的特色就是有層疊的概念,就是可讓多個盒子先後疊壓來顯示。若是元素自由在某個盒子內移動就用定位佈局。