利用CSS定位背景圖片

 又如:

html/css教程:背景圖片的定位問題詳解_中國教程網

這些小圖片就是整圖分割後的各個部分,把各個部分放在一張圖片上,而不是是分別存儲成單獨的圖片,其目的我們都知道,就是減少http請求次數,節省時間和帶寬

那麼怎麼來實現一張圖片在不同的地方只顯示其中的一部分呢,這就用到了我們今天要說的背景圖片的定位問題。這個問題相信很多人都鬱悶過,也經常有朋友問我,所以今天就係統的說一下:

我們知道在用圖片作爲背景的時候,css要這樣寫以div容器舉例子,也可以是body、td、p等的背景,道理一樣。

代碼:

div{ background:#FFF url(p_w_picpath) no-repeat fixed x y;}

這裏的background的屬性值依次爲:

#FFF 背景色:(顏色值,背景圖片沒有覆蓋的地方,或者沒有背景圖片時表現的背景色)
p_w_picpath 背景圖片:(這裏是圖片的地址)
no-repeat 是否重複:(圖片小於容器的大小時,默認會重複排列圖片以填滿容器,no-repeat表示不重複,只有這個時候後面的定位座標纔有用。)
fixed 背景是否隨容器滾動:(有兩個可選值,scroll滾動,fixed不滾動,默認是scroll)
x y 背景圖像的定位:(注意,只有在no-repeat下定位纔有意義。這個就是今天要講的重點)

背景圖像定位中我們要明確的幾點:

1、兩個值前面一個是橫向的定位,我們稱爲x軸方向定位。後面一個值是縱向的定位,我們稱爲y軸方向定位。如果只有一個值,那默認的就是x軸方向,這時y軸方向就默認的是上下居中對齊,也就是center。
2、座標軸的原點就是對應容器的左頂點
3、這個座標的y軸箭頭朝下,也就是右下方(容器內部)x y的值才都爲正。
4、x y值分別表示背景圖片的左頂點相對於座標原點(也就是容器的左頂點)的值。
5、x y的值可以用百分比或者px來表示。
6、x y也可以用“left、right、top、bottom、center”這五個對齊方式來表示,但注意:用“left、right、top、bottom、center”來表示的時候,應用的是對齊規則,而不是座標規則。x爲left是表示圖片的左邊和容器的左邊對齊,爲right的時候表示圖片的右邊和容器的右邊對其,y爲top的時候表示圖片的頂部和容器的頂部對齊,爲bottom時表示圖片的底部和容器的底部對齊,x y等於center的時候表示居中對齊。
7、x y用百分比或者px表示的時候,其值可以爲負數。我們應用座標規則就很容易理解負數表示的意義,x爲負數時候表示圖片左頂點在容器左頂點的左側,y爲負數時表示圖片的左頂點在容器的左定點的上方。也就是向左和向上超出容器的範圍。

下面我用幾個圖示來說明一下幾種情況,藍色塊表示圖片,虛線框表示容器(可以div,td,或者直接就是body),注意只有背景圖片在容器內我們才能看見,我用白色表示可見部分,而且超出容器範圍的是看不見的,我用灰色表示。容器的左定點的座標就是(0,0)。

html/css教程:背景圖片的定位問題詳解_中國教程網
第一張,背景圖片和容的左上對齊,0px 0px 也可以寫成left top

html/css教程:背景圖片的定位問題詳解_中國教程網
第二張,背景圖在容器中間,定點座標爲正值

html/css教程:背景圖片的定位問題詳解_中國教程網
第三張,背景圖部分在容器左上,定點座標爲負值

--------------------------------------------------------------------------- 

到此我們可能就明白瞭如何用background裏的定位值來準確定位一個背景圖片,返回去我們看一下開始的時候介紹的兩個圖片,我們就是可以用:背景定位和容器內纔可見這兩個性質來隨意的調用整張圖片的某一部分。

但是我們爲了調用方便,在排列這些小圖片的時候要講究一點規則,比如:小圖之間的距離通常是調用小圖的容器的大小,或者距離更大一點,這樣就可以避免在容器內顯示出我們不願意顯示的圖片!

補充一點,如果定位用的是百分比話,算法比較特殊。我舉個例子:

 

代碼:

background:#FFF url(p_w_picpath) no-repeat fixed 50% -30%;

 

這個時候圖片應該在容器的什麼位置呢,算法公式如下:

圖片左頂點距容器左頂點的座標位置爲 
x:(容器的寬度-圖片的寬度)x50% 
y:(容器的高度-圖片的高度)x(-30%) 
得到的結果應用座標法則,差值如果爲負數,百分比爲正那麼運算結果是負值。如果差值爲負數,百分比也爲負數,那麼運算結果就是正數。總而言之就是這裏的運算符合運算法則。把運算的結果帶入座標法則就能得到圖片的位置。 

比如:容器是width:600px;height:600px;而圖片是width:200px;height:200px; 
我們用上面的樣式,可以得到圖片位置爲: 
x:(600px-200px)*50% 
y:(600px-200px)*(-30%) 
如下圖:

html/css教程:背景圖片的定位問題詳解_中國教程網

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章