教你玩轉CSS Position(定位)

CSS Position(定位)

position 屬性指定了元素的定位類型。css

position 屬性的五個值:web

  • static
  • relative
  • fixed
  • absolute
  • sticky

元素可使用的頂部,底部,左側和右側屬性定位。然而,這些屬性沒法工做,除非是先設定position屬性。他們也有不一樣的工做方式,這取決於定位方法。瀏覽器

1.static 定位

HTML 元素的默認值,即沒有定位,遵循正常的文檔流對象。ssh

靜態定位的元素不會受到 top, bottom, left, right影響。url

    div.static {
        position: static;
        border: 3px solid #73AD21;
    }

 

2.fixed 定位

元素的位置相對於瀏覽器窗口是固定位置。spa

即便窗口是滾動的它也不會移動:code

    p.pos_fixed {
        position:fixed;
        top:30px;
        right:5px;
    }

 

注意: Fixed 定位在 IE7 和 IE8 下須要描述 !DOCTYPE 才能支持。對象

Fixed定位使元素的位置與文檔流無關,所以不佔據空間。blog

Fixed定位的元素和其餘元素重疊。ip

3.relative 定位

相對定位元素的定位是相對其正常位置。

    h2.pos_left
    {
        position:relative;
        left:-20px;
    }
    h2.pos_right
    {
        position:relative;
        left:20px;
    }

 

移動相對定位元素,但它本來所佔的空間不會改變。

    h2.pos_top
    {
        position:relative;
        top:-50px;
    }

 

相對定位元素常常被用來做爲絕對定位元素的容器塊。

4.absolute 定位

絕對定位的元素的位置相對於最近的已定位父元素,若是元素沒有已定位的父元素,那麼它的位置相對於:

    h2 {
        position:absolute;
        left:100px;
        top:150px;
    }

absolute 定位使元素的位置與文檔流無關,所以不佔據空間。

absolute 定位的元素和其餘元素重疊。

5.sticky 定位

sticky 英文字面意思是粘,粘貼,因此能夠把它稱之爲粘性定位。

position: sticky; 基於用戶的滾動位置來定位。

粘性定位的元素是依賴於用戶的滾動,在 position:relative 與 position:fixed 定位之間切換。

它的行爲就像 position:relative; 而當頁面滾動超出目標區域時,它的表現就像 position:fixed;,它會固定在目標位置。

元素定位表現爲在跨越特定閾值前爲相對定位,以後爲固定定位。

這個特定閾值指的是 top, right, bottom 或 left 之一,換言之,指定 top, right, bottom 或 left 四個閾值其中之一,纔可以使粘性定位生效。不然其行爲與相對定位相同。

注意: Internet Explorer, Edge 15 及更早 IE 版本不支持 sticky 定位。 Safari 須要使用 -webkit- prefix (查看如下實例)。

    div.sticky {
        position: -webkit-sticky; /* Safari */
        position: sticky;
        top: 0;
        background-color: green;
        border: 2px solid #4CAF50;
    }

 

6.重疊的元素

元素的定位與文檔流無關,因此它們能夠覆蓋頁面上的其它元素

z-index屬性指定了一個元素的堆疊順序(哪一個元素應該放在前面,或後面)

一個元素能夠有正數或負數的堆疊順序:

    img {
        position:absolute;
        left:0px;
        top:0px;
        z-index:-1;
    }

 

具備更高堆疊順序的元素老是在較低的堆疊順序元素的前面。

注意: 若是兩個定位元素重疊,沒有指定z - index,最後定位在HTML代碼中的元素將被顯示在最前面。


 

全部的CSS定位屬性

屬性 說明 css
bottom

定義了定位元素下外邊距

邊界與其包含塊下邊界之間的偏移

autolength

%

inherit

2
 clip 剪輯一個絕對定位的元素

shape

autoinherit

2
 cursor 顯示光標移動到指定的類型

url

auto

crosshair

default

pointer

move

e-resize

ne-resize

nw-resize

n-resize

se-resize

sw-resize

s-resize

w-resize

text

wait

help

2
 left 定義了定位元素左外邊距邊界與其包含塊左邊界之間的偏移

auto

length

%

inherit

2
 overflow

設置當元素的內容溢出

其區域時發生的事情

auto

hidden

scroll

visible

inherit

2
overflow-y

指定如何處理頂部/底部

邊緣的內容溢出元素的內容區域

auto

hidden

scroll

visible

no-dispkay

no-content

2
 overflow-x

指定如何處理右邊/左邊

邊緣的內容溢出元素的內容區域

auto

hidden

scroll

visible

no-dispkay

no-content

2
 position 指定元素的定位類型

absolute

fixed

relative

static

inherit

2
 right

定義了定位元素右外邊距邊界

與其包含塊右邊界之間的偏移

auto

length

%

inherit

2
 top

 定義了一個定位元素的上外邊距

邊界與其包含塊上邊界之間的偏移

 

auto

length

%

inherit
 2
z-index

設置元素的堆疊順序

number

auto

 

2
相關文章
相關標籤/搜索