CSS 各種定位(position)方式的區別

2021-09-18 02:19:59 字數 1822 閱讀 8443

position: relative/absolute/fixed/static/inheri

absolute :生成絕對定位的元素, 相對於最近一級的 定位不是 static 的父元素來進行定位。

fixed (老ie不支援)生成絕對定位的元素,通常相對於瀏覽器視窗或 frame 進行定位。

relative 生成相對定位的元素,相對於其在普通流中的位置進行定位。

static 預設值。沒有定位,元素出現在正常的流中

sticky 生成粘性定位的元素,容器的位置根據正常文件流計算得出

是position的預設值,元素框正常生成,也就是沒有定位時的正常顯示。

用法一:元素相對自身的原位置偏移某個距離,但是原本的空間依舊保留,表現為空白

用法二:把乙個元素設定為position: relative;可以使該元素的子元素相對該元素絕對定位。

元素從文件流刪除,並相對於包含塊定位。元素在原本的空間關閉。元素定位後生成乙個塊級框,不論它原來是行內元素還是塊級元素。

包含塊:最近的position值不是static的祖先元素(塊級或行內),一般會指定乙個元素作為絕對定位元素的包含塊,將其position設定為relative而且沒有偏移。

元素從文件流刪除,並相對於瀏覽器視窗定位,因此不隨文件滾動而移動。元素在原本的空間關閉。元素定位後生成乙個塊級框,不論它原來是行內元素還是塊級元素。與絕對定位的區別僅僅是包含塊不同。

包含塊:瀏覽器視窗。

在ff中的測試**:

relative

abso

fixstick

類似:元素都會從文件流刪除,但是依舊會影響布局;都會生成乙個塊級框,無論原來是不是塊級元素。

區別:float的包含塊是最近塊級祖先元素。

採用position定位之後必須採用偏移屬性定義偏移量,也就是相對包含塊的偏移。注意應用於position值不是static的元素。

有時也需要定義width和heigth,但是可能會和偏移屬性的定義衝突,因為四個偏移屬性實際上已經定義了元素的大小。此時,根據width和left屬性定義左右,根據top和height屬性定義上下。

文字水平居中:

text-align: center;

div水平垂直居中:

父級div設定為positon: relative,需要居中的div元素設定以下樣式:

解釋:設定元素為position: absolute使元素相對父級元素定位,然後以百分比形式設定相對父級元素的偏移量,設定為偏移50%並非是完全居中,還需要消除div本身的寬度和高度的影響,設定margin-left和margin-top為一半寬度和高度的負值,此時完全居中。

div水平居中:

margin: 0 auto;

如果還需要文字居中,設定

text-align: center;
乙個元素的大小固定,但是其內容放不下,就會導致溢位。overflow控制溢位部分的可見(visible)、不可見(hidden)、滾動可見(scroll)。

visibility:hidden和display:none的區別:visibility:hidden設定元素不可見,但是元素依舊會影響布局,只是元素部分呈現為空白;display:none元素不顯示並且從文件流中刪除,對文件布局沒有任何影響。

CSS 各種定位(position)方式的區別

static 靜態定位是position的預設值,元素框正常生成,也就是沒有定位時的正常顯示。relative 相對定位 用法一 元素相對自身的原位置偏移某個距離,但是原本的空間依舊保留,表現為空白。用法二 把乙個元素設定為position relative 可以使該元素的子元素相對該元素絕對定位。...

定位position各種屬性

定位 position static 預設值,設定座標無效 absolute 絕對定位 特徵 1 脫離文件流,不佔位置 2 預設參考html的00點 瀏覽器零點 3 如果有父級,且父級有定位,那就參考父級元素 預設定位除外 相當於給子元素指定了參考物 座標位置 水平 left right 垂直top...

CSS 定位position屬性

div h1 或 p 元素常常被稱為塊級元素。這意味著這些元素顯示為一塊內容,即 塊框 與之相反,span 和 strong 等元素稱為 行內元素 這是因為它們的內容顯示在行中,即 行內框 您可以使用 display 屬性改變生成的框的型別。將 display 屬性設定為 block,可以讓行內元素...