css.svg

【CSS】backgroundによる画像の読み込み

CSS

画像の読み込み

backgroundプロパティは背景色を設定するためによく使用します。

background: #fff;
/* 以下でも可 */
background-color: #fff;

backgroundは背景色だけでなく、画像の読み込みが可能です。 画像の読み込みにはbackground-imageを使用します。

HTML
<div class="sample-img"></div>
CSS
.sample-img {
  background-img: url(画像のURL);
  width: 300px;
  height: 300px;
}

読み込んだ画像は、要素の領域の分だけ表示されます。 デフォルトでは画像のサイズは変化せず、要素のサイズより大きい場合は切り取られ、小さな場合は繰り返されます。

これは、以下より説明するプロパティによって変化させることができます。

関連プロパティ

background-repeat

画像が要素のサイズより小さい場合の繰り返しに関するプロパティです。 デフォルトはrepeatになります。

CSS
background-repeat: repeat;
説明サンプル
repeat水平・垂直方向に繰り返す。
サイズが合わないところは途中で切れる。
repeat-x水平方向に繰り返す。
サイズが合わないところは途中で切れる。
repeat-y垂直方向に繰り返す。
サイズが合わないところは途中で切れる。
spaceサイズにちょうど収まるように繰り返しの間に余白ができる。
roundサイズにちょうど収まるように画像を伸縮させる。
no-repeat繰り返さない。

background-size

画像のサイズに関するプロパティです。 デフォルトでは画像のサイズがそのまま表示されます(auto)。

CSS
background-size: 100%;
説明サンプル
%要素の幅、高さを100%とする割合を指定する。
background-size: 幅 高さ;で指定する。
高さは省略でき、省略した場合はautoになる。
pxなど要素の幅、高さをpxなどの長さで指定する。
background-size: 幅 高さ;で指定する。
高さは省略でき、省略した場合はautoになる。
contain要素、画像の縦横比を考慮し、widthheightの内
大きな方を100%とするように画像を伸縮する。
cover要素、画像の縦横比を考慮し、widthheightの内
小さな方を100%とするように画像を伸縮する。

background-clip

画像の表示領域に関するプロパティです。初期値はpadding-boxです。

CSS
background-clip: padding-box;
説明サンプル
border-boxborderを表示領域として含む。
padding-boxpaddingを表示領域として含む。
content-boxコンテンツを表示領域とする。
text文字部分のみを表示領域とする。
-webkit-background-clip: text;
color: transparentを一緒に指定する必要がある。
Text

TEXT

background-origin

画像の表示開始位置(左上)に関するプロパティです。デフォルトはpadding-boxです。

CSS
background-origin: padding-box;
説明サンプル
border-box開始位置にborderを含める。
padding-box開始位置にpaddingを含める。
content-boxコンテンツを開始位置とする。

background-position

背景の表示位置に関するプロパティです。 background-originで指定した開始位置を基準に表示位置を指定します。

CSS
background-position: top;
サンプル
top
right
bottom
left
top right
25px 75px
right 25px bottom 100px

background-attachment

スクロール要素に対する、背景画像の固定に関するプロパティです。デフォルトはscrollです。 値によってcontent-sizeが無効になります。

HTML
<div class="scroll">
  <div class="contents"></div>
</div>
CSS
.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>で画像を読み込むことも多いかと思います。

HTML
<img src="画像のURL" alt="注釈">

画像サイズについては、<img>widthheight属性、または CSS プロパティのwidthheightによって指定することができます。 どちらか 1 つのプロパティを指定すれば、縦横比を保つようにもう 1 つのプロパティが自動で調整されます。 どちらも指定した場合は、サイズに合わせて画像が伸縮します。

HTML
<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