Webページに彩りをプラスしよう
「HTMLはおおむね理解できたので、そろそろCSSもいじってみたい!」
そんな方に向けて、今回はCSSを使ったWebページのコード解説をお届けします!
今回の見本コードを見る前に、1つ大切なWeb制作のルールをお伝えします。
HTMLコードの中にCSSを直接書く(<style>タグで囲む)こともできますが、実際のサイト制作では「index.html」と「style.css」のようにファイルを2つに分けるのが望ましいです。
HTMLの <head> 〜 </head> の間に、以下の1行を書き込めばCSSファイルと連携できます。
<link rel="stylesheet" href="style.css">
まずは全体のコードです。手元で試したい方はメモ帳などに貼り付けて index.html として保存してみてください。
(※ <!-- ★ --> のコメントがある場所を自分の好きな文字に書き換えて使えます!)
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title><!-- ★サイトのタイトル -->Your Site Name</title>
<style>
/* --- 基本設定 --- */
:root {
--main-color: #e0f2fe; /* 薄い水色(背景アクセント) */
--accent-color: #0284c7; /* 主役の水色 */
--text-color: #334155; /* 読みやすいダークグレー */
--bg-color: #ffffff; /* ベースの白 */
}
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
body {
font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
background-color: var(--bg-color);
color: var(--text-color);
line-height: 1.8;
letter-spacing: 0.05em;
}
a {
color: var(--accent-color);
text-decoration: none;
transition: opacity 0.3s;
}
a:hover {
opacity: 0.7;
}
/* --- レイアウト --- */
header {
text-align: center;
padding: 60px 20px 40px;
}
header h1 {
font-size: 2rem;
font-weight: 300;
letter-spacing: 0.1em;
margin-bottom: 20px;
}
nav ul {
display: flex;
justify-content: center;
gap: 20px;
list-style: none;
}
nav a {
font-size: 0.9rem;
font-weight: bold;
color: var(--text-color);
text-transform: uppercase;
}
main {
max-width: 800px;
margin: 0 auto;
padding: 0 20px 80px;
}
section {
margin-top: 80px;
scroll-margin-top: 40px;
}
section h2 {
font-size: 1.4rem;
font-weight: 400;
text-transform: uppercase;
border-bottom: 2px solid var(--main-color);
padding-bottom: 8px;
margin-bottom: 24px;
display: flex;
align-items: center;
gap: 10px;
}
section h2::before {
content: "";
display: inline-block;
width: 8px;
height: 18px;
background-color: var(--accent-color);
border-radius: 2px;
}
/* --- コンテンツ装飾 --- */
/* Gallery */
.gallery-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 16px;
}
.gallery-item {
background-color: var(--main-color);
aspect-ratio: 1 / 1;
border-radius: 8px;
overflow: hidden;
display: flex;
align-items: center;
justify-content: center;
color: #64748b;
font-size: 0.85rem;
}
.gallery-item img {
width: 100%;
height: 100%;
object-fit: cover;
}
/* Profile */
.profile-box {
background-color: #f8fafc;
border-left: 4px solid var(--accent-color);
padding: 24px;
border-radius: 0 8px 8px 0;
}
footer {
text-align: center;
padding: 20px;
font-size: 0.8rem;
color: #94a3b8;
border-top: 1px solid var(--main-color);
}
</style>
</head>
<body>
<header>
<h1><!-- ★ヘッダーのサイト名 -->Site Title</h1>
<nav>
<ul>
<li><a href="#about">About</a></li>
<li><a href="#gallery">Gallery</a></li>
<li><a href="#novel">Novel</a></li>
<li><a href="#profile">Profile</a></li>
</ul>
</nav>
</header>
<main>
<section id="about">
<h2>About</h2>
<p><!-- ★サイト説明文 -->ここにはサイトのコンセプトや概要を記入します。</p>
</section>
<section id="gallery">
<h2>Gallery</h2>
<div class="gallery-grid">
<div class="gallery-item">Image 01</div>
<div class="gallery-item">Image 02</div>
<div class="gallery-item">Image 03</div>
</div>
</section>
<section id="profile">
<h2>Profile</h2>
<div class="profile-box">
<p><strong>名前:</strong> <!-- ★お名前 -->Your Name</p>
<p><strong>一言:</strong> <!-- ★一言メッセージ -->趣味でイラストや小説を制作しています。</p>
<p><strong>SNS:</strong> <a href="#">X (Twitter)</a> / <a href="#">Bluesky</a></p>
</div>
</section>
</main>
<footer>
<p>© 2026 Your Name. All Rights Reserved.</p>
</footer>
</body>
</html>
それでは、コードの重要ポイントをいくつかピックアップして解説します。
コードの最初にある :root { ... } の部分は、サイト全体で使うテーマカラーを設定している場所です。
:root {
--main-color: #e0f2fe; /* 薄い水色 */
--accent-color: #0284c7; /* 主役の水色 */
--text-color: #334155; /* 読みやすい文字色 */
--bg-color: #ffffff; /* 背景の白 */
}
--accent-color: #0284c7;(■ ブルー)のカラーコードを #ec4899(■ ピンク)に変えるだけで、ボタンや見出しのアクセント色が一瞬で可愛いピンク色に切り替わります!
body 部分では、画面全体の基本ルールを定めています。
body {
background-color: var(--bg-color); /* 背景色を白に指定 */
color: var(--text-color); /* 文字色を暗いグレーに指定 */
line-height: 1.8; /* 行と行の間隔を少し広めに */
letter-spacing: 0.05em; /* 文字同士の間隔を少し広めに */
}
color: var(--text-color);:真っ黒(#000000)ではなく、少し青みがかった暗いグレーを指定することで、目が疲れにくい優しい印象に仕上がります。line-height: 1.8;:行間を広く取ると、長い文章でも一気に読みやすくなります。section h2 と section h2::before の指定で、見出しの左側に小さな「青い縦棒」を表示しています。
section h2::before {
content: "";
display: inline-block;
width: 8px; /* 縦棒の幅 */
height: 18px; /* 縦棒の高さ */
background-color: var(--accent-color); /* 縦棒の色 */
border-radius: 2px; /* 角を少し丸くする */
}
::before は「要素の直前に飾りを取り付ける」という特別な書き方です。これを使うと、HTML側にコードを書かずに見出しを装飾できます。
イラストや写真を綺麗に並べたいときに超絶便利なのが display: grid; です。
.gallery-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 16px; /* 画像同士の間隔 */
}
repeat(auto-fit, minmax(200px, 1fr)) はむずかしく見えますが、要するに「画面の幅に合わせて自動で列の数を調整してくれる魔法の1行」です!スマホで見てもパソコンで見ても、自動で綺麗に折り返して並んでくれます。
コードを書いていると混乱しやすいのが、「HTMLタグ」と「CSSプロパティ」の違いです。この2つは役割がまったく異なります。
| 分類 | 役割 | 例 | たとえるなら… |
|---|---|---|---|
| HTMLタグ | ページに「何(要素)」を置くかを決める | <h1>, <p>, <a>, <img> |
家の「骨組み」や「家具」 |
| CSSプロパティ | その要素を「どんな見た目」にするかを決める | color, font-size, margin |
壁紙の「色」や家具の「配置」 |
<p> は文章を入れるタグ」color: red; は文字を赤くするプロパティ(スタイルの設定)」「CSSの単語が多すぎて覚えられない…」という方は、まずは以下のプロパティだけ押さえておけばOKです!今回の見本コードでも大活躍している基本のプロパティです。
color(文字の色): 文字の色を指定します。(例:color: #333333;)background-color(背景の色): 背景色を指定します。(例:background-color: #ffffff;)font-size(文字の大きさ): 文字のサイズを指定します。(例:font-size: 16px; や font-size: 1.2rem;)font-weight(文字の太さ): 文字を太字にしたり標準にしたりします。(例:font-weight: bold;)text-align(文字の位置): 文字を中央揃えや右揃えにします。(例:text-align: center;)margin(外側の余白): 要素の外側にすき間を作ります。要素同士を離したいときに使います。padding(内側の余白): 要素の内側にすき間を作ります。枠線や背景色の内側にゆとりを持たせたいときに使います。width / height(幅と高さ): 要素の幅(横幅)と高さ(縦幅)を指定します。(例:width: 100%;)「CSSを書き換えたのに、見た目が変わらない…」という時は、以下の3つをチェックしてみてください🐾
;(セミコロン)」を消していないか: CSSの各ルールの最後には必ず ; が必要です。Ctrl + F5」(Macは Cmd + Shift + R)を押して画面を強力再読み込みしてみてください。最初からすべてのCSSプロパティを暗記する必要はありません。
#ffffffなど)を自分の好きな色に書き換えてみるfont-size の数字を大きくしたり小さくしたりしてみるこの「数値をいじって変化を楽しむ」ことこそが、手書きHTML・CSSの上達への一番の近道です。ぜひ自分好みの素敵なサイトにカスタマイズしてみてくださいね🐾