css 布局之定位

2022-08-28 19:42:10 字數 1741 閱讀 7187

往往在網頁布局中會出現覆蓋,這時我們需要使用定位技術了。什麼是定位,通俗來說就是你想讓元素在哪個位置。

css定位的基本思想很簡單,它允許定義元素框相對於其正常位置應該出現的位置,或者相對于父元素、另乙個元素

甚至瀏覽器視窗本身的位置。

相對定位(position:relative)-元素依然是佔位的

使用相對定位的盒子的位置常以標準流的排版方式為基礎,然後使盒子相對於它在原本的標準位置偏移指定的距離。

相對定位的盒子仍在標準流中,它後面的盒子仍以標準流方式對待它。使用relative,即相對定位,除了將position屬性

設定為relative之外,還需要指定一定的偏移量,水平方向通過left或者right屬性來指定,豎直方向通過top和bottom來指定。

box-1

box-2

現在我們可以得到這樣的結論,使用相對定位的盒子,會相對於它原本的位置,通過偏移指定的距離,到達新的位置。

而該相對定位的盒子則仍然位於標準流中,它對父塊沒有任何影響,對兄弟盒子也沒有任何影響。 

注意:上面是針對標準流方式進行的,實際上,對浮動的盒子使用相對定位也是一樣的,都會相對於原有的位置進行指定

的偏移並到達新的位置,而這一偏移並不會對其後面的兄弟元素帶來任何的影響。

絕對定位(position:absolute)-元素不佔位,盒子寬度變為自適應

使用絕對定位的盒子以它的「最近」的乙個「已經定位」的「祖先元素」為基準進行偏移。如果沒有已經定位的祖先元素,

那麼會以瀏覽器視窗為基準進行定位。再有,絕對定位的框從標準流中脫離,這意味著它們對其後的兄弟盒子的定位沒有任何影響,

其他的盒子就好像這個盒子不存在一樣。如果設定了絕對定位,而沒有設定偏移屬性,那麼它仍然保持原有的位置。

#block2

上面block2沒有已經定位的祖先元素,是以瀏覽器視窗為基準進行定位。

#father

給父級增加乙個定位樣式,block2就會以父級為參照進行偏移。

外面的盒子沒有設定position屬性,內部的盒子設定了絕對定位,但是只在垂直方向指定了偏移量,沒有指定水平方向的偏移量,

此時內部的盒子則因為設定了絕對定位屬性,而外層div沒有position屬性,所以的它的定位基準是瀏覽器視窗。但是又由於在水平方向

上沒有設定偏移屬性,因此在水平方向它仍然會保持原來應該在的位置,它的左側與外層盒子的左側對齊。因為在垂直方向上設定了

「top:70px」,所以距離瀏覽器視窗頂部為70畫素。

固定定位(position:fixed)-元素不佔位的,寬度變為自適應

為元素指定相對於視窗的確切位置 。即使文件的其它元素出現滾動,元素位置仍然不變。它與絕對定位有些類似,區別主要在於

定位的基準不是祖先,而是瀏覽器視窗或其它顯示裝置視窗。也就是當訪問者拖動瀏覽器的視窗滾動條時,固定定位的元素相對於瀏

覽器視窗的位置保持不變。

z-index空間位置(設定定位元素的層疊關係,只對定元素生效位) 

z-index屬性用於調整定位時重疊塊的上下位置,與它的名稱一樣,想象頁面為x-y軸,垂直於頁面的方向為z軸,z-index值大

的頁面位於其小的上方。z-index屬性的值為整數,可以是正數也可以是負數。當塊被設定了position屬性時,該值便可以設定各塊之

間的重疊高低關係。預設的z-index值為0,當兩個塊的z-index值一樣時,將保持原有的高低覆蓋關係,z-index可以為負值。

CSS布局之定位

定位由定位模式和邊偏移組成 我們定位的盒子,是通過邊偏移來移動位置的。在 css 中,通過 top bottom left 和 right 屬性定義元素的邊偏移 方位名詞 邊偏移屬性 示例描述 toptop 80px 頂端偏移量,定義元素相對於其父元素上邊線的距離。bottom bottom 80p...

CSS定位布局

絕對定位 如果想為元素設定層模型中的絕對定位,需要設定position absolute 表示絕對定位 這條語句的作用將元素從文件流中拖出來,然後使用left right top bottom屬性相對於其最接近的乙個具有定位屬性的父包含塊進行絕對定位。如果不存在這樣的包含塊,則相對於body元素,即...

css布局 定位

1 為什麼需要定位?某個元素可以自由的在乙個盒子內移動位置,並且壓住其他盒子 滾動視窗時,盒子固定在某個位置 2 應用 下拉列表 模態框 web應用程式的一些基本效果 3 本質 將元素徹底從文件流中移走。允許將元素放在螢幕的任意位 置,還可以將乙個元素放到另乙個元素的前面或者後面,彼此重疊。按照定位...