6日でできる 新HTML&CSS入門|Webページを装飾するCSS

HTMLで作ったページに、色・余白・文字の表情を加える。CSSを学んで、Webページを見やすく美しく整えよう。

HTMLは、Webページの文章や見出し、画像、リンク、表などを配置し、ページの構造を作るための言語です。これまで学んできたHTMLでは、どこが見出しなのか、どこが段落なのか、どこに画像を表示するのかといった「意味」や「骨組み」を作ってきました。

しかし、HTMLだけで作ったページは、基本的にはブラウザの標準表示に近い見た目になります。文字の大きさ、色、背景、余白、配置などを細かく整えるには、HTMLだけでは十分ではありません。

そこで登場するのがCSSです。CSSは、Cascading Style Sheetsの略で、Webページの見た目を指定するための仕組みです。文字色を変える、背景色を付ける、見出しを中央に寄せる、ボタンらしい見た目にする、リンクにマウスを重ねたときの色を変えるなど、ページの装飾やレイアウトに関わる多くのことをCSSで指定できます。

HTMLが「ページの構造」を作る役割だとすれば、CSSは「ページの見た目」を整える役割です。この2つを分けて考えることで、Webページは管理しやすくなります。文章の内容を変えずにデザインだけを変更したり、複数ページの見た目をまとめて変更したりしやすくなるからです。

この記事では、CSSとは何か、なぜスタイルシートと呼ばれるのか、CSSを書く場所にはどのような種類があるのか、セレクタとプロパティの基本、内部スタイルを使ったサンプル、ボタンのホバー効果までを順番に解説していきます。

CSSは、Webページをただ表示するだけでなく、読みやすく、使いやすく、印象に残るページへ変えるための大切な技術です。ここから、HTMLで作ったページにデザインを加える考え方を学んでいきましょう。

CSSはWebページの見た目を指定する仕組み

CSSは、Webページの見た目を指定するための言語です。HTMLで作った見出し、段落、リスト、表、ボタンなどに対して、色、文字サイズ、背景、余白、配置などを指定します。

役割担当する内容
HTMLページの構造を作る見出し、段落、画像、リンク、表
CSSページの見た目を整える色、文字サイズ、背景、余白、配置
ブラウザHTMLとCSSを読み込んで表示するWebページとして画面に表示する

たとえば、HTMLではh1を使って大きな見出しを作れます。ただし、その見出しを緑色にしたり、中央に配置したり、文字サイズをさらに大きくしたりするにはCSSを使います。

HTMLとCSSを分けると、ページの内容とデザインを別々に管理できます。これはWeb制作でとても重要な考え方です。

文章や画像などの中身はHTMLで管理し、色や配置などの見た目はCSSで管理することで、あとから修正しやすいページになります。

図1:HTMLとCSSの役割の違い

この図から分かること

この図から、HTMLとCSSは役割が異なることが分かります。

HTMLは、見出し、段落、画像、リンクなど、ページの部品と構造を作ります。一方、CSSは、その部品をどのように見せるかを指定します。

同じHTMLでも、CSSを変えるだけで、落ち着いた印象のページにも、明るく楽しい印象のページにもできます。

HTMLとCSSを分けて考えることは、Web制作の基本です。ページの内容と見た目を整理して管理できるため、あとから修正しやすく、複数ページに同じデザインを適用しやすくなります。

スタイルシートとは

スタイルシートとは、HTMLなどの構造化された文書に対して、見た目を指定するための仕組みです。

HTMLが文章の意味や構造を表すのに対して、スタイルシートは見た目を担当します。文字色、背景色、フォント、余白、配置、サイズなどを指定することで、ページを読みやすく整えます。

項目内容
スタイルシート文書の見た目を指定する仕組み
CSSWebページで広く使われるスタイルシート
目的内容とデザインを分けて管理する
利点再利用しやすく、一括変更しやすい

CSSを使うと、HTMLのタグ構造はそのままに、デザインだけを変更できます。

たとえば、複数ページの見出しをすべて青にしたい場合、HTMLを1ページずつ直すのではなく、CSSを変更することでまとめて見た目を変えられます。

このように、CSSはWebページを効率よく管理するためにも役立ちます。

CSSがカスケードと呼ばれる理由

CSSの正式名称はCascading Style Sheetsです。Cascadingは、滝のように流れ落ちるという意味を持ちます。

CSSでは、ブラウザが最初から持っている標準のスタイル、制作者が書いたスタイル、ユーザーが設定したスタイルなどが重なり合い、最終的にどの見た目を適用するかが決まります。

