完成イメージ(参考)
- 既存のHTML構造に対して適切なクラス名を追加する
- HTMLを修正せずに見た目を変えられるクラス指定の柔軟性を理解する
- セクション単位やパーツ単位でのクラス設計の第一歩を学ぶ

画像は https://dummy.kobeya.com/ を使用してOKです。
クラスを適用することで、構造はそのままでも見た目が変わる体験をしてみましょう。
作成ファイル・保存場所
css-class フォルダを作成し、以下のファイルを配置しましょう。
まずは、今回トレーニングするための HTMLファイルをダウンロードします。そのファイルに classの設定を行い、そのclassに対して、CSS ファイルを作成し、プロパティの設定を行います。
| ファイル名 | 内容 |
|---|---|
| css-class01.html | クラス名を追加するためのHTMLファイルを使用 コピーしてご利用ください。 |
| style-class01.css | 自分で作成するCSSファイル |
Classをつける前の、HTMLコードは下記をコピーして使用してください。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>class01</title>
</head>
<body>
<!-- ヘッダー -->
<header>
<h1>Webデザイン通信</h1>
</header>
<!-- メインコンテンツ -->
<main>
<!-- 最新記事セクション -->
<section>
<h2>最新記事</h2>
<article>
<h3>CSSグリッドの基本</h3>
<p>CSSグリッドは、レイアウトを柔軟に作れる強力な機能です。この記事では基本構文を紹介します。</p>
<img src="https://dummy.kobeya.com/?width=300&height=200&text=CSS+Grid" alt="CSSグリッドの解説画像">
</article>
<article>
<h3>Figmaでのプロトタイピング</h3>
<p>Figmaはデザインと共有が簡単なツールです。今回はプロトタイピング機能の使い方を解説します。</p>
<img src="https://dummy.kobeya.com/?width=300&height=200&text=Figma+UI" alt="Figmaの解説画像">
</article>
</section>
<!-- サイドコンテンツ -->
<aside>
<h2>お知らせ</h2>
<ul>
<li>4月:春の短期講座 開講</li>
<li>5月:新しい教材を追加予定</li>
<li>6月:ポートフォリオ作品展 開催</li>
</ul>
</aside>
</main>
<!-- フッター -->
<footer>
<p><small>© 2025 MySite</small></p>
</footer>
</body>
</html>
※ CSSファイルは VSCode やテキストエディタで新規作成し、<link rel="stylesheet" href="style-class01.css"> をHTML内の <head> に追加しましょう。
チェックポイント
- 各エリア(ヘッダー/メイン/サイド/フッター)に分かりやすいクラスが付けられているか
- CSSのクラス名とHTMLがしっかり対応しているか
- クラスを使って、レイアウトや背景色の指定ができているか
指示
- css-class01.htmlを開く
- 以下の箇所にクラス名を追加してください。
クラス名は自由に決めてOKですが、意味が分かる名前にするのがポイントです。
| 要素タグ | クラス名の例 | 用途の説明 |
|---|---|---|
<header> | class="header" | サイト全体のヘッダー領域 |
<main> | class="content" | メインコンテンツ領域 |
<section> | class="news-section" | 記事一覧をまとめたセクション |
<article> | class="news" | 各記事の個別ブロック |
<aside> | class="sidebar" | お知らせや補足情報エリア |
<footer> | class="footer" | フッター領域 |
HTMLにclassをつけた参考例
HTMLに class をつけた参考例です。
この「css-class01.html」は、クラス名を設定した一例として作成しています。
正解というわけではありませんが、参考として、自分のファイルと見比べてみましょう。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>CSS Class練習 01</title>
<link rel="stylesheet" href="style-class01.css">
</head>
<body>
<!-- ヘッダー -->
<header class="header">
<h1>Webデザイン通信</h1>
</header>
<!-- メインコンテンツ -->
<main class="content">
<!-- 最新記事セクション -->
<section class="news-section">
<h2>最新記事</h2>
<article class="news">
<h3>CSSグリッドの基本</h3>
<p>CSSグリッドは、レイアウトを柔軟に作れる強力な機能です。この記事では基本構文を紹介します。</p>
<img src="https://dummy.kobeya.com/?width=300&height=200&text=CSS+Grid" alt="CSSグリッドの解説画像">
</article>
<article class="news">
<h3>Figmaでのプロトタイピング</h3>
<p>Figmaはデザインと共有が簡単なツールです。今回はプロトタイピング機能の使い方を解説します。</p>
<img src="https://dummy.kobeya.com/?width=300&height=200&text=Figma+UI" alt="Figmaの解説画像">
</article>
</section>
<!-- サイドコンテンツ -->
<aside class="sidebar">
<h2>お知らせ</h2>
<ul>
<li>4月:春の短期講座 開講</li>
<li>5月:新しい教材を追加予定</li>
<li>6月:ポートフォリオ作品展 開催</li>
</ul>
</aside>
</main>
<!-- フッター -->
<footer class="footer">
<p><small>© 2025 MySite</small></p>
</footer>
</body>
</html>
- クラスを使って、以下のようなスタイルを
style-class01.cssに書いてみましょう- ヘッダーに背景色と上下の余白をつける
- セクション(記事一覧)とアサイドを並べる準備として、
display: flexを使ってみる - 各記事(
article)に枠線や背景色などの装飾を加える - フッターの文字を中央寄せにし、文字サイズも少し小さめに調整する
応用ポイント
- 今後のために「命名規則」(例:
news-section,site-header,main-areaなど)についても調べてみよう - BEM記法や命名ルールに興味がある場合は
css-class03で詳しく学びます!
CSS解答例
解答例ですので、他の記述方法でも問題ありません。自身のコードと照らし合わせみましょう
/* 全体 */
body {
margin: 0;
font-family: "Segoe UI", sans-serif;
background-color: #f5f7f9;
color: #333;
}
/* ヘッダー */
.header {
background-color: #4aaf7c;
padding: 1.5em;
color: #fff;
text-align: center;
}
.header h1 {
margin: 0;
font-size: 1.8rem;
}
/* メインコンテンツレイアウト */
.content {
display: flex;
gap: 2rem;
padding: 2em;
}
/* 最新記事セクション */
.news-section {
flex: 2;
}
.news-section h2 {
margin-top: 0;
border-left: 4px solid #4aaf7c;
padding-left: 0.5em;
font-size: 1.4rem;
}
/* 記事ブロック */
.news {
background-color: #fff;
border: 1px solid #ddd;
border-radius: 8px;
padding: 1em;
margin-bottom: 1.5em;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}
.news h3 {
margin-top: 0;
color: #2e7d57;
}
.news img {
max-width: 100%;
border-radius: 6px;
margin-top: 0.5em;
}
/* サイドバー */
.sidebar {
flex: 1;
background-color: #e9f7f0;
padding: 1em;
border-radius: 6px;
}
.sidebar h2 {
font-size: 1.2rem;
margin-top: 0;
}
.sidebar ul {
padding-left: 1.2em;
}
/* フッター */
.footer {
background-color: #333;
color: #fff;
text-align: center;
padding: 1em;
font-size: 0.8rem;
}
