background-size
是 CSS 屬性,用於控制背景圖片的大小。它允許我們縮放背景圖片以適應元素的尺寸,或者指定具體的尺寸,從而實現各種視覺效果。
理解 background-size
background-size
接受兩個值,分別代表寬度和高度。這兩個值可以是以下幾種型別:
- 長度值: 例如
px
、em
、rem
、vw
、vh
等。指定背景圖片的具體寬度和高度。 - 百分比值: 相對於包含元素的寬度和高度計算。例如,
background-size: 50% 100%;
表示背景圖片的寬度是包含元素寬度的一半,高度與包含元素高度相同。 cover
: 縮放背景圖片以完全覆蓋包含元素。圖片會被等比例縮放,直到其寬度和高度都大於等於包含元素的相應尺寸。可能會導致圖片部分割槽域被裁剪。contain
: 縮放背景圖片以完整地顯示在包含元素內。圖片會被等比例縮放,直到其寬度和高度都小於等於包含元素的相應尺寸。可能會導致包含元素出現空白區域。
background-size
的運用場景
background-size
的靈活性和豐富的取值方式使其在前端開發中有著廣泛的應用:
- 響應式圖片: 使用百分比值或
cover
可以使背景圖片根據包含元素的大小進行縮放,從而實現響應式佈局。 - 全屏背景: 結合
background-size: cover;
和background-position: center;
可以輕鬆建立一個充滿整個元素的背景圖片,常用於網站的 hero section 或登陸頁面。 - 精靈圖 (Sprite): 透過
background-size
縮放精靈圖,並結合background-position
定位,可以有效地減少 HTTP 請求數量,最佳化網站效能。 - 重複背景圖案: 透過設定較小的
background-size
值,可以建立重複的背景圖案。 - 建立高解析度影像效果: 使用大於元素尺寸的圖片,並結合
background-size: cover;
可以建立視網膜螢幕下的高解析度影像效果。 - 圖片縮放效果: 透過 JavaScript 動態修改
background-size
的值,可以實現圖片的縮放動畫效果。
示例:
.example1 {
width: 200px;
height: 100px;
background-image: url("image.jpg");
background-size: cover; /* 完全覆蓋 */
}
.example2 {
width: 200px;
height: 100px;
background-image: url("image.jpg");
background-size: contain; /* 完全包含 */
}
.example3 {
width: 200px;
height: 100px;
background-image: url("image.jpg");
background-size: 50% 100%; /* 寬度為容器的50%,高度為容器的100% */
}
.example4 {
width: 200px;
height: 100px;
background-image: url("sprite.png");
background-size: 200px 200px; /* 縮放精靈圖 */
background-position: -50px -50px; /* 定位到精靈圖中的特定圖示 */
}
總而言之,background-size
是一個非常實用的 CSS 屬性,可以幫助我們更好地控制背景圖片的表現,實現各種各樣的視覺效果。