Next.js構築 その⑦

Next.js-1.構築編-

CSSをあてよう

CSSをあてていきましょう。

まずは「public」フォルダ内に「asset」フォルダを作成し、その中に「css」フォルダを作成し、更にその中に「style.css」ファイルを作成します。

style.cssの中にスタイルを記述します。

/* h1スタイル */
h1 {
    font-size: 2.5rem;
    /* 大きな見出しサイズ */
    color: #333;
    /* 濃いグレー */
    text-align: center;
    /* 中央揃え */
    margin: 20px 0;
    /* 上下に余白 */
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.1);
    /* 軽い影 */
}

/* aタグのスタイル */
a {
    color: #0070f3;
    /* 明るい青色 */
    text-decoration: none;
    /* 下線を削除 */
    font-weight: bold;
    /* 太字 */
    transition: color 0.3s ease;
    /* 色変化のアニメーション */
}

a:hover {
    color: #0056b3;
    /* ホバー時の濃い青色 */
    text-decoration: underline;
    /* 下線を追加 */
}

次に、layout.jsでstyle.cssを読み込みます。

import '../public/asset/css/style.css';

npm run devで開発サーバーを立ち上げ、http://localhost:3000にアクセスし、下のように表示されれば成功です。

特定のページのみであてたいCSS

場合によってはページごとにCSSを管理したいことがあります。aboutページを例にとって作成してみます。

まずはapp/aboutフォルダに「about.css」を作成します。

about.css内にスタイルを記述します。

/* Aboutページ専用スタイル */
h1 {
    font-size: 2.5rem;
    color: #ff6347; /* トマト色 */
    text-align: left;
    margin: 20px 0;
}

p {
    font-size: 1rem;
    line-height: 1.6;
    color: #333;
}

次にapp/about/page.jsでabout.cssを読み込みます。

http://localhost:3000/aboutにアクセスし、下のように表示されれば成功です。

それぞれの画面を検証ツールで見てましょう

about

top

aboutページにはh1に対して2つのスタイルがあたっているのに対し、トップページでは1つだけです。

about.cssがaboutページにのみあたっていることが確認できます。

ファイルの置き場所について

CSSファイルの置き場所ですが、現在下図のようになっています。

これは置き場所に決まりがあるわけではなく、一般的な配置の仕方にしていますが、
実際は管理しやすいように自由に配置できます。
その際はimportでよみこむ際のパスに気をつけましょう。

画像を配置しよう

画像の配置について見ていきます。

まずはpublic/assetに「img」フォルダを作成し、適当な画像を配置します。

次に、app/components/welcome.jsでImageコンポーネントをインポートし、Welcomeコンポーネント内に配置します。

import Image from "next/image";
 <Image
       src="/asset/img/image.jpg"
       alt="Example Image"
       width={500}
       height={300}
  />

表示できました。

今回のImageコンポーネントについて、srcのパスが

 src="/asset/img/image.jpg"

となっています。

これはpublic/ディレクトリはルートパス(/)として扱われるため、このような記述になっています。

また、下記記述

width={500}
height={300}

これはimageタグのwidthとheightを指定するものですが、Imageコンポーネントでは指定必須になっています。CSSで上書きできるので、一旦適当な数値を入れておきましょう。

書き方について、imageタグであればwidth=”500″と記述しますが、width={500}となっています。

この書き方について次回説明していきます。

コメント

タイトルとURLをコピーしました