這一篇要介紹的是:background-size 的多種設定方式
教學網站
https://www.w3schools.com/cssref/css3_pr_background-size.asp
Definition and Usage
The background-size
property specifies the size of the background images.
有 5 種方式可以設定background-size
:(口訣:ACCLP)
- “auto”
- “cover”
- “contain”
- length
- 長寬,兩個值都設定:
- 第一個值:
width
- 第二個值:
height
- 第一個值:
1 | background-size: 300px 100px; |
- 長寬,只設定「一個值」:那個值會是「width」,「height」就會是 “auto”(height 按照原本的長寬比例,自動縮放)
1 | background-size: 200px; |
- percentage
以「佔父元素長寬的比例」來為圖片設定「width, height」
CSS Syntax
1 | background-size: auto|cover|contain|length|percentage |
[以下分別介紹這 5 種]
(口訣:ACCLP)
auto
- 是 Default value.
- 圖片以「原始的長寬」來呈現
css:
1 | .box{ |
cover
將圖片 resize 來 cover 住整個容器,圖片可能會被強行縮放,也可能被切掉其中一部份
css:
1 | .box{ |
contain
將圖片 resize,以確保在容器內,能夠完整的看到整張圖片
css:
1 | .box{ |
length
為圖片設定「width, height」
- 第一個值:width。第二個值:height
css:
1 | .box{ |
- 如果只有設定一個值,那個值就是「width」,而「height」則會是"auto 按比例縮放"
css:
1 | .box{ |
percentage
以「佔父元素長寬的比例」來為圖片設定「width, height」
- 第一個值:width。第二個值:height
css:
1 | .box{ |
- 圖片的
width
:佔「父元素寬度」的50% - 圖片的
height
:佔「父元素高度」的100%
- 如果只有設定一個值,那個值就是「width」,而「height」則會是"auto 按比例縮放"
css:
1 | .box{ |
- 圖片的
width
:佔「父元素寬度」的50% - 圖片的
height
:按原始比例縮放
更多範例
兩張背景圖重疊
有兩張背景圖片
- 第一張「tree.png」,設定為「contain」,才能完整地看到整張圖片
- 第二張「keyboard.png」,設定為「cover」,才能把整個外圍容器(父元素)給 cover 住
- 兩個 url 用「逗號」隔開
- 兩個
background-size
也用「逗號」隔開
css:
1 | .box{ |
做出「滿版的banner圖」- “hero” image
我的 codepen 範例:https://codepen.io/saffranwang/pen/jRjNNq
css:
1 | .hero-image{ |
就可以做出像這樣: