CSS中背景圖片定位

CSS中背景圖片的定位,困擾我很久了。今天總算搞懂了,一定要記下來。

在CSS中,背景圖片的定位方法有3種:

  1)關鍵字:background-position: top left;

  2)像素:background-position: 0px 0px;

  3)百分比:background-position: 0% 0%;

上面這三句語句,都將圖片定位在背景的左上角,表面上看效果是一樣的,實際上第三種定位機制與前兩種完全不同。

前兩種定位,都是將背景圖片左上角的原點,放置在規定的位置。請看下面這張圖,規定的位置是"20px 10px"和"60px 50px",都是圖片的原點在那個位置上,圖中用X表示。

bg2008050701.png

但是第三種定位,也就是百分比定位,不是這樣。它的放置規則是,圖片本身(x%,y%)的那個點,與背景區域的(x%,y%)的那個點重合。比如,如果放置位置是"20% 10%",實際結果如下圖,可以看到這個點是在圖片本身的"20% 10%"的位置上。

bg2008050702.gif

下面是一個有趣的例子。

背景圖片是四個邊長爲100px的方塊疊在一起:

bg2008050703.png

請問怎樣才能將其橫過來:

bg2008050704.png

答案是,在網頁中先設置四個div區域:

<div class="box1">
</div>
<div class="box2"">
</div>
<div class="box3">
</div>
<div class="box4">
</div>

然後,這樣編寫CSS:

.box1, .box2, .box3, .box4 {
  float:left;
  width:100px;
  height:100px;
  position:relative;
  background: #F3F2E2 url(1234.png) no-repeat;
}
.box1 {
  background-position:0% 0%;
}
.box2 {
  background-position:0% 33.33333%;
}
.box3 {
  background-position:0% 66.66666%;
}
.box4 {
  background-position:0% 100%;
}

點擊這裏查看最後的效果。可以看到第二和第三個方塊的設置,並不是一般想象中的"0% 25%"和"0% 75%"。4個方塊就分成(100/3)個百分塊。

不過說實話,這個例子用像素設置法更容易一些。使用百分比設置的主要優勢在於,當頁面縮放的時候,背景圖片也會跟着一起縮放,具體請參考下面"延伸閱讀"中的第二篇文章。

[延伸閱讀]

1. CSS: Using Percentages in Background-Image

2. Creating Liquid Faux Columns

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