フロントエンドエンジニア養成所

ヘッダをコーディング

ヘッダをコーディングしていきます。

HTML

index.htmlを以下のように修正します。

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>サンプルサイト</title>
    <link rel="stylesheet" media="all" href="css/style.css" />
    <link rel="stylesheet" media="all" href="css/reset.css" />
</head>
<body>
    <!-- ここから -->
    <header class="header">
        <div class="container">
            <div class="header-top">
                <h1 class="logo"><a href="index.html">Sample</a></h1>
                <div class="tel">TEL:00-0000-0000</div>
            </div>
            <div class="nav">
                <ul class="nav-list" role="list">
                    <li class="nav-item"><a href="#">ホーム</a></li>
                    <li class="nav-item"><a href="#">会社概要</a></li>
                    <li class="nav-item"><a href="#">事業内容</a></li>
                    <li class="nav-item"><a href="#">採用情報</a></li>
                    <li class="nav-item"><a href="#">お問い合わせ</a></li>
                </ul>
            </div>
        </div>
    </header>
    <!-- ここまで追加 -->
</body>
</html>

HTMLの解説

1. <header class="header">

  • headerタグ(<header class="header">)は Webページのヘッダー部分 を表します。headerタグに囲まれた部分は全てヘッダのコンテンツになります。
  • class="header"とすることで、class名を指定してCSSを適用できるようにしています。

2. <div class="container">

  • ヘッダは画面横幅いっぱいに広がりますが、ヘッダのコンテンツ(ロゴ、電話番号、グローバルナビ、)は横幅いっぱいから少し余白があります。よって、項目が横幅いっぱいに広がらないようにするため、横幅の長さを指定する必要があります。コンテナ(<div class="container"></div>)はコンテンツの横幅を管理するための要素です。コンテンツには、「ロゴ・電話番号」「グローバルナビ」をまとめています。
  • class="container"とすることで、class名を指定してCSSを適用できるようにしています。

3. <div class="header-top">

  • ヘッダは上部に「ロゴ」と「電話番号」、下部に「グローバルナビ」が縦に並ぶ構造になっています。<div class="header-top">はヘッダの上部の部分を指します。
    • <h1 class="logo">はサイトのロゴを表します。h1タグはサイトのタイトルやロゴによく使われます。中に<a href="index.html">を入れることで、トップページに戻れるリンクにしています。
    • <div class="tel">電話番号を表示しています。
  • class="header-top"とすることで、class名を指定してCSSを適用できるようにしています。

4. <div class="nav">

  • ヘッダの下部の「グローバルナビ」(サイト内のリンク集)をまとめています。
<ul class="nav-list" role="list">
  <li class="nav-item"><a href="#">ホーム</a></li>
  <li class="nav-item"><a href="#">会社概要</a></li>
  <li class="nav-item"><a href="#">事業内容</a></li>
  <li class="nav-item"><a href="#">採用情報</a></li>
  <li class="nav-item"><a href="#">お問い合わせ</a></li>
</ul>
  • <ul class="nav-list" role="list">
    ulタグはリスト(箇条書き)を表します。ulはunordered listの略です。 role="list"の属性を付与することでアクセシビリティを向上させています。スクリーンリーダーで「リスト」と認識されやすくなります。
    • <li class="nav-item">
      リストの1つ1つの項目です。
      • <a href="#">
        各項目にはaタグを設定しています。aタグはリンクを表します。href="#" は仮のリンクです。実際のページURLを入れれば動きます。

CSS

style.cssには以下のCSSを追加します。

.header {
    display: flex;
    justify-content: center;
}

.header-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 15px;
}

.container {
    max-width: 1200px;
    width: 100%;
}

.logo {
    font-size: min(calc(20px + 30 * (100vw - 280px) / 1720), 50px);
}

.tel {
    font-size: min(calc(18px + 30 * (100vw - 280px) / 1720), 40px);
}

.nav-list {
    display: flex;
}

.nav-item {
    flex: 1 0 auto;
}

.nav-item a {
    padding: 1rem;
    text-align: center;
}

CSSの解説

1. .header

  • display: flex;
    要素を横並びにしています。
  • justify-content: center;
    flexを指定したコンテンツを中央寄せに配置します。

2. .header-top

  • display: flex;
    ロゴと電話番号を横並びにします。
  • align-items: center;
    上下の位置を中央に揃えます。
  • justify-content: space-between; 左端にロゴ、右端に電話番号を配置します。
  • padding: 10px 15px; 上下10px・左右15pxの余白をつけます。

3. .container

  • max-width: 1200px;
    最大幅を1200pxに制限します。画面が大きくても横に広がりすぎないようにします。
  • width: 100%;
    画面が狭いときは幅いっぱいに広がります。

4. .logo

  • font-size: min(calc(20px + 30 * (100vw - 280px) / 1720), 50px);
    画面の横幅に応じて文字の大きさが変わる「レスポンシブな文字サイズ」です。
    • calc(...) は計算でサイズを指定するCSS関数です。
    • min(...) を使うことで、最大でも50pxまでに制限しています。

5. .tel

  • .logoと同じく、レスポンシブな文字サイズを設定しています。
  • こちらは最小18px、最大40pxで変化します。

6. .nav-list

  • display: flex;
    ナビゲーションメニュー(リスト)を横並びにします。

7. .nav-item

  • flex: 1 0 auto;
    各メニュー項目を均等に配置しつつ、必要に応じて幅を広げます。

8. .nav-item a

  • padding: 1rem;
    各リンクに余白をつけて、クリックしやすくします。
  • text-align: center;
    文字を中央に揃えます。

動作確認

ブラウザで開くと表示は次のようになります。

Alt text

このサイトを運営している人

運営者の写真

はじめまして。このサイトを運営しているsidsydです。

エンジニアをしたり、日本酒サイト「酒道」を運営したりしております。

▶ 運営者情報ページへ