完成イメージ
この課題では、Webページの最下部にあたる「フッター」エリアを作成します。
住所や電話番号、著作権情報、ページトップへのリンクなど、実用的な情報を整理し、意味のあるHTMLタグと適切なクラス名でマークアップする力を身につけます。左がSP 右がPCです


作成ファイル・保存場所
前回作成したcss-class フォルダに以下のファイルを作成しましょう。
今回トレーニングするための HTMLファイルをダウンロードします。そのファイルに classの設定を行い、そのclassに対して、CSS ファイルを作成し、プロパティの設定を行います。
| ファイル名 | 内容 |
|---|---|
| css-class05.html | クラス名を追加するためのHTMLファイルを使用 コピーしてご利用ください。 |
| style-class05.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>Document</title>
<link rel="stylesheet" href="style-class05.css">
</head>
<body id="top">
<footer>
<div>
<a href="#top" aria-label="ページの先頭に戻る">▲</a>
</div>
<div>
<p><a href="#top">Web制作教室 ABCスクール</a></p>
<address>
<p>〒802-0000 福岡県北九州市小倉北区サンプル町1-2-3</p>
<p>TEL: 093-000-1234</p>
</address>
<p>© 2025 Web制作教室 ABCスクール</p>
</div>
</footer>
</body>
</html>
チェックポイント
<footer>要素を使用し、ページの終端を適切にマークアップしているかaddressタグで住所・連絡先を正しく囲っているかtel:リンクを使い、スマートフォンでの利便性に配慮しているか- ページトップへ戻るボタンがあり、レイアウト上の工夫がされているか
.footer-titleや.footer-addressなど、クラス名が意味をもって整理されているか- モバイルファーストで記述し、PC向けには
@mediaで拡張できているか
指示
- ダウンロードしたファイル(css-class05.html)を開く
- 以下のように、構造を意識したクラス名を追加してください
| 要素 | クラス名(例) | 補足説明 |
|---|---|---|
<footer> | footer | フッター全体の構造を示すセクション |
<div> | container / footer-container | 幅制限と中央揃えを行う共通レイアウト枠 |
<p> | footer-title | サイト名・ロゴに相当するリンクを含むタイトル部分 |
<address> | footer-address | 住所や電話番号など連絡先を意味的に囲むブロック |
<p> | footer-info | 住所・電話番号などの情報行 |
<a> | (tel:リンク) | スマホで直接電話をかけられるようにする |
<div> | backtoTop | ページ上部に戻るためのボタンブロック |
<a> | (中のリンク) | 「▲」などの記号でページトップに移動するボタン |
<p> | footer-copyright | 著作権表記。小さな文字で年とブランド名を記述 |
HTMLにclassをつけた参考例
HTMLに class をつけた参考例です。クラス名を設定した一例として作成しています。
正解というわけではありませんが、参考として、自分のファイルと見比べてみましょう。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<link rel="stylesheet" href="style-class05.css">
</head>
<body id="top">
<footer class="footer">
<div class="backtoTop">
<a href="#top" aria-label="ページの先頭に戻る">▲</a>
</div>
<div class="container footer-container">
<p class="footer-title"><a href="#top">Web制作教室 ABCスクール</a></p>
<address class="footer-address">
<p class="footer-info">〒802-0000 福岡県北九州市小倉北区サンプル町1-2-3</p>
<p class="footer-info">
TEL: <span class="mobile-only"><a href="tel:0930001234">093-000-1234</a></span>
<span class="desktop-only">093-000-1234</span>
</p>
</address>
<p class="footer-copyright"><small>© 2025 Web制作教室 ABCスクール</small></p>
</div>
</footer>
</body>
</html>
- クラスを使って、以下のようなスタイルを
style-class02.cssに書いてみましょう:
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;
}
address {
font-style: normal;
}
section {
padding: 20px 0;
}
/* フッター */
.footer {
background-color: #2d0202;
color: #fff;
position: relative;
text-align: center;
padding: 20px 0;
}
.footer-title a {
font-size: 1.5rem;
color: #fff;
text-decoration: none;
word-break: break-word;
}
.footer-title a:hover {
color: rgb(251, 143, 19);
}
.footer-address {
margin: 1rem 0;
}
.footer-info a {
color: #fff;
text-decoration: none;
}
.footer-copyright {
font-size: 0.75rem;
margin-top: 1rem;
}
/* 「上へ戻る」ボタン(モバイル) */
.backtoTop {
text-align: center;
margin-top: 1rem;
}
.backtoTop a {
position: absolute;
right: 1rem;
top: 1rem;
width: 40px;
height: 40px;
text-align: center;
line-height: 40px;
color: #fff;
background-color: rgb(96, 47, 5);
text-decoration: none;
border-radius: 50vh;
font-size: 1rem;
}
.backtoTop a:hover {
background-color: rgb(251, 143, 19);
}
/* モバイル専用表示 */
.mobile-only {
display: inline;
}
.desktop-only {
display: none;
}
/* =========================
PC向けスタイル(拡張)
========================= */
@media (min-width: 768px) {
body {
font-size: 16px;
line-height: 1.8;
}
.footer-title a {
font-size: 2rem;
}
.backtoTop a {
width: 60px;
height: 60px;
line-height: 60px;
font-size: 1.5rem;
}
.mobile-only {
display: none;
}
.desktop-only {
display: inline;
}
}
