position 的注意點與使用場景

2021-08-29 02:21:43 字數 1283 閱讀 1436

position有四個屬性

1.static:預設。位置設定為 static 的元素,它始終會處於頁面流給予的位置(static 元素會忽略任何 top、bottom、left 或 right 宣告),相當於沒有定位,基本上用不到這個屬性。

2.relative:位置被設定為 relative 的元素,可將其移至相對於其原來位置的地方,原來的位置遺留空白區域。

3.absolute 位置設定為 absolute 的元素,可位置相對於最近的已定位父元素(一般與用),如果元素沒有已定位的父元素,那麼它的位置相對於window。已定位的元素會脫離文件流(相當於浮動),不佔據空間。

4.fixed 位置被設定為 fixed 的元素,可定位於相對於瀏覽器視窗的指定座標。對於瀏覽器的位置是固定的。

position定位的元素的位置可以用通過 「left」, 「top」, 「right」 以及 「bottom」 屬性進行規定。

但我們也可以用transform: translate()對其位置進行調整,兩者有何區別?

left right top bottom定位的使用:必須定義在position屬性的元素下使用

定位機制:相對于父元素的位置進行定位。

使用方式 left:20px 或者left:50%,前者是距離父元素20px,後者是距離父元素寬度50%的距離。

注意點: 一般left和right在乙個樣式是只能使用其一,不能left和right都設定,要麼使用left就不使用right,要麼使用right就不使用left,如果left和right均使用將會出現相容問題,乙個物件設定了靠左left多少距離,自然右邊距離自然就有了所以無需設定左邊,相同道理,top和bottom對乙個物件只能使用其一。

transform屬性應用於元素的2d或3d轉換,transform: translate()則是transform中的一種2d平面移動,無需在position屬性的元素下使用。

定位機制:相對於自己原來位置進行移動。

使用方式transform: translate(20px) 或者transform: translate(50%),前者是向左移動20px,後者是向左移動自己元素寬度的50%的距離。

注意點:多個transform屬性新增在同一元素時後宣告的會覆蓋前面的,而不是原來的基礎上再次移動。

div
結果是向右移動100px而不是回到原點。

再給多個不同位置的相同元素定位時 用left right top bottom定位會把所有元素重疊而transform則不會。

position :fixed 運用場景:

video

float與position的使用

源 在用div css做網頁的時候float是最常用的,相對於position比較好控制一點。float分為 float left float right float none 一般情況下只用前兩個。浮動從字面意思就知道他是把該層浮起來,在瀏覽器預設的情況下這個位置上是空的,所以在使用float布局...

MYSQL year型別的使用與注意點!

mysql的日期與時間型別 分為time date datetime timestamp year,主要總結下year的用法 1 型別支援 year 與 year 4 注意無year 2 的定義方式,否則報錯 err 1818 supports only year or year 4 column....

position與float屬性的使用

1 使用float時,可以說是用於布局,取值主要有left right none。就是將該塊的元素浮動起來,在瀏覽器預設的情況下,該元素的位置是為空的,即脫離了文件流而存在,如果有其他元素,那麼這些元素會將該元素在瀏覽器中本身的位置所佔據,進而將該空白部分填充。如果元素浮動了,那麼它會對其後面的元素...