CSS - 定位屬性position使用詳解(static、relative、fixed、absolute)

全棧弄潮兒發表於2018-08-16

position 屬性介紹

(1)position 屬性自 CSS2 起就有了,該屬性規定元素的定位型別。所有主流瀏覽器都支援 position 屬性。

(2)position 的可選值有四個:static、relative、absolute、fixed。下面分別進行介紹。(其實還有個 inherit,不過這個是 IE 特有的,這裡就不做討論)

position: static(預設值)

1,基本介紹 (1)static 是預設值。表示沒有定位,或者說不算具有定位屬性。 (2)如果元素 position 屬性值為 static(或者未設 position 屬性),該元素出現在正常的流中(忽略 top, bottom, left, right 或者 z-index 宣告)。

2,使用樣例

css:

<style>
  div {
    width: 200px;
    height: 100px;
    background-color: #C9FFFF;
  }
</style>
複製程式碼

html:

<div></div>
<input type="text"/>
複製程式碼

我們不設定元素的 postion 屬性值,那麼預設的顯示效果如下:

position: relative(相對定位)

1,基本介紹

(1)relative 生成相對定位的元素,相對於其正常位置進行定位。 (2)相對定位完成的過程如下:

首先按預設方式(static)生成一個元素(並且元素像層一樣浮動了起來)。
然後相對於以前的位置移動,移動的方向和幅度由 left、right、top、bottom 屬性確定,偏移前的位置保留不動。
複製程式碼

2,樣例程式碼

下面程式碼將文字輸入框 position 設定為 relative(相對定位),並且相對於預設的位置向右、向上分別移動 15 個畫素。

css:

  div {
    width: 200px;
    height: 100px;
    background-color: #C9FFFF;
  }
   
  input {
    position: relative;
    left: 15px;
    top: -15px;
  }
複製程式碼

html:

<div></div>
<input type="text" />
複製程式碼

執行效果如下:

詳情見我的部落格: alex-0407.github.io/blog/2018/0…

1,基本介紹

(1)absolute 生成絕對定位的元素。 (2)絕對定位的元素使用 left、right、top、bottom 屬性相對於其最接近的一個具有定位屬性的父元素進行絕對定位。 (3)如果不存在這樣的父元素,則相對於 body 元素,即相對於瀏覽器視窗。

2,樣例程式碼

下面程式碼讓標題元素相對於它的父容器做絕對定位(注意父容器 position 要設定為 relative)。
同時通過 top 屬性讓標題元素上移,使其覆蓋在父容器的上邊框。
最後通過 left 和 margin-left 配合實現這個絕對定位元素的水平居中。
複製程式碼

css:

  #box {
    width: 200px;
    height: 100px;
    -webkit-box-flex:1;
    border: 1px solid #28AE65;
    border-radius:6px;
    padding: 20px;
    position: relative;
    font-size: 12px;
  }
 
  #title {
    background: #FFFFFF;
    color: #28AE65;
    font-size: 15px;
    text-align: center;
    width: 70px;
    height: 20px;
    line-height: 20px;
    position: absolute;
    top: -10px;
    left: 50%;
    margin-left: -35px;
  }
複製程式碼

html:

<div id="box">
 <div id="title">標題</div>
 歡迎訪問我的部落格
</div>
複製程式碼

執行效果如下,標題元素雖然是在邊框容器的內部。但由於其使用絕對定位,並做位置調整,最後顯示效果就是覆蓋在父容器邊框上。

詳情見我的部落格: alex-0407.github.io/blog/2018/0…

1,基本介紹 (1)fixed 生成絕對定位的元素,該元素相對於瀏覽器視窗進行定位。 (2)固定定位的元素不會隨瀏覽器視窗的滾動條滾動而變化,也不會受文件流動影響,而是始終位於瀏覽器視窗內檢視的某個位置。

2,樣例程式碼 (1)下面程式碼讓輸入框位於瀏覽器視窗的底部。

css:

  input {
    position: fixed;
    bottom: 10px;
  }
複製程式碼

html:

<ol>
 <li>資料</li><li>資料</li><li>資料</li><li>資料</li><li>資料</li><li>資料</li>
 <li>資料</li><li>資料</li><li>資料</li><li>資料</li><li>資料</li><li>資料</li>
 <li>資料</li><li>資料</li><li>資料</li><li>資料</li><li>資料</li><li>資料</li>
 <li>資料</li><li>資料</li><li>資料</li><li>資料</li><li>資料</li><li>資料</li>
</ol>
<input type="text" />
複製程式碼

(2)可以看到不管滾動條如何滾動,輸入框始終處於視窗的最下方。

詳情見我的部落格: alex-0407.github.io/blog/2018/0…


更多angular1/2/4/5、ionic1/2/3/4、react、vue、微信小程式、nodejs等技術文章、視訊教程和開源專案,請掃一掃下面的二維碼關注微信公眾號——全棧弄潮兒

微信公眾號.png


福利專區:掃碼關注,免費領取淘寶天貓內部優惠券

淘寶天貓內部優惠券.png

相關文章