種類内容
ブラウザ既定のスタイルブラウザがもともと持っている表示
制作者のCSSWeb制作者が指定した見た目
ユーザー側の設定利用者が設定する文字サイズなど

たとえば、ブラウザはh1を最初から大きな太字で表示します。これはブラウザ既定のスタイルです。

そこに制作者がCSSでh1の色や配置を指定すると、その指定が反映されます。同じ要素に複数のCSSが当たる場合は、どの指定を優先するかを決める仕組みがあります。

CSSでは、主に次のような考え方で優先順位が決まります。

考え方内容
詳細度より具体的な指定が優先されやすい
後勝ち同じ強さの指定なら後に書いたものが優先される
継承親要素の指定が子要素に受け継がれることがある

このように、複数の指定が重なりながら最終的な見た目が決まるため、CSSはカスケードと呼ばれます。

CSSを書く3つの方法

CSSを書く方法には、大きく分けて3つあります。インラインスタイル、内部スタイル、外部スタイルです。

方法書く場所主な用途
インラインスタイルHTMLタグのstyle属性に書く1か所だけ例外的に指定したい場合
内部スタイルhead内のstyle要素に書く学習用や小さなページ
外部スタイル別のCSSファイルに書いてlinkで読み込む実務や複数ページの管理

インラインスタイルは、HTMLタグに直接style属性を書いて見た目を指定する方法です。手軽ですが、HTMLの中にデザイン指定が混ざるため、多用すると管理しにくくなります。

内部スタイルは、HTMLファイルのhead内にstyle要素を書き、その中にCSSをまとめる方法です。1つのHTMLファイルだけで動作を確認できるため、学習では扱いやすい方法です。

外部スタイルは、CSSだけを別ファイルに分けて管理する方法です。複数ページで同じCSSを使い回せるため、実際のWeb制作ではよく使われます。

学習では内部スタイルから始めると分かりやすい

CSSを学び始めるときは、内部スタイルを使うと分かりやすいです。

HTMLとCSSを1つのファイルの中で確認できるため、どのCSSがどのHTMLに影響しているのかを見つけやすいからです。

方法学習しやすさ管理しやすさ
インラインスタイルすぐ試せるが整理しにくい低い
内部スタイル1ファイルで確認しやすい中程度
外部スタイル実務向き高い

最初は内部スタイルでCSSの基本を学び、慣れてきたら外部スタイルへ進むとよいでしょう。

実務では、HTMLファイルとCSSファイルを分けて、複数のページに同じデザインを適用することが多くなります。

CSSの基本形

CSSは、どの要素に、どの見た目を、どの値で指定するかを書きます。

基本の形は、セレクタ、プロパティ、値の組み合わせです。

セレクタ {
  プロパティ: 値;
}
名前役割
セレクタどの要素に適用するかを指定するh1、p、.note
プロパティ何を変更するかを指定するcolor、background、font-size
どのように変更するかを指定するred、#008000、220%

たとえば、h1の文字色を緑にしたい場合は、h1をセレクタにし、colorで文字色を指定します。

CSSでは、セレクタで対象を選び、プロパティと値で見た目を指定します。この形を覚えると、さまざまな装飾を理解しやすくなります。

図2:CSSの基本形と3つの記述方法

この図から分かること

この図から、CSSはセレクタ、プロパティ、値の組み合わせで書くことが分かります。

セレクタは、どのHTML要素にスタイルを適用するかを決めます。プロパティは、文字色や背景色、文字サイズなど、何を変更するかを表します。値は、そのプロパティにどのような設定をするかを表します。

また、CSSを書く場所には、インライン、内部スタイル、外部スタイルの3種類があります。学習では内部スタイルが確認しやすく、実務では外部スタイルが管理しやすい方法です。

内部スタイルで色と文字を変えてみる

ここでは、内部スタイルを使って、ページ全体の背景色、本文の文字色、見出しの色や大きさ、配置を指定します。

ファイル名: lesson22_1.html

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>はじめてのスタイルシート</title>
  <style>
    body {
      background: #e8f7ff;
      color: #222222;
      font-family: "Segoe UI", sans-serif;
    }

    h1 {
      color: #008000;
      font-size: 220%;
      text-align: center;
    }
  </style>
</head>
<body>
  <h1>スタイルシート入門</h1>
  <p>HTMLで作ったページに、CSSで色や文字の見た目を加えています。</p>
</body>
</html>

ブラウザの表示例

ブラウザで表示すると、ページ全体の背景が淡い水色になり、見出しは緑色で大きく中央に表示されます。本文は濃いグレーで表示されます。

