1. 程式人生 > >CSS的相對定位與絕對定位

CSS的相對定位與絕對定位

       在CSS中,所謂絕對定位指的是“相對於”已經定位的祖先元素,如果不存在已經定位的祖先元素,那麼就“相對於”最初的包含快(一般情況下為body);相對定位指的是相對於元素初始位置進行定位。

      下面來講述兩者的區別:

          (1)相對定位

      相對定位比較簡單,如果在某個元素中設定了position屬性為relative,那麼該元素會相對於初始位置進行定位,詳情如下圖所示:

         

        相對定位不會脫離文件流(文件流表示針對窗體而言,自上而下分為多行,從而依左至右排放元素),即當第二個盒子按照left:30px;top:40px;的設定相對移動之後,原來的位置其實是保持不變,第三個盒子不會佔用第二個盒子的原始位置。

        (2)絕對定位

   絕對定位相對於上述情況,則相較於複雜一點。絕對定位需要找到設定絕對定位的元素的祖先元素,它會根據離其最近的祖先元素進行定位。詳情見下圖所示:

         根據上圖可以明顯的看出,當第二個盒子設定為絕對定位之後,該盒子脫離文件流,並且它的原始位置已經被第三個盒子所替代。接著第二個盒子開始查詢它的“參照物”,由於白色盒子的postion屬性為預設值,於是向上層級查詢,橘色盒子position:absolute,在絕對定位中,符合祖先元素的條件(定位設定為非static),因此第二個盒子會以橘色盒子為參照物進行向左和向下移動。