テーブル(<table>)の見た目をCSSで装飾し、枠線・背景色・行の区切り・整列などの基本的な表デザインを学びます。また、行ごとのスタイル分けに使える :nth-child() セレクターの使い方も体験します。
作成ファイル・保存場所
html-basicフォルダの中に以下の2つのファイルを用意してください- HTMLファイル:
06.htmlHTMLファイルはコピーして使用可 - CSSファイル:
style06.css(今回新たに作成)
- HTMLファイル:
htmlは下記からコピー
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>課題06</title>
</head>
<body>
<h1>1週間の予定表</h1>
<table>
<tr>
<th>日付</th>
<th>予定</th>
</tr>
<tr>
<td>月曜日</td>
<td>HTMLの復習(基本構造・タグの確認)</td>
</tr>
<tr>
<td>火曜日</td>
<td>CSSの基礎(文字や背景のスタイル指定)</td>
</tr>
<tr>
<td>水曜日</td>
<td>レイアウト練習(余白・位置調整・リスト)</td>
</tr>
<tr>
<td>木曜日</td>
<td>画像とリンクの活用、figureタグの復習</td>
</tr>
<tr>
<td>金曜日</td>
<td>ミニ作品づくり(自己紹介ページをアレンジ)</td>
</tr>
</table>
</body>
</html>
指示
以下の条件に従って、CSSファイルを作成・適用してください。
06.htmlにstyle06.cssを外部CSSとして読み込んでください。- 表全体に枠線と余白を設定してください。
- 見出し(
<th>)に背景色や中央揃えなどを設定してください。 - 偶数行の
<tr>に薄い背景色を設定してください(tr:nth-child(even)を使用) - リセット、
<body>,<h1>要素は従来通りの内容で、任意の指定とします。
チェックポイント
- テーブルの罫線(border)が正しく表示されているか
- ヘッダー(
th)の背景色・整列が適切か - 偶数行に背景色が適用されて読みやすくなっているか
- セレクター(
nth-child)が正しく使われているか - 表のレイアウト全体が見やすく整っているか
今回使うCSSプロパティのポイント
テーブル構造・装飾
| プロパティ | よく使う値 | 説明 |
|---|---|---|
| border-collapse | collapse | セルの枠線を重ねてスッキリ表示 |
| border | 1px solid #333 | セルの線の太さ・色・スタイルを指定 |
| padding | 0.8em | セル内の余白を調整 |
| letter-spacing | 0.15rem | 文字間のスペースを広げて見やすくする |
擬似クラス
| 擬似クラス | 説明 | 例 |
|---|---|---|
| :nth-child(even) | 偶数番目の要素にスタイルを適用 | tr:nth-child(even) td { background-color: #e1e1e1; } |
| :nth-child(odd) | 奇数番目の要素にスタイルを適用 | tr:nth-child(odd) td { background-color: #ffffff; } |
| :nth-child(3) | 指定した番号の要素にだけ適用 | tr:nth-child(3) td { background-color: #ffcccc; } |
| :first-child | 最初の子要素だけに適用 | td:first-child { text-align: center; } |
スタイルの指定内容
tableに指定するスタイル- 幅:80%
- 枠線結合:
border-collapse: collapse - 上下余白:
margin: 1em auto;(中央揃え) - 外枠:
2px solid #000000 - 文字の間隔を広げる:
letter-spacing: 0.15rem
th, tdに共通で指定するスタイル- 枠線:
1px solid #3b3b3b - 内側余白:
0.8em
- 枠線:
thに追加指定- 背景色:
#c7c7c7 - 中央揃え(
text-align: center) - フォント太字(
font-weight: bold)
- 背景色:
- 左側(曜日)列に指定
td:first-child { text-align: center; }を使用して中央揃えにする
tr:nth-child(even)に指定するスタイル- 偶数行の
tdに背景色:#e1e1e1
- 偶数行の
解答例(CSS)
この課題を通じて、表の整列と視認性の高いデザインの基本を習得しましょう!
/* --- 必要に応じてリセットCSS(省略可能) --- */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
/* --- body や h1 は従来通りの任意指定 --- */
body {
font-family: sans-serif;
font-size: 16px;
line-height: 1.8;
padding: 20px;
background-color: #fafafa;
}
h1 {
text-align: center;
margin-bottom: 1.5em;
color: #333;
}
/* --- テーブル全体 --- */
table {
width: 80%;
border-collapse: collapse;
margin: 1em auto;
border: 2px solid #000000;
letter-spacing: 0.15rem;
}
/* --- 表の見出しセルとデータセル --- */
th,
td {
border: 1px solid #3b3b3b;
padding: 0.8em;
}
/* --- ヘッダーセル(th) --- */
th {
background-color: #c7c7c7;
text-align: center;
font-weight: bold;
}
/* --- 偶数行に薄い背景色をつけてストライプ化 --- */
tr:nth-child(even) td {
background-color: #e1e1e1;
}
td:first-child {
text-align: center;
}
表示例(画面イメージ)