対象指定内容表示のイメージ
bodybackgroundページ全体の背景色を淡い水色にする
bodycolor基本の文字色を濃いグレーにする
bodyfont-family使用する書体を指定する
h1color見出しの文字色を緑にする
h1font-size見出しを大きくする
h1text-align見出しを中央に配置する

このサンプルでは、head内にstyle要素を置き、その中にCSSを書いています。

bodyに指定したCSSは、ページ全体の基本的な見た目に影響します。h1に指定したCSSは、h1だけに適用されます。

HTMLの構造は変えずに、CSSだけで見た目を変更できることが分かります。

backgroundは背景を指定する

backgroundは、背景に関する指定を行うためのプロパティです。ここでは、背景色を指定するために使っています。

背景色を変えると、ページ全体の印象が大きく変わります。白い背景はシンプルで読みやすく、淡い色の背景はやわらかい印象を与えます。

指定対象効果
bodyにbackgroundページ全体の背景が変わる
h1にbackground見出し部分の背景が変わる
pにbackground段落部分の背景が変わる

CSSでは、背景色だけでなく、背景画像なども扱えます。ただし、最初は背景色の指定から理解すると分かりやすいです。

colorは文字色を指定する

colorは、文字の色を指定するためのプロパティです。

bodyにcolorを指定すると、ページ全体の基本の文字色として使われます。h1など別の要素にcolorを指定すると、その要素だけ別の色にできます。

指定例役割
bodyのcolorページ全体の基本文字色
h1のcolor見出しだけの文字色
pのcolor段落だけの文字色

文字色を選ぶときは、背景色との読みやすさも大切です。薄い背景には濃い文字、濃い背景には明るい文字を組み合わせると読みやすくなります。

font-familyは書体を指定する

font-familyは、文字の書体を指定するプロパティです。

Webページを見る人の環境によって、使えるフォントは異なる場合があります。そのため、font-familyでは複数のフォント候補を順番に指定することがあります。

font-family: "Segoe UI", sans-serif;

この指定では、まずSegoe UIが使えるかを確認し、使えない場合はsans-serif系のフォントを使います。

指定内容
Segoe UI具体的なフォント名
sans-serifゴシック体のような系統を表す指定

フォントはページの印象に大きく関わります。やわらかい印象、ビジネスらしい印象、読みやすさ重視の印象など、目的に合わせて選ぶことが大切です。

font-sizeは文字サイズを指定する

font-sizeは、文字の大きさを指定するプロパティです。

見出しを大きくしたり、補足説明を小さくしたりすることで、ページ内の情報に強弱を付けられます。

指定内容
100%基本サイズ
150%基本より大きめ
220%かなり大きめ
16pxピクセル単位で指定

文字サイズを変えると、ページの読みやすさが大きく変わります。

見出しは本文より大きくすると、どこが重要な情報なのか分かりやすくなります。一方、本文の文字が小さすぎると読みづらくなります。

CSSでは、文字サイズを見た目だけでなく、情報の階層を伝えるためにも使います。

text-alignは文字の配置を指定する

text-alignは、文字やインライン要素の横方向の配置を指定するプロパティです。

表示のイメージ
left左寄せ
center中央寄せ
right右寄せ

見出しを中央に配置すると、ページのタイトルとして目立たせやすくなります。本文は左寄せのほうが読みやすいことが多いため、用途に合わせて使い分けます。

CSSでは、同じ文章でも配置を変えるだけで印象が変わります。

CSSセレクタの基本

CSSセレクタは、どのHTML要素にスタイルを適用するかを指定する部分です。

代表的なセレクタには、要素セレクタ、クラスセレクタ、IDセレクタがあります。

セレクタ対象
要素セレクタ同じタグ名の要素すべてp、h1、body
クラスセレクタclass属性が指定された要素.note、.btn
IDセレクタid属性が指定された要素#header、#main

要素セレクタは、指定したタグ名すべてに適用されます。たとえばpを指定すると、すべてのp要素に同じスタイルが適用されます。

クラスセレクタは、特定のグループにスタイルを当てたいときに使います。同じclass属性を複数の要素に付けることで、まとめて同じ見た目を指定できます。

IDセレクタは、ページ内で一意の要素を指定したいときに使います。id属性は、同じページ内で重複しないようにします。

要素セレクタ・クラスセレクタ・IDセレクタの違い

セレクタの違いを整理すると、次のようになります。

種類書き方向いている使い方
要素セレクタh1、pなど同じ種類の要素全体に指定する
クラスセレクタ.btn、.noteなど複数の要素に同じデザインを付ける
IDセレクタ#headerなど特定の1か所だけを指定する

たとえば、すべての段落の文字色を変えたい場合はpを使います。

