
今回はCSS( Cascading Style Sheets )を使って、表(テーブル)をおしゃれに装飾したいと思います。
CSSの基本を理解する
CSS( Cascading Style Sheets )とは、Webサイトをデザインするためのマークアップ言語です。CSSは、セレクタ・プロパティ・バリューの構成で成り立っていることを最初に理解してください。

マークアップ言語には、HTMLのほかにSGML、XHTML、XMLなどがあります。
CSSの書き方 … セレクタ { プロパティ : 値 }
- セレクタ(selector)とは、スタイルをHTMLのどの要素に適用するのかを決める役割になります。
- 次のプロパティとは、どんな種類のスタイルを適用するのかを決める役割になります。
- 最後のバリューとは、どのように適用するか値を決める役割になります。
テーブルをおしゃれに装飾する
余白を設定する
- table th, table td {
- padding: 20px 10px;
- }
説明:paddingプロパティを使うことで、文字の周りに余白を入れることができます。例えば、値を”padding 20px 10px”とした場合は、上下に余白20px、左右に余白10pxが設定されます。

例文では、”table th”と指定しています。親のtableタグと子のthタグの親子セレクタを指定している意味となります。仮にthタグだけ指定することもでき、親と子の両方を指定した結果、どのような違いは生まれるのか一緒に考えてみましょう。
セレクタの親子で指定
以下をWebブラウザで表示した場合は、画面に表示される文字色は赤と青のどちかになりますか?
- <style>
- div span {
- color: red;
- }
- span {
- color: blue;
- }
- </style>
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- <span>文字色は何?</span>
- <div><span>文字色は何?</span></div>

10行目の文字色は何になるのだろう?また、11行目の文字色は何色になるのだろうか…?
線の種類・太さ・色を指定する
- table th, table td {
- border: solid 1px black;
- }
説明:borderプロパティを使うことで、テーブルの枠線が指定できます。例えば、値を”solid 1px black”した場合は、実線で太さは1pxで黒色の線となります。
境界線がない表を作る
- table {
- border-collapse: collapse;
- }
- table th, table td {
- border: solid 1px black;
- }
- ~~~~~~~~~~~~~~
- <table>
- <tr><th>項目1</th><th>項目2</th></tr>
- <tr><td>データ1</td><td>データ2</td></tr>
- </table>
説明:border-collapseプロパティを使って、セルの境界線を空けるか空けないかの指定ができます。例えば、値を”collapse”にした場合は、境界線がない表を作成できます。ちなみに、初期値は”separate”が指定されています。
表の偶数行と奇数行で背景色を変える
- tr:nth–child(2n+1){ background:red; }
- tr:nth–child(2n){ background:blue; }
説明:nth-child(n)は、疑似クラスにあたり、ある要素の隣接している子要素を、1から数えてn番目にあたる要素に限定してスタイルを指定することができます。例えば、tr: nth-child(2)とすれば、2番目の<TR>タグに特定のスタイルを指定します。例文では、奇数行の背景を赤、偶数行の背景を青になるようにスタイルを指定しています。
疑似クラスとは
擬似クラスとは、指定の要素が特定の状態である場合に、スタイルを適用できる指定方法です。例えば、マウスホバー(マウスカーソルを対象物の上に重ねる)した際にリンクの色が変化する装飾を指定する場合は、a.hover { color: blue; }とすることで、マウスカーソルをリンク上に合わせると、青色に変化させることができます。後日、疑似クラスについて細かい説明をしていきます。
今日の問題
まず始めに、以下をメモ帳で記述し、CSS_Chapter03.htmlファイルとして保存してください。
- <html>
- <head>
- <meta charset=”UFT-8″>
- <title>ここページのタイトルです</title>
- <style>
- H2 { color: blue }
- </style>
- <meta name=”description” content=”ページの要約文”>
- </head>
- <body>
- <table>
- <thead>
- <tr>
- <td></td>
- <td scope=”col”>内容</td>
- <td scope=”col”>月謝</td>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>はじめてピアノ教室</td>
- <td class=”txt”>はじめての方へのピアノレッスン</td>
- <td class=”price”>5,000円</td>
- </tr>
- <tr>
- <td>ボーカル教室</td>
- <td class=”txt”>ボイトレを中心としたレッスン</td>
- <td class=”price”>7,000円</td>
- </tr>
- </tbody>
- </table>
- </body>
- </html>
問1
テーブルに対し、余白を設定してください。余白は上下20px、左右10pxとしてください。
問2
境界線が無いテーブルを作成してください。
問3
theadタグのtdタグに対し、背景色を青色にしてください。
問4
表の偶数行を灰色にしてください。
宿題
クラス(=price)とクラス(=txt)を使って、テキストを装飾してください。
コメント