簡明CSS屬性:定位


/* 極盡淺顯 前輩請忽略*/

第一話 定位 (Positioning)

  關鍵詞:position/z-index/top/bottom/right/left/clip

POSITION

  • 該屬性用來決定元素在頁面上的位置。
  • 用法:position:static(默認) | fixed | relative | absolute

static

  • 遵守正常的文檔流,不設置top,bottom,left,right值。

fixed

  • 脫離正常的文檔流,完全以瀏覽器窗口為參照物,不隨鼠標的滾動而滾動。設定tblr值。

relative

  1. 相對於什么呢?是相對於該元素原本在文檔流中的位置進行偏移。

    也就是說,如果按文檔流其本來應該在A處,設置了relative屬性和left=10px;

     則最后的位置為:A向偏移10px。

  2. 當然這個元素的大小是不會改變的,因此會導致覆蓋其他框。

  應用:取相對定位值的元素通常作為絕對定位值元素的父級容器。

absolute

  1. 為何稱絕對呢?因為該元素要定位,就“絕對”要從里到外一層層容器找,找設定了position屬性的元素(默認值static不算)。
  2. 也就是說,如果X被設定為絕對定位,定位時那么就要看X的父級Y是不是設定了position(一般是relative,如前文所述),沒有?繼續看Y的父級Z是不是設定了position...若是實在沒有,就以html元素為基准定位咯。
  3. 元素脫離了正常文檔流。因此會導致覆蓋其他框。

  應用:通過僅僅設置絕對定位屬性,可以讓元素定位到網頁的任何部分。(當然以relative父級為基准也不錯啦)

 

好。position幾種值介紹完畢,上文中幾次提到了覆蓋一詞。

那么如何決定元素重疊時誰上誰下呢?這里就引入了 z-index 屬性。

Z-INDEX

  • 通過給各個元素的z-index賦數值,重疊時進行比較,大的在上,小的在下。
  • 用法:z-index:auto(默認) | 正/負值 |inherit
  • 用處:僅能用於定位元素(即設定了position屬性值)

auto

默認值,與其父級元素一致。

inherit

明確指出其必須從父級元素繼承。

 

注意:若是index值相同,則依它們在文檔流中出現的順序決定層疊順序,后來者上。

 

再就是top/bottom/left/right了。

top/bottom/left/right

  • 設置偏移量。
  • 用法:top: auto(默認) |值|百分比
  • 用處:僅限用於定位元素。

值直接用px等表示。百分比是相對父級容器來講的。

比如,定位元素X的left=50%, 假定其父級容器為Y(寬度為Y_width),則該偏移相當於,left=Y_width * 50%.

 

 clip

  • 用於裁剪元素(不限於圖像哦)。
  • 用法:clip : auto(默認) | rect ( top, right, bottom, left ) 
  • 用處:僅用於屬性position:absolute && overflow != visible的元素。

auto 不裁剪

rect里的四個參數是像素值。四個值都相對於圖像左上方的(0,0)點。

比如圖像原寬度為100px,rect里設定right=10px, 則裁剪過后,圖像的寬度為10px。右邊距左移了90px.

-----------------------------------------------------

定位 到此結束。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM