absolute與float

  • 具有同樣的性質
  • 包裹性
  • 破壞性

absolute性質

  1. 可以脱離overflow的限制
  2. 無依賴的absolute定位
  • 無依賴的定義:
  • 不受relative限制的absolute定位,行為表現上是不使用top/right/bottom/left任何一個屬性或者使用auto作為值
  • 無依賴的表現
  • 脱離文檔流
  • 折翼天使
  • 去浮動
  • 位置跟隨
  • 利用margin準確定位
  • 無依賴的應用
  • 圖標圖片定位覆蓋
  • 下拉框定位
  • 居中邊緣定位
  • 文本圖標對齊與定位
  • 脱離文檔流z-index無依賴
  1. 如果只有一個絕對定位元素,那麼absolute元素就會覆蓋普通元素
  2. 如果有兩個絕對定位元素,那麼利用DOM文檔流後來居上的規則就可以解決
  3. 如果有多個絕對定位元素,那麼z-index:1 ,不過出現這種情況要考慮自己的代碼是否有優化的地方
  4. 如果給彈框類的絕對定位元素z-index>2,那麼必定冗餘,請優化!!!

absolute與left/top/bottom/right

  1. 相互替代
  • left/top/bottom/right 如果都存在的話,顯示的是拉伸效果
  1. 相互支持
  • 容器無需固定的高度和寬度值,內部元素也可以拉伸
  • 容器拉伸,內部元素支持百分比width/height值
  1. 相互合作
  • margin auto   - 居中效果
  1. 注意:
  • 通常情況下,元素百分比height要想起作用,需要父級容器的height值不是auto,但是在絕對定位下,即使父級容器的height值是auto,只要容器絕對定位拉伸形成,百分比的高度也是支持的

absolute與整體頁面佈局

  1. 無固定尺寸容器內的絕對定位元素拉伸
  2. 沒有寬度和高度聲明實現的全屏自適應效果
  3. 高度自適應的九宮格效果
  • 大致理解為有三層div,最外面就是list這一層,中間是list:before這一層,最裏面當然就是list:after這一層
  • 最外面一層負責隔離,加上relative,把各個層給分隔開。因為我們知道absolute沒把他們分開是會重疊在一起的,而且不加上relative會使得相對目前的窗口,你就只能看到一個大格子
  • 中間那層就是list相關
  • 最裏面就是用來擺弄裏面的文字,因為這裏的佈局在html都不怎麼重要,所以選擇了after和before方法