これは学習用の資料です。提出課題とは別ファイルです。 提出するのは
lesson-07.htmlとstyle-07.cssの2つだけです。
元の「Web Craft School」のページを、濃紺のメイン画面・コーラル色のボタン・白いカードを使う親しみやすいデザインに変更しました。授業で扱った「企画→AIへの指示→生成と調整→確認」の考え方に従い、もとの内容(Webデザインの入門コース、10個のカリキュラム)はほぼ残しています。
このページは、HTMLとCSSの2ファイルで動きます。外部の写真や画像ファイルは不要です。Google Fontsだけはネットにつながると読み込まれ、つながらない場合は端末内のフォントで表示されます。
lesson-07.html と style-07.css
を同じフォルダに置きます。lesson-07.html
を選びます。lesson-07.html をブラウザで開きます。VS Codeの Live
Server 拡張機能を使ってもかまいません。CSSが反映されない場合:HTMLの
<link rel="stylesheet" href="style-07.css">
とファイル名が一致しているか、2ファイルが同じフォルダにあるかを確認します。
<h2>アイデアを、Webのかたちに。</h2>
<h2>
は「見出しを始める」タグ(開始タグ)です。</h2>
は「見出しを終える」タグ(終了タグ)です。<a href="#details" class="cta-button">カリキュラムを見る</a>
<a> はリンクを作るタグです。href="#details" は、「id="details"
がついた場所に移動する」という意味です。class="cta-button"
は、CSSからこのリンクのデザインを指定するための目印です。class
は複数の要素に同じ名前を付けられます。id
は原則として同じページ内で重複させません。| コード | 何のため? |
|---|---|
<!DOCTYPE html> |
ブラウザに「HTML5の文書です」と伝える宣言 |
<html lang="ja"> |
このページの主な言語が日本語であると指定 |
<head> |
画面に直接出ない、ページ設定を入れる場所 |
<meta charset="UTF-8"> |
日本語などの文字が正しく表示されるよう文字コードを指定 |
<meta name="viewport" ...> |
スマホ画面に合わせて表示できるようにする設定 |
<title> |
ブラウザのタブに表示されるページ名 |
<link ...fonts.googleapis.com...> |
Webフォントの読み込み |
<link rel="stylesheet" href="style-07.css"> |
外部CSSファイルを読み込む重要な一行 |
<body id="top"> |
画面に表示する本文全体。top
はページ上端に戻るための目印 |
| HTMLの部分 | 意味 | 今回の変更 |
|---|---|---|
<header class="main-header"> |
ページ上部のヘッダー | サイト名とメニューを整理 |
<a class="brand" href="#top"> |
サイト名を押すと上部に戻るリンク | 文字の一部を別色にした |
<nav> |
ページ内の移動メニュー | 未設定リンク # を、ページ下部の #contact
に変更 |
<ul> と <li> |
順番なしリストとその項目 | メニューの項目に利用 |
<section class="hero"> |
ページ冒頭の大きな紹介エリア | 見出しと説明文を読みやすく変更 |
<span class="text-accent"> |
文の一部分だけを囲う | 「Webデザイン」を別色にするため使用 |
<p> |
文章の段落 | 説明文を改善 |
<section id="course"> |
コース紹介エリア | レイアウトを2列に整理 |
<div class="code-window"> |
画面の一部をまとめる箱 | 画像の代わりにHTMLでコード風の飾りを制作 |
<section id="details"> |
カリキュラムのエリア | 10項目をカードで表示 |
<div class="module-card"> |
1つの学習項目を包む箱 | 白いカードのデザインへ変更 |
<footer id="contact"> |
最下部エリア | サイト名と説明を整理 |
div とは?
そのままでは特別な見た目を持たず、関連する内容をまとめる「箱」です。CSSを適用したり、横並びにしたりする際に使います。
<!-- ... --> とは?
HTMLのコメントです。コードを読む人へのメモで、通常、画面には表示されません。
< と >
とは? 画面に < と >
を文字として表示するための書き方です。元ファイルには文章の中に
<ul>、<ol>、<table>
がそのまま入っていました。ブラウザがHTMLタグと勘違いする可能性があるため、今回は
<ul> のように変更しました。
.cta-button {
background: var(--color-accent);
color: #fff;
padding: 14px 30px;
border-radius: 100px;
}
.cta-button:セレクタ。class="cta-button"
の要素を対象にします。先頭の .
は「クラス」を意味します。{ ... }:この要素に適用するルールをまとめます。background:背景を指定します。color:文字色を指定します。padding:箱の内側の余白。14px 30px
は「上下14px、左右30px」。border-radius:角の丸み。大きくすると、丸いボタンになります。;:1つの指定の区切りです。CSSでは プロパティ名: 値; が基本です。
:root {
--color-accent: #ec765c;
--color-teal: #1f897f;
}
.cta-button {
background: var(--color-accent);
}
:root:ページ全体で使う変数を定義しやすい場所です。--color-accent:自分でつけた「色の名前」。--
から始まります。#ec765c:16進数の色コード。コーラル系の色です。var(--color-accent):定義しておいた色を呼び出します。まず試すこと: --color-accent: #ec765c;
を --color-accent: #7952b3;
に変更すると、ボタンなどが紫色に変わります。数か所を一括して変えられるのがメリットです。
| コード・プロパティ | 何が起こるか | 今回の使い道 |
|---|---|---|
* { ... } |
すべての要素を対象にする | デフォルトの余白をリセット |
box-sizing: border-box |
指定した幅に内側余白・枠線を含める | 幅の計算を簡単にする |
margin: 0 |
箱の外側の余白をなくす | 余分な空きをなくす |
line-height: 1.8 |
行と行の間隔 | 長い文章を読みやすくする |
.container |
共通の横幅制限 | 文章が横に広がりすぎないようにする |
max-width: 1120px |
幅の上限 | 大画面でも読みやすさを保つ |
margin: 0 auto |
左右の余白を自動で同じにする | コンテンツを中央寄せ |
display: flex |
子要素を並べやすくする | ヘッダーのサイト名・メニュー |
justify-content: space-between |
要素間に空間を配置 | サイト名とメニューを両端へ |
align-items: center |
交差方向の中央に揃える | ヘッダー内の高さを揃える |
position: sticky と top: 0 |
スクロールしても一定位置にとどまる | ヘッダーを画面上部に表示 |
z-index: 10 |
重なり順の調整 | ヘッダーを他の要素より前面に |
background: linear-gradient(...) |
2色以上をなめらかにつなぐ背景 | ヒーローの濃紺グラデーション |
text-align: center |
文字を中央揃え | 大きな見出しやカリキュラム見出し |
font-size |
文字の大きさ | 見出しを目立たせる |
font-weight: 800 |
文字の太さ | サイト名・大見出し |
letter-spacing |
文字同士の間隔 | 英語の小見出し |
display: grid |
2次元のマス目に配置 | 紹介欄・カリキュラムカード |
grid-template-columns: 1fr 1fr |
同じ幅の2列 | 説明文とコード風イラスト |
repeat(3, minmax(0, 1fr)) |
同じ幅の3列 | カードを3列に並べる |
gap: 20px |
子要素同士の間隔 | カードとカードの間 |
border: 1px solid ... |
1pxの実線の枠 | カードの輪郭 |
border-radius: 14px |
角を丸くする | 柔らかなカードの印象 |
box-shadow |
影を付ける | 背景から浮いて見えるようにする |
transition |
変化をなめらかにする | ボタンやカードのホバー効果 |
:hover |
マウスが要素の上にある状態 | カードを少し持ち上げる |
transform: translateY(-4px) |
上に4px移動 | ホバー時の視覚効果 |
overflow: hidden |
はみ出す部分を隠す | コード風ウィンドウの角を揃える |
overflow: auto |
必要な場合にスクロール可能にする | 狭い画面でコードがはみ出さないように |
white-space: nowrap |
文字を改行させない | 英語のブランド名やコード表示 |
.main-header {
background-color: rgba(255, 253, 248, 0.96);
position: sticky;
top: 0;
z-index: 10;
}
.main-header は HTML の
<header class="main-header"> を指します。rgba(255, 253, 248, 0.96)
は赤(R)・緑(G)・青(B)・透明度(A)。最後の 0.96
はほぼ不透明です。position: sticky
はスクロールしてもヘッダーを上部に残す設定です。top: 0 はその上端の位置です。z-index: 10
は重なる場合に前面に表示されやすくします。@media (max-width: 600px) {
.module-grid { grid-template-columns: 1fr; }
}
これは「画面の幅が 600px以下 なら、この中のルールを使う」という意味です。大きな画面ではカードが3列、中くらいの画面では2列、小さなスマホでは1列になります。これをレスポンシブデザインと呼びます。
.hero::before と .hero::after
は、HTMLに新しいタグを書かずに、CSSで装飾用の丸い線を追加する仕組みです。content: ''
が必要で、position: absolute
で置く場所を指定しています。なくてもページは動く装飾なので、初心者は後回しでかまいません。
| 箇所 | 変更前 | 変更後 | 理由 |
|---|---|---|---|
| 色 | 青・グレー・暗いカード | 濃紺、コーラル、青緑、白 | 色の役割を明確にし、カードの文章を読みやすくするため |
| ヒーロー | 「HTML & CSS 入門コース」が中心 | 「はじめてのWebデザイン」と短い説明 | 初めて見る人にも内容が伝わるように |
| ボタン | 角が少し丸い青色 | しっかり丸いコーラル色 | 最も押してほしい場所を目立たせるため |
| コース紹介 | 英文のプレースホルダー | HTMLで作るコード風の図 | 未完成に見える部分をなくし、追加画像も不要にするため |
| カリキュラム | ダーク背景のカード、一部横長 | 明るい均等幅のカード | 情報を順番に読みやすくするため |
| メニュー | 「入学手続き」のリンク先が # |
「お問い合わせ」でページ下部に移動 | リンクを押したときの移動先を用意するため |
| 小画面表示 | 992px以下を中心に調整 | 850px・600pxで段階的に変更 | スマートフォンで見やすくするため |
| HTMLの文章 | <ul> などが生の文字列 |
<ul> に変更 |
HTMLタグとして誤認されないようにするため |
※ 画面下部の「お問い合わせ」は外部連絡フォームではありません。ページのフッターへ移動する内部リンクです。今回の課題では外部サービスやJavaScriptを使わず、HTML/CSSの改善に絞っています。
style-07.css の先頭近くにある
--color-accent: #ec765c; を
--color-accent: #7952b3;
に変更して保存。どこが紫になるか確認します。
lesson-07.html で <h1>はじめての...
を見つけ、「はじめての」を「自分でつくる」に書き換えて保存します。HTMLを編集すると文章自体が変わることを確認しましょう。
style-07.css の .module-card にある
border-radius: 14px; を border-radius: 2px;
に変更してみます。角張ったデザインになります。
.module-card の padding: 26px 24px; を
padding: 38px 28px;
に変更します。カード内側の空間が増えます。
.module-grid の
grid-template-columns: repeat(3, minmax(0, 1fr)); を
repeat(2, minmax(0, 1fr));
にすると、広い画面で2列になります。下にある @media
の指示が狭い画面では優先されることにも注目してください。
| 症状 | 最初に見るところ |
|---|---|
| 色が変わらない | CSSの保存、ファイル名、HTMLの href="style-07.css" |
| 文字や見た目が崩れる | CSSの { } と ;
の書き忘れ |
| 一部の内容が消える | HTMLの開始タグと終了タグが対になっているか |
| ボタンが動かない | href="#details" と id="details"
の名前が一致するか |
| スマホで横にはみ出す | 横幅を固定しすぎていないか、@media があるか |
| 英字フォントが違う | インターネット接続、Google Fontsの読み込み状況 |
重要:AIが作ったコードも間違うことがあります。自分でブラウザを開いて確認し、分からない部分は「このCSSの
display: grid
を初心者向けに説明して」などとAIに尋ねるのが授業の趣旨です。
AIは最初の案やコードを素早く作れますが、何を目立たせるか、どんな色が適切か、読みにくいところがないかを確認するのは制作者の仕事です。 今回は、完成しているWebページのHTML構造を読み、CSSの色・レイアウト・余白を意識的に変えることで、AIが生成したコードを「使うだけ」から「理解して直す」方向へ進めています。