複数の場所にある注意文だけを目立たせたい場合は、class属性にnoteなどを付け、.noteで指定します。

ページのヘッダー部分だけを特別に指定したい場合は、id属性にheaderを付け、#headerで指定することがあります。

CSSを使いこなすには、どの範囲にスタイルを当てたいのかを考えて、適切なセレクタを選ぶことが大切です。

図3:セレクタで装飾する対象を選ぶ

この図から分かること

この図から、CSSセレクタはスタイルを適用する対象を選ぶための仕組みであることが分かります。

要素セレクタは、同じタグ名の要素すべてを対象にします。クラスセレクタは、同じclass属性を持つ要素をまとめて対象にします。IDセレクタは、特定のid属性を持つ1つの要素を対象にします。

CSSで思った通りの見た目にならない場合は、セレクタが正しい対象を選んでいるかを確認することが大切です。

セレクタは組み合わせて使える

CSSセレクタは、単独で使うだけでなく、組み合わせて使うこともできます。

セレクタの例意味
ul liulの中にあるliを対象にする
nav anavの中にあるaを対象にする
nav > anavの直下にあるaだけを対象にする
a:hoverリンクにマウスが重なったときだけ対象にする

ul liのような指定は、ある要素の内側にある要素を対象にします。これを子孫セレクタと呼びます。

nav > aのような指定は、navの直下にあるaだけを対象にします。内側のさらに深い場所にあるaは対象になりません。

a:hoverは、リンクにマウスを重ねたときの状態を表します。このような状態に応じた指定を疑似クラスと呼びます。

セレクタを組み合わせることで、ページ全体ではなく、特定の場所や状態だけにCSSを適用できます。

ホバー効果とは

ホバー効果とは、マウスカーソルを要素の上に重ねたときに見た目を変える表現です。

たとえば、ボタンにマウスを重ねたときに背景色が少し明るくなると、ユーザーは「ここは操作できる場所だ」と分かりやすくなります。

状態表示の例
通常時オレンジ色のボタン
ホバー時少し明るいオレンジ色のボタン
クリック前操作できることが分かる
クリック後処理が実行される

ホバー効果は、リンクやボタンでよく使われます。

ただし、スマートフォンではマウスホバーがないため、ホバー効果だけに重要な情報を持たせるのは避けましょう。ボタンであることは、通常時の見た目だけでも分かるようにしておくことが大切です。

ボタンにホバー効果を付けるサンプル

次のサンプルでは、buttonにclass属性を付け、CSSでボタンらしい見た目を指定します。さらに、マウスを重ねたときに背景色が変わるようにします。

ファイル名: lesson22_2.html

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>ボタンのホバー効果</title>
  <style>
    .btn {
      display: inline-block;
      padding: 0.6em 1.2em;
      background: #ff8c00;
      color: #ffffff;
      border: none;
      border-radius: 6px;
      transition: background 0.3s ease;
    }

    .btn:hover {
      background: #ffb347;
    }
  </style>
</head>
<body>
  <h1>ボタンの見た目を変える</h1>
  <button class="btn">クリック</button>
</body>
</html>

ブラウザの表示例

ブラウザで表示すると、「クリック」と書かれたオレンジ色のボタンが表示されます。ボタンにマウスを重ねると、背景色が少し明るいオレンジ色に変わります。

指定内容
.btnclass属性がbtnの要素を対象にする
display表示の性質を指定する
padding内側の余白を指定する
background背景色を指定する
color文字色を指定する
border枠線を指定する
border-radius角丸を指定する
transition変化をなめらかにする
.btn:hoverマウスを重ねたときの見た目を指定する

このサンプルでは、class属性にbtnを指定したbuttonに対して、.btnというクラスセレクタでCSSを適用しています。

通常時はbackgroundでオレンジ色を指定し、.btn:hoverではホバー時の背景色を少し明るくしています。

transitionを指定することで、背景色が一瞬で切り替わるのではなく、少しなめらかに変化します。

class属性は同じ見た目を再利用するときに便利

class属性は、同じデザインを複数の要素に適用したいときに便利です。

たとえば、ページ内に複数のボタンがある場合、すべてにclass属性でbtnを付けておけば、CSSの.btnでまとめて同じ見た目を指定できます。

使い方利点
複数のボタンに同じclass属性を付ける同じデザインを再利用できる
CSSで.btnを指定するまとめて見た目を変更できる
class名を意味のある名前にする役割が分かりやすくなる

class属性を使うと、HTMLの構造とCSSの装飾をつなげられます。

