Background-Sizeを設定して背景を模様のように繰り返し表示する方法
背景画像のサイズを定義します。区切りを与えます。
目次
background-sizeとは
背景画像をアスペクト比を維持しながらfitな表示をしたり、小さく表示して敷き詰めるように表示できたりします。
Options:
- contain
- cover
- auto
- %
- px
background-size: size;
background-imageのサイズを指定します。
コンテナのdivは300x300pxですが、1つの背景のサイズは55pxです。
.box2 {
width: 300px;
height: 300px;
background-image: url("./100x100.png");
background-size: 55px 55px;
}
わお!たくさん表示されましたね。
ちなみに何も指定しない場合はこうです。
100pxの画像がタイルのように敷き詰められましたね。
ちなみに、背景ですので画像の前にテキストとか表示できます。
Hello!
background-size: cover;
画像が拡縮して隙間なくカバーされる感じです。ただし見切れる可能性あります。
サイズ比率がcontainerとimageが同じであれば、アスペクト比が同じであるので、拡縮する可能性があるものの、ピッタリと画像が表示されます。欠損無。
.box3 {
width: 200px;
height: 300px;
background-image: url("./100x100.png");
background-size: cover;
}
background-size: contain;
画像がすべて欠損なく表示されます。隙間がある場合は繰り返し表示されます。
no-repeatを指定しない限り、繰り返し表示されます。
.box4 {
width: 200px;
height: 300px;
background-image: url("./100x100.png");
background-size: contain;
/* background-repeat: no-repeat; */
}
background-repeat: no-repeat; を指定してみました。繰り返しが止まりましたね。
Background-Sizeの複数イメージの対応
そーいえば、background-imageは、複数のImageを使用できますよね。
それに合わせて、background-sizeも複数のImageに対応可能です。カンマで区切って指定します。
.box5 {
width: 200px;
height: 200px;
background-image: url("https://www.jinmusoftware.com/wp-content/uploads/2022/08/icon-192.png"), url("https://www.jinmusoftware.com/wp-content/uploads/2022/11/100x100_6.png");
background-size: cover, 20%;
}
1番目の画像(”じ”)はcover、2番目の画像(100の文字)は20%、としました。
Background-Imageの画像を中央に表示する方法
<style>
.box6 {
width: 300px;
height: 300px;
background-color: lightgray;
background-image: url("./100x100.png");
/*background-size: contain;*/
background-repeat: no-repeat;
background-position: center center;
}
</style>
本題のbackground-sizeは関係なくなりましね。background-position: center center;
が必要でした。
関連プロパティ
- background-image
- background-size
- background-color
- background-position
- background-repeat
勉強中に気になったワード
- cross-fade() 画像の合成
- Using CSS gradients グラデーション関数
- element() HTMLの要素を背景にできる。idで指定する。(Experimental