position幾種方式的分析

2021-10-10 16:37:43 字數 1398 閱讀 5032

css有三種基本的定位機制:普通流,浮動和絕對定位

一般的定位都是在普通流中定位,

粘性定位(sticky【css3】)

粘性定位布局是有一定的限制的:

a、須指定 top, right, bottom 或 left 四個閾值其中之一,才可使粘性定位生效。否則其行為與相對定位相同。

並且 top 和 bottom 同時設定時,top 生效的優先順序高,left 和 right 同時設定時,left 的優先順序高。

b、設定為 position:sticky 元素的任意父節點的 overflow 屬性必須是 visible,否則 position:sticky 不會生效。

這裡需要解釋一下:

a、如果 position:sticky 元素的任意父節點定位設定為 overflow:hidden,則父容器無法進行滾動,所position:sticky 元素也不會有滾動然後固定的情況。

b、如果 position:sticky 元素的任意父節點定位設定為 position:relative | absolute | fixed,則元素相對父元素進行定位,而不會相對 viewprot 定位。

c、達到設定的閥值。這個還算好理解,也就是設定了 position:sticky 的元素表現為 relative 還是 fixed 是根據元素是否達到設定了的閾值決定的。

靜態定位(static)

一般元素不加任何定位屬性都屬於靜態定位,在頁面最底層屬於標準流

相對定位(relative)

相對定位元素不可重疊,依據left,right,top,bottom等屬性在正常檔案流中偏移自身位置,同樣可以使用

z-index分層設計

絕對定位(absolute)

如果它的父元素設定了除static之外的所有定位元素,那麼它就會相對於它的父元素來定位,位置通過left , top ,right ,bottom屬性來規定,如果它的父元素沒有設定定位,那麼就得看它父元素的父元素是否有設定定位,如果還是沒有就繼續向更高層的祖先元素類推,總之它的定位就是相對於設定了除static定位之外的定位的第乙個祖先元素,如果所有的祖先元素都沒有以上三種定位中的其中一種定位,那麼它就會相對於文件body來定位(並非相對於瀏覽器視窗,相對於視窗定位的是fixed)。

固定定位(fixed)

固定定位和絕對定位類似,但它是相對於瀏覽器視窗定位,並且不會隨著滾動條進行滾動

被設定了絕對定位的元素,在文件流中是不佔據空間的,如果某元素設定了絕對定位,那麼它在文件流中的位置會被刪除,它浮了起來,其實設定了相對定位也會讓元素浮起來,但它們的不同點在於,相對定位不會刪除它本身在文件流中佔據的空間,其他元素不可以佔據該空間,而絕對定位則會刪除掉該元素在文件流中的位置,使其完全從文件流中抽了出來,其他元素可以佔據其空間,可以通過z-index來設定它們的堆疊順序

CSS 的幾種 position 定位

1 static 靜態定位,所有標準文件流中的元素預設值。該關鍵字指定元素使用正常的布局行為,即元素在文件常規流中當前的布局位置。此時 top right bottom left 屬性無效。2 relative 相對定位,上浮但不脫離標準文件流。該關鍵字指定元素會相對於自身標準文件流中的位置進行相應...

Vue幾種傳值方式的分析

在學習vue過程中自己總結了幾種元件間傳值的方式 步驟 定義路由時加上引數props true,在定義路由路徑時要留有引數佔位符 name 用法 to 路徑 value 在跳轉到的頁面加上引數props name 在跳轉到的頁面就獲取到了name 用法 js中直接this.name html中直接插...

position的8種定位方式

position定位的八種方式 1.staticpositon定位的預設值,沒有定位 2.relative 生成相對定位的元素,相對於其正常位置進行定位,一般在子元素設定absoute定位時,給父元素設定relative 元素的位置通過top right bottom left 控制,其值的定位起點...