CSSの背景画像指定!backgroundの使い方とプロパティの説明書
CSSのbackgroundってプロパティ指定が沢山あって難しい〜!誰かわかりやすく説明してくれよ。
backgroundはプロパティも多く、使う頻度がとても多いので、とても重要だね!
今回はそんなbackgrouondを「説明書のように」徹底的に解説するのでブックマークして、忘れたら何度も見直して理解しよう!
目次
SCSSで背景画像を指定するbackgroundのプロパティの種類
background | 背景をショートハンドでまとめて指定 |
---|---|
background-color | 背景に色を指定 |
background-image | 背景に画像を指定 |
background-repeat | 背景画像の繰り返し指定 |
background-position | 背景画像の位置を指定 |
background-size | 背景画像のサイズを指定 |
background-origin | 背景を配置する基準位置(基点)を指定 |
background-clip | 背景の描画領域を指定 |
background-attachment | 画面スクロールに応じた背景画像の固定・移動を指定 |
backgroundは基本的に「要素の背景に色を設定したりイメージ画像を入れたり」できるプロパティで、backgroundから派生する8つの種類のプロパティがある。
background
自体はそれら8つのプロパティを一気にまとめて(ショートハンドで)指定することができるプロパティであり、単体でもその他の8つのプロパティの「値」を入れることで、その他のプロパティと同様に機能する。
background-colorプロパティの使い方
背景に色を入れるプロパティで(backgroundでも指定可)値には、色を指定する記述で#ff9900といったHEXの色コードや、色名(例:red)で指定したり、透明度をつけたい場合は、rgba(255, 100, 100, 0.5);といった形式でも色指定することもできる。
cssの記述例
.test{
background-color: #ff9900;
}
HTMLの記述例
<div class="test">
背景の色が変わります。
</div>
ブラウザ表示
※当記事では説明をシンプルに見やすくする為適宜paddingやborderなどを入れて表示しています
透明色をつけるrgbaの指定の場合
透明度を指定できるrgbaの記法を使うことで、背景色に透明度をつける事ができる!
cssの記述例
.test{
background-color: rgba(255, 153, 0, 0.2);
}
HTMLの記述例
<div class="test">
背景の色が透明のオレンジに変わります。
</div>
ブラウザ表示
RGBAとは
RGBAとは光の3原色と言われる「RGB(R:レッド G:グリーン B:ブルー)」に透明度を表す「A(アルファ)」の数値を入れるものであり、RGBは0~255の数値を入れ、Aは0~1.0(0%~100%)の少数第一位までの数値で透明度を指定する。
RGBの0~255の数値は、「0」が最も弱い光で「255」が最も強い光を表す。例えばRGBの3つの光が全部255であれば「白色」になり、全部0であれば「黒色」になる。
rgba(255, 255, 255, 0.5);
この場合「白色で透明度が50%」を表す
background-imageプロパティの使い方
background-image
は背景にイメージ画像を表示できるプロパティで、background-image:url("img/01.jpg");
のように記述する。
urlの中はhtmlから見て画像が保存されているフォルダまでの相対パス(もしくは絶対パス)を記述して、ファイルを指定。
たとえばこんな野球のボールの写真(ball.jpg サイズ150px × 150px)を背景に設定する場合の記述としては
cssの記述例
.test{
background-image: url("ball/jpg");
}
HTMLの記述例
<div class="test">
背景にボールの写真が入ります
</div>
ブラウザ表示
このように、150px四方の写真が横に繰り返されて表示されているが、背景写真は「クラスtestのdivのボックス」の高さ分までしか見えない。これが背景の基本的な表示の仕方である。
では「クラスtestのdiv」の高さを300pxにしてみるとどうなるか?
そう、このように写真は「縦にも横にも繰り返し表示」されている。高さが300pxに伸びたので、ちょうど縦に2枚分写真が並んで見えることになる。
つまり背景写真の表示の仕組みとして(次に説明する「background-repeat」で指定しない限りは)デフォルトで画像が縦にも横にも繰り返し表示され、親要素のボックスサイズの範囲内で表示される仕組みなのだ。
背景画像を複数指定する方法
ひとつのボックスに対して、背景画像はCSS3から複数指定する事が可能になった。
基本的に複数枚の背景画像を重ねる時の書き方は、セレクタ {background-image: 背景1, 背景2, 背景3;}
のように「,」カンマ区切りで記述する(backgroundでも可)。
具体的に詳しいやり方や、注意点については次の記事に詳しく書いているので、見てみよう!
background-repeatプロパティの使い方
background-repeatは背景画像の繰り返し指定
前述したとおり、背景画像はデフォルトでは親ボックスの範囲内で繰り返し表示される。これを制御するプロパティがbackground-repeat
なのである。
値 | 意味 |
---|---|
repeat | 縦にも横にも繰り返し表示(初期値) |
repeat-x | x軸方向(横方向)にのみ繰り返し表示 |
repeat-y | y軸方向(縦方向)にのみ繰り返し表示 |
no-repeat | 繰り返さない |
このように繰り返すか、横方向だけに繰り返すか、縦方向だけに繰り返すか、繰り返さないかの4通りだけ。何も指定しなければ「repeat(繰り返す)」が初期値で適用される。
さきほどの背景画像を繰り返さないに指定した例を見てみよう!
cssの記述例
.test{
background-image: url("ball/jpg");
background-repeat:no-repeat;
}
HTMLの記述例
<div class="test">
背景にボールの写真が「繰り返さず」に入ります
</div>
ブラウザ表示
background-positionプロパティの使い方
背景画像の表示位置を指定する
background-positionは背景画像の表示位置を指定するものであり、デフォルト(指定を省略した場合の初期値)は「left top(左上)」の位置となっている。プレビュー (新しいウィンドウで開きます)
background-position:横方向の位置 縦方向の位置;
このように指定し、順番は「横方向の位置」「縦方向の位置」の順番で記述するルールになっている。
background-positionの指定の仕方にはいくつかあるので、一覧で見てみよう
表記 | 例 | |
---|---|---|
横方向の位置 | left / center / right | right top |
縦方向の位置 | top / center / bottom | |
px指定(左上基準) | 30px 50px | 30px 50px |
%指定(左上基準) | 50% | 50% 50% |
基準位置の指定 | right left top bottom ※値の前に記述 |
right 10px bottom 30px |
pxや%など具体的な数値で指定する場合は、デフォルトで左上からの基準として記述する。しかしCSS3から右下からの基準での表記に対応したので、明示的にright 10px bottom 30px
と入れる事で、右から10px 下から30pxと指定できるようになった。(※省略した場合は左上基準)
background-sizeプロパティの使い方
背景画像のサイズを指定する
background-sizeは、背景画像のサイズを指定するプロパティで、いくつかの指定方法があるので、一覧表で見てみよう!
cover |
画像の縦横比を保持したまま、背景領域を余白が見えないように最小サイズで覆い尽くすサイズに自動調整 |
---|---|
contain | 画像の縦横比を保ったまま、背景画像が切れずにすべて表示されるサイズに自動調整 |
auto | 元画像のサイズをそのまま表示し、サイズ調整はしない |
数値+単位 |
|
%値 | 20% 30% のように背景画像の幅と高さの順に半角スペースで区切って、%値で指定。親ボックスの領域に対する割合。1つだけ指定した場合は、高さはautoになる。 |
このように5つの指定があり、それぞれの特徴を理解して使い分けよう。
具体的にどんな風に表示されるか?例を交えて見てみたい人は、次の記事で丁寧に解説しているので参考にしておこう!
background-originプロパティの使い方
背景画像の配置が始まる基点を指定
background-originは背景画像を設定した時の画像が始まる位置である「基点」を指定するものである。background-originは、次に紹介するbackground-clipとセットで理解したほうが良い。
background-originとbackground-clipは、次に紹介する共通する3つの値を持っている。
background-originとbackground-clipは似ているが、background-originは「基点」がどこかを指定するものであるのに対し、background-clipは「どこまで表示するか(表示領域)」を指定するプロパティである。
まずはbackground-originの3つの値を順番に見てみよう
border-box | ボーダーを含めたボックスの端が基準位置 |
---|---|
padding-box | ボーダーを除いたボックスの内側が基準位置 |
content-box | ボックス内の余白を含めない、コンテンツ領域が基準位置 |
例では、3つのボックスにそれぞれborder-box、padding-box、content-boxの順番で設定し、共通してdivに対して「10pxの透明のボーダーと、paddingを10px」入れて結果をわかりやすくしている。
CSS
.box1{background-origin: border-box; }
.box2{background-origin: padding-box; }
.box3{background-origin: content-box; }
div{
border:10px solid rgba(255, 153, 0, 0.4);
padding:10px;
height:
}
HTMLの記述例
<div class="box1"></div>
<div class="box2"></div>
<div class="box3"></div>
ブラウザ表示 background-originの3つの値の比較
border-box
padding-box
content-box
この3つ見るとわかると思うのだが、あくまで表示の「基点」を指定しているだけなので、表示領域(background-clip)はすべて同じで初期値のborder-boxの値となっており、borderを含めたすべてが表示領域である事がわかる。
background-clipプロパティの使い方
背景画像の表示領域を指定
前述したとおり、background-clipは、background-originと似ているが、background-originは「基点」がどこかを指定するものであるのに対し、background-clipは「どこまで表示するか(表示領域)」を指定するプロパティである。
ブラウザ表示 background-clipの3つの値の比較
border-box
padding-box
content-box
この3つ見るとわかると思うのだが、あくまで表示領域を指定しているだけなので、表示の「基点(background-origin)」はすべて同じで初期値のpadding-boxの値となっており、borderを除いたのborderの
内側から基点がスタートしている事がわかる。
background-attachmentプロパティの使い方
スクロール時の背景画像の固定の有無を指定
background-attachmentは、ページのスクロール時に 背景画像も一緒にスクロールさせるか固定するかを指定するプロパティだ。
background-attachment: fixed;の挙動
fixedを指定した場合は、画面スクロール時に「背景画像は固定されてスクロールしない」。
CSS
.test{
background-attachment: fixed;
height:200px; /*わかりやすいように高さ指定*/
}
ブラウザ表示 background-attachment: fixed;
background-attachment: scrollの挙動
scroll(初期値)を指定した場合は、画面のスクロール時に「背景画像もスクロールされる」
CSS
.test{
background-attachment: scroll;
height:200px; /*わかりやすいように高さ指定*/
}
ブラウザ表示 background-attachment: scroll;
background-attachment: localの挙動
localはボックスの中身がボックスの高さを超える量でoverflowの設定で、スクロール表示できる状態の時に、背景画像もスクロールについてくるように設定できる値である。
CSS
.test{
background-attachment: local;
overflow:scroll; /*わかりやすいように指定*/
height:200px; /*わかりやすいように高さ指定*/
}
ブラウザ表示 background-attachment: local;
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
複数のプロパティを一気に指定できるbackgroundプロパティ
これまで紹介した、ボックスの背景を指定する様々なプロパティのすべてを設定する事が可能なのが、backgroundプロパティである。backgroundプロパティはすべてのプロパティを設定できるだけでなく、複数のプロパティを一気に指定することも可能なのだ。
例えば、background-imageとbackground-repeatとbackground-positionの3つを一気に指定する時の記述は次のようになる。
CSS
.test{
background: url(image/01.jpg) no-repeat right top;
}
このように半角スペースで(順不同)区切って指定することで、一気に指定できるのでとても便利なのだ!
backgroundで複数のプロパティを一気に指定する時の注意点
複数してできてとても便利なのだが、注意点もありbackground-size
を指定する際は、background-position
とセットで指定する必要があり、background-position
の後に/
をはさんでbackground-size
の順番で指定しないと表示されない!具体的には次の例を見てみよう。
CSS
.test{
background:url(image/01.jpg) left top / 50px 50px no-repeat;
}
このようにleft top / 50px 50px
といった形で、positionの後に「/」をはさんでサイズを指定する必要があるので注意しよう!
CSSの背景画像指定!backgroundの使い方とプロパティの説明書のまとめ
CSSのbackgroundは沢山のプロパティがあるが、CSSにおいては基本中の基本なので、しっかりと理解しておく必要がある。当記事を見ながら、実際に自分で値を変えながら、実験してみるのが一番良いだろう!
このようにCSSの基本をしっかり学ぶことは、WEB制作の基本なので、多少時間はかかるが焦らずにじっくりと積み重ねていこう!
CSSの勉強を最短で効率的に独学する方法!
今回学んだようなCSSの基本の勉強は、頑張ればひとりでの独学でも十分に学べる内容だが、ひとりで独学で勉強する時間が無い方や、いち早く技術を習得して転職活動したい方などは、もっとも効率的な勉強方法を知る必要がある!
独学での効率的な勉強方法をまとめた記事が参考になるのでオススメだ!!
※当記事の掲載内容は執筆現在の個人の見解・調査によるもので、動作・サービス等を保証するものではありません。最新情報は各公式サイトでご確認頂き、購入・契約・データ作成等はご自身の判断・責任でお願いします。 免責事項
関連記事
CSSで複数の背景画像指定して重ねる方法
CSSだけ超簡単!画像トリミングできる 「object-fit」 の使い方
CSSの背景画像のサイズ指定「backgrouond-size」の使い方
CSSの優先順位(詳細度)の仕組みと「点数の計算方法」
【初心者】CSS(スタイルシート)の書き方の基本文法!
【コピペでOK】CSSだけでLINE風の「吹き出し」を作る方法!
CSS3のtransitionでカッコイイ動きの作り方!
【保存版】CSSのセレクタの完全ガイド!
CSS Flexboxの使い方 「図解付き」で解説する横並びレイアウト
サイト内検索
新着記事
- YouTubeより詳しく!まとめて学べる『WEBデザイン動画講座』
- Figmaの背景切り抜きプラグイン『Remove BG』のAPI Key取得方法と使い方
- WEBデザイン動画講座のご紹介【お得な割引アリ】
- WixでWEBデザイナーが「ポートフォリオサイト」を作ってみた!
- WEBデザインツールの比較!初心者におすすめは?Figma Photoshop Xd Illustrator
- CodeCampGATE(コードキャンプゲート)とは?転職・就職先と評判
- コードキャンプの「Webデザイン・Webデザイン副業コース」を卒業生が解説!
- テックアカデミー「はじめての副業コース」卒業生が内容を解説!
- PHPの独学!挫折しないおすすめ勉強方法!
- 16インチMacbook Proで使える100Wモバイルバッテリー Zendure SuperTankレビュー
- [体験談] CodeCamp(コードキャンプ)で挫折する理由!
- テックアカデミー「受講した感想・評判」学習内容の総まとめ!
- Photoshop 超リアルな商品写真の鏡面反射の作り方
- デイトラの評判は?詳細内容とメリット・デメリットを解説
- CSSだけ超簡単!画像トリミングできる 「object-fit」 の使い方
- コードキャンプ 「無料体験・カウンセリング」を受講してみた!予約方法や内容の体験談
- デジタルハリウッドSTUDIO by LIGの評判
- PhotoshopでWEBデザインする基本の設定とテクニック
- テックアイエス評判は?現役プロがTECH I.S.を徹底調査!
- WEBデザインの練習・勉強をしながら「お金までもらえる」超おすすめの学習方法!
カテゴリー
タグリスト