首頁 >web前端 >css教學 >css background-position屬性的用法

css background-position屬性的用法

黄舟
黄舟原創
2017-06-21 14:55:382083瀏覽

請教下background-position: left -29px; 這是啥意思呢? ?一看我感覺是往左移-29個像素,但我測試了下又不是。請教高手

是用來定位圖片的位置的。
最主要使用在 一張png 上有多個logo 或 ico  這個時候就用到background-position了
background-position:x  y   x等於平行軸   y等於垂直軸。
x y的取值可以是正數,也可以是負數

div可以理解成一個矩形框,它的左上角是頂點,背景圖片的頂點也是左上角,div載入背景圖時,會把兩個頂點重合,頂點的座標是(0,0)。不理解的看圖,很簡單的。 。 。

css background-position屬性的用法

       +1的小圖片混雜在大圖中,想提取出來,需要用background-position屬性,這個屬性相當於大圖片不動,把div的頂點進行移動,移動到目標小圖的頂點位置,如下圖:

css background-position屬性的用法

 這樣一來,div中顯示的就是小圖了,但是,顯示的還不僅僅是小圖,而是圖中陰影部分,怎麼辦呢?設定一下div的寬、高,讓它跟小圖的寬、高一樣就可以嗆了! !

       再來看看background-position屬性,它有兩個參數,分別是水平方向移動的像素、垂直方向移動的像素,都用負數表示。大圖不動,div移動,也只能是向右、向下移動,只要記住這兩個方向移動的像素都用負數表示就行了!

       因此,只要找到小圖相對於大圖左上角頂點的水平移動像素、垂直移動像素就可以了。小菜也不用什麼專業工具,用截圖就很方便,從大圖左上角頂點開始截,到小圖頂點那停下來,一看像素就差不多了,然後再調試調試,基本上就搞定。

       在本例中,A小圖的位移是:-25px -374px,A小圖尺寸是:24px 16px。因此,css樣式如下:

.btn{
    background:url(bg.png);
    background-repeat:no-repeat;
    background-position:-25px -374px;
    height:16px;
    width:24px;
}

效果如下:

css background-position屬性的用法

#   這樣就算是把小圖摳出來啦!簡單吧! !

        先解釋個問題,圖片上有+1,而我又在超鏈上寫了一個+1,這是因為很多時候文字內容不是寫在圖片上的,那樣彈性太差,文本就是文本,小菜為了給大家一個完整的演示,因此又寫了一個+1,接下來就處理它!

        先把+1置中,且居中分為水平居中和垂直居中,水平居中超連結,需要在div上設定#text-align:center;,這個屬性是對子節點而言的;垂直居中div中的超鏈接,只需要把a標籤的line-height屬性設成和div的高度一樣即可。樣式如下:

.btn{
    background:url(bg.png);
    background-repeat:no-repeat;
    background-position:-25px -374px;
    height:16px;
    width:24px;
    text-align:center;
}
.btn a{
    line-height:16px;
}

效果如下:

css background-position屬性的用法

這種技術有好處也有壞處,好處是因為圖片都放在一起,請求時只需請求一張圖片,減少了與伺服器的互動次數,還可以解決hover延遲載入的問題。壞處就是不好控制,擴展性不太好,以後有改動,可謂是牽一發而動全身,而且有時會因為螢幕解析度不同出現背景斷裂現象。

以上是css background-position屬性的用法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:css中的差別下一篇:css中的差別