【CSS】backgroundによる画像の読み込み
画像の読み込み
backgroundプロパティは背景色を設定するためによく使用します。
background: #fff;
/* 以下でも可 */
background-color: #fff;backgroundは背景色だけでなく、画像の読み込みが可能です。
画像の読み込みにはbackground-imageを使用します。
<div class="sample-img"></div>.sample-img {
background-img: url(画像のURL);
width: 300px;
height: 300px;
}読み込んだ画像は、要素の領域の分だけ表示されます。 デフォルトでは画像のサイズは変化せず、要素のサイズより大きい場合は切り取られ、小さな場合は繰り返されます。
これは、以下より説明するプロパティによって変化させることができます。
関連プロパティ
background-repeat
画像が要素のサイズより小さい場合の繰り返しに関するプロパティです。
デフォルトはrepeatになります。
background-repeat: repeat;| 値 | 説明 | サンプル |
|---|---|---|
repeat | 水平・垂直方向に繰り返す。 サイズが合わないところは途中で切れる。 | |
repeat-x | 水平方向に繰り返す。 サイズが合わないところは途中で切れる。 | |
repeat-y | 垂直方向に繰り返す。 サイズが合わないところは途中で切れる。 | |
space | サイズにちょうど収まるように繰り返しの間に余白ができる。 | |
round | サイズにちょうど収まるように画像を伸縮させる。 | |
no-repeat | 繰り返さない。 |
background-size
画像のサイズに関するプロパティです。
デフォルトでは画像のサイズがそのまま表示されます(auto)。
background-size: 100%;| 値 | 説明 | サンプル |
|---|---|---|
% | 要素の幅、高さを100%とする割合を指定する。background-size: 幅 高さ;で指定する。高さは省略でき、省略した場合は autoになる。 | |
pxなど | 要素の幅、高さをpxなどの長さで指定する。background-size: 幅 高さ;で指定する。高さは省略でき、省略した場合は autoになる。 | |
contain | 要素、画像の縦横比を考慮し、widthとheightの内大きな方を 100%とするように画像を伸縮する。 | |
cover | 要素、画像の縦横比を考慮し、widthとheightの内小さな方を 100%とするように画像を伸縮する。 |
background-clip
画像の表示領域に関するプロパティです。初期値はpadding-boxです。
background-clip: padding-box;| 値 | 説明 | サンプル |
|---|---|---|
border-box | borderを表示領域として含む。 | |
padding-box | paddingを表示領域として含む。 | |
content-box | コンテンツを表示領域とする。 | |
text | 文字部分のみを表示領域とする。-webkit-background-clip: text;とcolor: transparentを一緒に指定する必要がある。 | Text TEXT |
background-origin
画像の表示開始位置(左上)に関するプロパティです。デフォルトはpadding-boxです。
background-origin: padding-box;| 値 | 説明 | サンプル |
|---|---|---|
border-box | 開始位置にborderを含める。 | |
padding-box | 開始位置にpaddingを含める。 | |
content-box | コンテンツを開始位置とする。 |
background-position
背景の表示位置に関するプロパティです。
background-originで指定した開始位置を基準に表示位置を指定します。
background-position: top;| 例 | サンプル |
|---|---|
top | |
right | |
bottom | |
left | |
top right | |
25px 75px | |
right 25px bottom 100px |
background-attachment
スクロール要素に対する、背景画像の固定に関するプロパティです。デフォルトはscrollです。
値によってcontent-sizeが無効になります。
<div class="scroll">
<div class="contents"></div>
</div>.scroll {
background-image: url(画像のURL);
background-attachment: scroll;
height: 250px;
overflow-y: scroll
}
.contents {
height: 1000px;
}| 値 | 説明 | サンプル |
|---|---|---|
scroll | 背景画像を固定してスクロールする。 | TEXT |
local | コンテンツに合わせて背景画像もスクロールする。 | TEXT |
fixed | 背景画像を固定してスクロールするscrollと異なり親のスクロールにも適用される。 | TEXT |
img タグ
以下のように、<img>で画像を読み込むことも多いかと思います。
<img src="画像のURL" alt="注釈">画像サイズについては、<img>のwidth、height属性、または CSS プロパティのwidth、heightによって指定することができます。
どちらか 1 つのプロパティを指定すれば、縦横比を保つようにもう 1 つのプロパティが自動で調整されます。
どちらも指定した場合は、サイズに合わせて画像が伸縮します。
<img src="画像のURL" style="width: 200px">
<img src="画像のURL" style="width: 200px; height: 100px">

このサイズについて、以下のプロパティがあります。
object-fit
画像をサイズ内でどのように表示するかを決めるプロパティです。デフォルトはfillです。
| 値 | 説明 | サンプル |
|---|---|---|
fill | サイズに合わせて画像を伸縮 | ![]() |
contain | 縦横比を保ったまま画像全体が表示されるように伸縮 | ![]() |
cover | 縦横比を保ったままサイズすべてに画像が表示されるように伸縮 | ![]() |
none | 画像そのままの大きさをサイズ内で表示 | ![]() |
scale-down | 画像がサイズより大きい場合はcontain、小さい場合は noneとなる | ![]() |
object-position
画像の表示位置を指定するプロパティです。
考え方やプロパティ値は、background-positionと同じため割愛します。
通常(cover)
top
bottom