CSSを編集してWebページを華やかに!

Webページに彩りをプラスしよう

はじめに

「HTMLはおおむね理解できたので、そろそろCSSもいじってみたい!」

そんな方に向けて、今回はCSSを使ったWebページのコード解説をお届けします!

📸 今回つくるページの完成イメージ

完成イメージのスクリーンショット

📁 始める前に:HTMLとCSSは「別のファイル」に分けるのが基本!

今回の見本コードを見る前に、1つ大切なWeb制作のルールをお伝えします。

HTMLコードの中にCSSを直接書く(<style>タグで囲む)こともできますが、実際のサイト制作では「index.html」と「style.css」のようにファイルを2つに分けるのが望ましいです。

なぜ分けるの?

ファイルを分ける方法

HTMLの <head> 〜 </head> の間に、以下の1行を書き込めばCSSファイルと連携できます。

📋 連携用コード
<link rel="stylesheet" href="style.css">
💡 本記事での解説について
この記事ではわかりやすく全体を見せるため、HTMLの中にCSSを埋め込んだコードで解説していきます🐾

📄 全体コード(コピペOK!)

まずは全体のコードです。手元で試したい方はメモ帳などに貼り付けて index.html として保存してみてください。

(※ <!-- ★ --> のコメントがある場所を自分の好きな文字に書き換えて使えます!)

📋 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>&copy; 2026 Your Name. All Rights Reserved.</p>
    </footer>

</body>
</html>

🎨 CSS解説:ここをいじればデザインが変わる!

それでは、コードの重要ポイントをいくつかピックアップして解説します。

1サイトの色を一括管理する「CSS変数」

コードの最初にある :root { ... } の部分は、サイト全体で使うテーマカラーを設定している場所です。

📋 CSS変数設定
:root {
    --main-color: #e0f2fe;    /* 薄い水色 */
    --accent-color: #0284c7;  /* 主役の水色 */
    --text-color: #334155;    /* 読みやすい文字色 */
    --bg-color: #ffffff;      /* 背景の白 */
}
💡 アレンジ技
例えば --accent-color: #0284c7;(■ ブルー)のカラーコードを #ec4899(■ ピンク)に変えるだけで、ボタンや見出しのアクセント色が一瞬で可愛いピンク色に切り替わります!

2読みやすさを決める「文字と背景」の設定

body 部分では、画面全体の基本ルールを定めています。

📋 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;:行間を広く取ると、長い文章でも一気に読みやすくなります。

3見出し(h2)をおしゃれにするワンポイント

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側にコードを書かずに見出しを装飾できます。

4ギャラリーを綺麗に並べる「Gridレイアウト」

イラストや写真を綺麗に並べたいときに超絶便利なのが display: grid; です。

📋 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プロパティ」の違いって?

コードを書いていると混乱しやすいのが、「HTMLタグ」と「CSSプロパティ」の違いです。この2つは役割がまったく異なります。

分類 役割 例 たとえるなら…
HTMLタグ ページに「何(要素)」を置くかを決める <h1>, <p>, <a>, <img> 家の「骨組み」や「家具」
CSSプロパティ その要素を「どんな見た目」にするかを決める color, font-size, margin 壁紙の「色」や家具の「配置」
覚えておこう!🐾
・「<p> は文章を入れるタグ」
・「color: red; は文字を赤くするプロパティ(スタイルの設定)」

この2つを区別できるようになると、コードの書き間違いや読みやすさがグッと上がります!

🚀 まずはこれを覚えよう!よく使われるCSSプロパティ厳選リスト

「CSSの単語が多すぎて覚えられない…」という方は、まずは以下のプロパティだけ押さえておけばOKです!今回の見本コードでも大活躍している基本のプロパティです。

1. 見た目・色に関するプロパティ

2. 文字の見た目に関するプロパティ

3. 余白・サイズに関するプロパティ

🛠 困ったときは:「デザインが反映されない!」時のチェックリスト

「CSSを書き換えたのに、見た目が変わらない…」という時は、以下の3つをチェックしてみてください🐾

📌 まとめ:まずは色や文字を変えることから挑戦しよう!

最初からすべてのCSSプロパティを暗記する必要はありません。

  1. まずはコピペして表示してみる
  2. カラーコード(#ffffffなど)を自分の好きな色に書き換えてみる
  3. font-size の数字を大きくしたり小さくしたりしてみる

この「数値をいじって変化を楽しむ」ことこそが、手書きHTML・CSSの上達への一番の近道です。ぜひ自分好みの素敵なサイトにカスタマイズしてみてくださいね🐾