同じ見た目を繰り返し使う場合は、タグに直接スタイルを書くよりも、class属性とクラスセレクタを組み合わせるほうが管理しやすくなります。

transitionで変化をなめらかにする

transitionは、CSSの値が変化するときに、その変化をなめらかにするためのプロパティです。

ボタンのホバー効果では、通常時の背景色からホバー時の背景色へ切り替わります。このときtransitionを指定しておくと、色がふわっと変わるように見えます。

指定する内容役割
変化させるプロパティbackgroundなど
変化にかける時間0.3sなど
変化の進み方easeなど

transitionは、ボタンやリンクなど、操作に反応する部品でよく使われます。

ただし、動きが多すぎるとページが落ち着かなく見えることもあります。小さな変化を自然に見せるくらいから使い始めるとよいでしょう。

内部スタイルと外部スタイルの使い分け

学習では内部スタイルが便利ですが、実際のWeb制作では外部スタイルがよく使われます。

内部スタイルは、1つのHTMLファイルの中でCSSも確認できるため、練習に向いています。しかし、ページ数が増えてくると、同じCSSを何度も書くことになり、管理が大変になります。

外部スタイルでは、CSSを別ファイルにまとめます。複数のHTMLページで同じCSSファイルを読み込めば、全ページのデザインを一括で変更しやすくなります。

方法向いている場面
内部スタイルCSSの学習、小さなサンプル
外部スタイル複数ページのサイト、実務制作
インラインスタイル一時的な確認や例外的な指定

CSSを本格的に使うようになると、外部CSSファイルを作成し、HTMLからlinkで読み込む方法が重要になります。

CSSでできる主な装飾

CSSでできることはとても多くあります。最初は、文字、色、背景、余白、配置などの基本から学ぶと分かりやすいです。

分類CSSでできること
文字色、サイズ、書体、太さ、行間
背景背景色、背景画像、背景の位置
余白内側の余白、外側の余白
枠線線の太さ、種類、色、角丸
配置左寄せ、中央寄せ、横並び、縦並び
動きホバー効果、なめらかな変化
レイアウトヘッダー、メニュー、カード、グリッド

CSSを使うと、HTMLで作った要素を見やすく整えられます。

たとえば、見出しの色を変えるだけでも、ページの印象は変わります。余白を整えると、文章が読みやすくなります。ボタンの見た目を整えると、操作できる場所が分かりやすくなります。

使用するタグ・属性・CSSを整理する

この記事で登場した主なタグ、属性、CSSの考え方を整理しておきましょう。

種類名前用途
タグstyleHTML内にCSSを書く
タグlink外部CSSファイルを読み込む
タグh1大きな見出しを表す
タグp段落を表す
タグbuttonボタンを表す
属性classCSSでまとめて指定するための名前を付ける
属性idページ内で一意の名前を付ける
属性styleインラインスタイルを書く
CSSbackground背景を指定する
CSScolor文字色を指定する
CSSfont-family書体を指定する
CSSfont-size文字サイズを指定する
CSStext-align文字の横方向の配置を指定する
CSSpadding内側の余白を指定する
CSSborder枠線を指定する
CSSborder-radius角丸を指定する
CSStransition変化をなめらかにする
CSS:hoverマウスが重なったときの状態を指定する

最初に大切なのは、CSSはセレクタ、プロパティ、値の組み合わせで書くということです。

どの要素に適用するのかをセレクタで選び、何を変えるのかをプロパティで指定し、どのように変えるのかを値で指定します。

CSSを学ぶときに意識したいこと

CSSは、見た目を自由に変えられる便利な技術です。ただし、最初からすべてのプロパティを覚える必要はありません。

まずは、文字色、背景色、文字サイズ、中央寄せ、余白、ボタンの装飾など、よく使う基本から少しずつ慣れていくとよいでしょう。

意識したいこと内容
HTMLとCSSの役割を分ける構造はHTML、見た目はCSS
セレクタを正しく選ぶどの要素に適用するかを明確にする
プロパティと値をセットで考える何をどう変えるかを理解する
内部スタイルで練習する1ファイルで動きを確認しやすい
実務では外部スタイルを使う複数ページを管理しやすい
読みやすさを優先する色や動きを使いすぎない

CSSを使えるようになると、HTMLだけでは表現しにくかったデザインができるようになります。

背景色を変える、見出しを目立たせる、ボタンを分かりやすくする、余白を整える。このような小さな装飾の積み重ねが、読みやすく使いやすいWebページにつながります。

CSSは、Webページに表情を与えるための大切な技術です。HTMLで作った構造にCSSでデザインを加えることで、ページはより伝わりやすく、魅力的なものになります。