CSS基礎之定位

·        定位就是將盒子定在某個位置。定位=定位模式+邊偏移。所謂的定位模式,決定元素的定位方式。通過CSS的position屬性來設置,他的值可以分爲四種:靜態定位(static)、相對定位(relative)、絕對定位(absolute)和固定定位(fixed)。所謂的邊偏移即定位了盒子移動到最終的位置,有top、bottom、left和right四個屬性。分別具有以下含義:

邊偏移屬性 實例 描述
top top:50px; 頂端偏移量,定義元素相對於其父元素上邊線的距離
bottom bottom:50px; 底端偏移量,定義元素相對於其父元素下邊線的距離
left left:50px; 左側偏移量,定義元素相對於其父元素左邊線的距離
right right:50px; 右側偏移量,定義元素相對於其父元素右邊線的距離

     靜態定位

       靜態定位就是默認定位方式,無定位的意思。語法如下:

選擇器{position:static};

        靜態定位按照標準流特性擺放位置,沒有邊偏移。而且在設計過程中很少用到靜態定位。

     相對定位

        相對定位就是元素移動的時候,相對於原來的位置來說的(俗稱自戀型定位);語法如下;

選擇器{
    position:relative;
}

     

          其特點:

        1)是相對於自己原來的位置來移動的(移動的時候參照自己原來的位置

        2)原來在標準流的位置繼續佔有,後面的盒子仍然以標準流的方式對待他(不脫標,繼續保持原來的位置)。

     絕對定位

       絕對定位是元素在移動位置的時候,相對於祖先元素(有爹拼爹,沒有爹拼爺爺,沒有祖先則以瀏覽器爲準)來說的(俗稱拼爹型)。

      語法格式:

選擇器{
    position:absolute;
}

        絕對定位的特點:

        1)、如果沒有祖先元素或者祖先元素沒有定位,則以瀏覽器爲準定位(也就是document文檔)。

        2)、如果祖先元素沒有因爲(相對、絕對、固定),則以最近一級有定位祖先元素爲參考點移動位置

        3)、絕對定位不再佔有原先的位置。(脫標)

     關於子絕父相

        子絕父相(子級使用絕對定位,父級使用相對定位)。

         1)子級絕對定位,不會佔有位置,可以放到父盒子裏面任何一個位置,不會影響其他兄弟盒子

         2)父盒子需要定位限制子盒子在父盒子內顯示

         3)父盒子佈局是,需要佔有位置,因此父親只能是相對定位。

          相對定位經常用來作爲絕對定位的父級。因爲父級需要佔有位置,因此是相對定位,子盒子不需要佔有位置,則是絕對定位,當然子絕父相也不是絕對的,如果父元素不需要佔有位置,子絕父絕也會遇到的

    固定定位

      固定定位是元素固定在瀏覽器可視區域位置,主要應用場景是頁面滾動時元素的位置不會改變。語法如下:

選擇器{
    position:fixed;
}

定位的特點:(務必記住)
1.以瀏覽器的可視窗口爲參照點移動元素

     跟父元素沒有任何關係,不隨滾動條移動

2.固定定位不在佔有原先的位置
     固定定位也是脫標的,其實固定定位也可以看做是一種特殊的地絕對定位。

    固定定位的小技巧:固定在版心右側位置:

/*設置盒子的大小*/ 
.box {
      width: 800px;
      height: 1000px;
      background-color: #8bd3af;
      margin: auto;
  }

.circlefix {
/*設置固定定位*/
      position: fixed;
      left: 50%;/*設置定位的盒子走到瀏覽器可視區的一半位置*/
      margin-left: 400px;/*在設置margin-left多走版心寬度的一半*/
      top: 450px;
      width: 80px;
      height: 100px;
      background-color: #5e6662;
}

        效果如下:

     粘性定位

       可以認爲是相對定位和固定定位的混合:語法如下:

選擇器{
    position:sticky;
    top:10px;
}

粘性定位的特點
      1.以瀏覽器的可視窗口爲參照點移動元素(固定定位特點)
      2.粘性定位佔有原先的位置(相對定位特點)
      3.必須添加top、left、 right、 bottom其中一個纔有效

定位的總結

定位的總結
定位模式 是否脫標 移動位置 是否常用
static 不能使用邊偏移 很少
relative 否(佔有位置) 相對於自身位置移動 常用
absolute 是(不佔有位置) 帶有定位的父級 常用
fixed 是(不佔有位置) 瀏覽器可視區 常用
sticky 否(佔有位置) 瀏覽器可視區 當前階段使用
1.一定記佳住相對定位、固定定位絕對定位兩個大的特點:1).是否佔有位置(脫標否)2)以誰爲基準點移
動位置

2.學習定位重點學會子絕父相

定位拓展

      絕對定位的居中算法

left:50%;/*left走50%,父容器寬度的一半*/
margin-left:-自身寬度  /*margin 賦值,向左移動自身寬度的一半*/

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章