# Topページの作成3

次に、コンテンツが画面の左右いっぱいに広がっているので、コンテンツ幅を一定として、左右にスペースを開けます。

その際に`container`というclass名を使用します。

こちらを使用すると、画面幅が`640px`以内であれば`width`は`100%`で、`640px`以上では`max-width`が`640px`、`768px`以上では`max-width`が`768px`のように、レスポンシブ対応されたスタイリンが可能となります。そして左右に均等にスペースを開けるために、`mx-auto`を使用します。

<pre class="language-tsx" data-title="pages/TopPage.tsx◎"><code class="lang-tsx">export const TopPage = () => {
  return (
    &#x3C;div>
      &#x3C;header>
<strong>        &#x3C;div className="container mx-auto flex justify-between">
</strong>          &#x3C;p>スケジュール管理APP&#x3C;/p>
          &#x3C;nav>
            &#x3C;ul className="flex gap-5">
              &#x3C;li>ご利用方法&#x3C;/li>
              &#x3C;li>ログイン&#x3C;/li>
            &#x3C;/ul>
          &#x3C;/nav>
        &#x3C;/div>
      &#x3C;/header>
    &#x3C;/div>
  );
}

</code></pre>

こちらでブラウザで確認すると、以下のように左右に左右に均等にスペースが空いていることが確認できます。また、画面を左右に大きくしたり小さくした際にコンテンツ幅が変化することが確認できるかと思います。

<figure><img src="https://1869761657-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcUBbYqol4PMzZJggiMqV%2Fuploads%2FDaKnQo8WAHsrUEeResFf%2Ft.png?alt=media&#x26;token=9b965df6-b494-4ce6-9a7b-00b158b4b5ac" alt=""><figcaption></figcaption></figure>

次に、ヘッダーを上下に中央寄せにして、上下に均等にスペースを開ける際に、`leading-[50px]`(line-height: 50px)を使用します。ちなみに、プロパティの値に、pxやem等を設定できる場合は、`[]`を使用することで、自由な値をセットすることができます。

<pre class="language-tsx" data-title="pages"><code class="lang-tsx">export const TopPage = () => {
  return (
    &#x3C;div>
<strong>      &#x3C;header className="leading-[50px]">
</strong>        &#x3C;div className="container mx-auto flex justify-between">
          &#x3C;p>スケジュール管理APP&#x3C;/p>
          &#x3C;nav>
            &#x3C;ul className="flex gap-5">
              &#x3C;li>ご利用方法&#x3C;/li>
              &#x3C;li>ログイン&#x3C;/li>
            &#x3C;/ul>
          &#x3C;/nav>
        &#x3C;/div>
      &#x3C;/header>
    &#x3C;/div>
  );
}

</code></pre>

次にロゴをスタイリングしていきます。以下のように、index.cssにロゴ用のcssを追加しましょう。

<pre class="language-css" data-title="styles/index.css◎"><code class="lang-css">@tailwind base;
@tailwind components;
@tailwind utilities;

<strong>.logo {
</strong><strong>  color          : #ffffff;
</strong><strong>  text-shadow    : 
</strong><strong>      1px  1px 1px #3f6212,
</strong><strong>    -1px  1px 1px #3f6212,
</strong><strong>      1px -1px 1px #3f6212,
</strong><strong>    -1px -1px 1px #3f6212,
</strong><strong>      1px  0px 1px #3f6212,
</strong><strong>      0px  1px 1px #3f6212,
</strong><strong>    -1px  0px 1px #3f6212,
</strong><strong>      0px -1px 1px #3f6212;
</strong><strong>}
</strong>
</code></pre>

そして、ロゴの部分にclass名を指定します。

<pre class="language-tsx" data-title="pages/TopPage.tsx◎"><code class="lang-tsx">export const TopPage = () => {
  return (
    &#x3C;div>
      &#x3C;header className="leading-[50px]">
        &#x3C;div className="container mx-auto flex justify-between">
<strong>          &#x3C;p className="logo">スケジュール管理APP&#x3C;/p>
</strong>          &#x3C;nav>
            &#x3C;ul className="flex gap-5">
              &#x3C;li>ご利用方法&#x3C;/li>
              &#x3C;li>ログイン&#x3C;/li>
            &#x3C;/ul>
          &#x3C;/nav>
        &#x3C;/div>
      &#x3C;/header>
    &#x3C;/div>
  );
}

</code></pre>

ナビゲーションメニューに関しては、文字色を変えます。tailwindcssは以下リンクのように、デフォルトのカラーパレットがあり、今回はこちらの`Lime`を使用してカラーリングをしていきます。

{% embed url="<https://tailwindcss.com/docs/customizing-colors>" %}

文字色は、`text-lime-800`を使用します。

<pre class="language-tsx" data-title="pages/TopPage.tsx◎"><code class="lang-tsx">export const TopPage = () => {
  return (
    &#x3C;div>
      &#x3C;header className="leading-[50px]">
        &#x3C;div className="container mx-auto flex justify-between">
          &#x3C;p className="logo">スケジュール管理APP&#x3C;/p>
          &#x3C;nav>
<strong>            &#x3C;ul className="flex gap-5 text-lime-800">
</strong>              &#x3C;li>ご利用方法&#x3C;/li>
              &#x3C;li>ログイン&#x3C;/li>
            &#x3C;/ul>
          &#x3C;/nav>
        &#x3C;/div>
      &#x3C;/header>
    &#x3C;/div>
  );
}

</code></pre>

次にヘッダー部分を画面を下にスクロールした際も最上部に固定されるようにします。

その場合は、親要素を`position: relative`として、その要素を`position: fixed`とし、その子要素を固定する位置を指定します。今回の場合は、上部に固定するので、`top: 0`、`left: 0`、`right: 0`を指定します。 以下のように編集します。

<pre class="language-tsx" data-title="pages/TopPage.tsx◎"><code class="lang-tsx">export const TopPage = () => {
  return (
<strong>    &#x3C;div className="relative">
</strong><strong>      &#x3C;header className="leading-[50px] fixed top-0 left-0 right-0">
</strong>        &#x3C;div className="container mx-auto flex justify-between">
          &#x3C;p className="logo">スケジュール管理APP&#x3C;/p>
          &#x3C;nav>
            &#x3C;ul className="flex gap-5 text-lime-800">
              &#x3C;li>ご利用方法&#x3C;/li>
              &#x3C;li>ログイン&#x3C;/li>
            &#x3C;/ul>
          &#x3C;/nav>
        &#x3C;/div>
      &#x3C;/header>
    &#x3C;/div>
  );
}

</code></pre>
