- HTML構造に対して、親→子の流れを意識したクラス名を考える練習を行う
- 命名の工夫で、CSSの保守・管理がしやすくなることを実感する
作成ファイル・保存場所
前回作成したcss-class フォルダに以下のファイルを作成しましょう。
今回トレーニングするための HTMLファイルをダウンロードします。そのファイルに classの設定を行い、そのclassに対して、CSS ファイルを作成し、プロパティの設定を行います。
| ファイル名 | 内容 |
|---|---|
| css-class02.html | クラス名を追加するためのHTMLファイルを使用 コピーしてご利用ください。 |
| style-class02.css | 自作CSSファイル(リンク設定を行う) |
Classをつける前の、HTMLコードは下記をコピーして使用してください。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>HTML課題11</title>
</head>
<body>
<header>
<h1>My Website</h1>
<nav>
<ul>
<li><a href="#">トップページ</a></li>
<li><a href="#services">サービス紹介</a></li>
<li><a href="#contact">お問い合わせ</a></li>
</li>
</ul>
</nav>
</header>
<figure>
<picture>
<!-- スマホサイズで縦長画像 -->
<source media="(max-width: 600px)" srcset="https://dummy.kobeya.com/?width=420&height=1080&text=SP">
<!-- PCサイズで横長画像 -->
<img src="https://dummy.kobeya.com/?width=1440&height=600&text=PC 1440*600" width="1440" height="600"
alt="キービジュアルの説明文">
</picture>
</figure>
</body>
</html>
※ CSSファイルはエディタでstyle-class02.cssという名前で、新規作成。
以下のように <head> にリンクしてください
<link rel="stylesheet" href="style-class02.css">
チェックポイント
- クラス名を見て「どこにある要素か」「どんな役割か」が想像できるか
- 親要素と関連づいた命名ができているか(例:
nav-list-item-a) - クラスを活かして、CSS装飾がスムーズに書けるか
指示
- ダウンロードしたファイル(css-class02.html)を開く
- 以下のように、構造を意識したクラス名を追加してください
| 要素 | クラス名の例 | 補足 |
|---|---|---|
<header> | header | header要素領域 |
h1 | header-title | h1要素 |
<nav> | header-nav | ヘッダー内のナビゲーション |
<ul> | nav-list | ナビゲーション全体のリスト |
<li> | nav-list-item | 各ナビゲーション項目 |
<a> | nav-link | ナビのリンクそのもの |
figure | keyvisual | キービジュアル |
HTMLにclassをつけた参考例
HTMLに class をつけた参考例です。
この「css-class02.html」は、クラス名を設定した一例として作成しています。
正解というわけではありませんが、参考として、自分のファイルと見比べてみましょう。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>class02</title>
<link rel="stylesheet" href="style-class02.css">
</head>
<body>
<header class="header">
<h1 class="header-title">My Website</h1>
<nav class="header-nav">
<ul class="nav-list">
<li class="nav-list-item">
<a href="#" class="nav-link">トップページ</a>
</li>
<li class="nav-list-item">
<a href="#services" class="nav-link">サービス紹介</a>
</li>
<li class="nav-list-item">
<a href="#contact" class="nav-link">お問い合わせ</a>
</li>
</ul>
</nav>
</header>
<figure class="keyvisual">
<picture>
<!-- スマホサイズで縦長画像 -->
<source media="(max-width: 600px)" srcset="https://dummy.kobeya.com/?width=420&height=1080&text=SP">
<!-- PCサイズで横長画像 -->
<img src="https://dummy.kobeya.com/?width=1440&height=600&text=PC 1440*600" width="1440" height="600"
alt="キービジュアルの説明文">
</picture>
</figure>
</body>
</html>
- クラスを使って、以下のようなスタイルを
style-class02.cssに書いてみましょう:
応用ポイント
.親名-子名の命名パターンは、BEMのblock__elementに近く、後の課題にもつながります- 複雑な構造ではなくても、整理されたクラス設計が見た目にも管理にも効果があることを意識しましょう
完成イメージ


CSS解答例
解答例ですので、他の記述方法でも問題ありません。自身のコードと照らし合わせみましょう
/* 初期設定(モバイルベース) */
html {
font-size: 100%;
box-sizing: border-box;
scroll-behavior: smooth;
}
*,
*::before,
*::after {
box-sizing: inherit;
margin: 0;
padding: 0;
}
body {
font-size: 14px;
line-height: 1.5;
font-family: sans-serif;
background-color: #ffffff;
color: #333;
}
/* ヘッダー */
.header {
background-color: #03671e;
padding: 20px 0;
}
.header-title {
color: #fff;
font-size: 1.5rem;
text-align: center;
margin-bottom: 20px;
}
/* ナビゲーション */
.nav-list {
display: flex;
list-style: none;
gap: 12px;
justify-content: center;
}
.nav-link {
text-decoration: none;
color: #fff;
}
.nav-link:hover {
background-color: #333;
}
/* キービジュアル */
.keyvisual {
width: 100%;
}
.keyvisual img {
width: 100%;
height: auto;
display: block;
margin-bottom: 60px;
object-fit: cover;
max-height: 70vh;
}
/* ─────────────────────── */
/* 600px以上(タブレット〜PC)向けのスタイル */
@media (min-width: 601px) {
body {
font-size: 16px;
line-height: 1.8;
}
.header {
padding: 30px 0;
}
.header-title {
font-size: 2rem;
margin-bottom: 30px;
}
.nav-list {
gap: 20px;
}
.keyvisual {
max-width: 1440px;
}
.keyvisual img {
max-height: none;
margin-bottom: 100px;
}
}

