你可能理解錯了background-position

文本主要解決如何理解背景定位(background-position)屬性的。css

文章雖短,可是內容足夠撥亂反正。ui

首先,咱們給一個 div 設置背景:url

div{
  width: 300px;
  height: 200px;
  padding: 10px;
  border: 10px solid rgba(0,0,0,.7);
  background-color: aqua;
  background-image: url(test.jpg);
}
複製代碼

其效果以下圖所示,注意圖片平鋪是從 padding-box 開始的,另外, border 後面也是有圖片的。spa

爲了方便理解 background-position,這讓背景圖片不平鋪。3d

background-repeat: no-repeat;
複製代碼

效果如圖所示: code

接下來咱們設置圖片位置:cdn

background-position: right bottom;
複製代碼

產生以下效果: blog

重點來了,right bottom 這個值是什麼意思呢?圖片

估計大部分人都理解錯了。it

正確的理解是:圖片的右下角與 div 的右下角對齊!

你可能會說:這有啥?多麼直觀,沒錯,我就是這麼理解的。

這裏想說,若是真是這麼理解的話,那麼就不應對百分比值感到奇怪。

由於 right bottom 就是 100% 100%。

background-position: 100% 100%;
複製代碼

設置如上樣式,會產生一樣的效果。

100% 100% 的意思是說:

圖片自身的 100% 100% 位置 與 div 的 100% 100% 處對齊!

再與以前那句作下對比:

圖片的 right bottom 處與 div 的 right bottom 處對齊!

發現了沒有,百分值是很容易理解的。

並不須要像一些書裏那樣用公式來理解:

positionX = (容器的寬度 - 圖片的寬度) * percentX

固然,經過百分比對齊這種理解,很容易推出這個公式。

再以具體的 75% 40% 爲例,生動地說明這種理解方式簡單易懂:

至此,核心內容說完了。

最後再提一下,默認背景定位是相對於 padding-box 的。經過 background-origin 來指定其餘盒子。

另外,當 background-attach 設置爲 fixed 時,圖片定位是至關於視口來的。示意以下:

本文完。

若是方便的話,關注我一下,點個贊再走。

謝謝。

相關文章
相關標籤/搜索