Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【CSS Modules】@importアットルールの使い方

@importアットルールの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

@importアットルールは、外部のCSSファイルを現在のスタイルシートに読み込む処理を実行するアットルールです。このアットルールを使用することで、プロジェクト内の複数のCSSファイルを論理的に分割し、より効率的にスタイルを管理することが可能になります。例えば、共通のスタイルやコンポーネントごとのスタイルを個別のファイルに記述し、必要な箇所で@importを用いて取り込むことで、コードの再利用性が高まり、大規模なプロジェクトにおけるスタイルのメンテナンス性が向上します。

@importルールを記述する際には、いくつかの注意点があります。このルールは、必ずスタイルシート内の他のすべてのCSSルール(セレクターとプロパティのセットなど)よりも先に記述する必要があります。ただし、@charsetルールがある場合はその直後に記述します。メディアクエリを指定することで、特定のメディアタイプやデバイスの特性に応じて、異なるスタイルシートを適用することも可能です。これはレスポンシブデザインの実現にも役立ちます。

パフォーマンスの観点から見ると、@importを多用するとブラウザが複数のHTTPリクエストを生成してCSSファイルをダウンロードするため、ページの読み込み速度に影響を与える可能性があります。そのため、本番環境では、複数のCSSファイルを一つのファイルに結合する(バンドルする)などの最適化手法が推奨される場合があります。しかし、開発段階でのスタイルシートのモジュール化や整理において、@importは非常に有効なツールとして活用できます。

公式リファレンス: @import

構文(syntax)

1@import url("path/to/another-stylesheet.css");

引数(parameters)

引数なし

引数はありません

戻り値(return)

戻り値なし

戻り値はありません

サンプルコード

CSS @importでスタイルシートを読み込む

1/*
2 * 別のCSSファイル (例: styles/reset.css) を現在のスタイルシートに読み込みます。
3 * これにより、ブラウザのデフォルトスタイルをリセットするCSSが適用されます。
4 * `@import` ルールは、スタイルシートの先頭 (文字セットルールを除く) に記述する必要があります。
5 */
6@import url("styles/reset.css");
7
8/*
9 * 別のCSSファイル (例: styles/theme.css) を読み込み、
10 * サイト全体の共通テーマや基本スタイルを適用します。
11 */
12@import url("styles/theme.css");
13
14/*
15 * ここから、このスタイルシート内で直接定義されるCSSルールです。
16 * 上記で読み込まれたスタイルは、これらのルールよりも先に適用されます。
17 */
18
19/* body要素に対する基本スタイル */
20body {
21  /* フォントファミリーを指定します。'Helvetica Neue'がなければ'Arial'、それもなければ一般的な'sans-serif'を使用します。 */
22  font-family: 'Helvetica Neue', Arial, sans-serif;
23  /* 背景色を薄いグレーに設定します。 */
24  background-color: #f4f4f4;
25  /* テキストの色を濃いグレーに設定します。 */
26  color: #333;
27  /* ボディの内側に20pxの余白を設定します。 */
28  margin: 20px;
29}
30
31/* h1要素に対するスタイル */
32h1 {
33  /* 文字色を青に設定します。 */
34  color: #007bff;
35  /* テキストを中央揃えにします。 */
36  text-align: center;
37  /* 下方向に25pxの余白を設定します。 */
38  margin-bottom: 25px;
39}
40
41/* p要素に対するスタイル */
42p {
43  /* 行の高さを1.6倍に設定し、読みやすくします。 */
44  line-height: 1.6;
45  /* 最大幅を800pxに制限し、中央揃えにします。 */
46  max-width: 800px;
47  margin-left: auto;
48  margin-right: auto;
49  /* 上方向に20pxの余白を設定します。 */
50  margin-top: 20px;
51}

CSSの@importルールは、現在のスタイルシートに外部のCSSファイルを読み込むために使用するアットルールです。これにより、複数のCSSファイルをモジュールとして分割し、一つのスタイルシートに統合して適用することが可能になります。例えば、リセット用のスタイル、共通テーマ用のスタイル、特定のページ用のスタイルなど、役割ごとにファイルを分けて管理し、必要な場所で読み込むことで、コードの可読性やメンテナンス性を向上させることができます。

サンプルコードでは、@import url("styles/reset.css");という形で、url()関数を使用して外部CSSファイルのパスを指定しています。これにより、styles/reset.cssというファイルに定義されたブラウザのデフォルトスタイルをリセットするCSSが、現在のスタイルシートに読み込まれ適用されます。同様に、styles/theme.cssも読み込まれ、サイト全体の共通テーマや基本スタイルが適用されます。

この@importルールは、スタイルシート内の他のCSSルールや宣言よりも前に記述する必要がありますが、文字エンコーディングを指定する@charsetルールが存在する場合は、その後に記述されます。読み込まれた外部ファイル内のスタイルは、その後に記述された現在のスタイルシートの直接的なルールよりも先に適用されますが、CSSの優先順位の仕組みに従って、後のルールによって上書きされる場合もあります。

@importルールには引数はなく、特定の処理結果を返す戻り値もありません。あくまで指定されたCSSファイルを現在のスタイルシートに組み込むという役割を果たします。

@importルールは、必ずスタイルシートの先頭(@charsetルールの次)に記述する必要があります。この位置を守らないと正しく機能しませんのでご注意ください。複数の@importを使用すると、ブラウザが個別にファイルをダウンロードするため、ページの読み込み速度が遅くなる可能性があります。大規模なプロジェクトでは、HTMLの<link>タグでCSSを読み込む方法を検討すると良いでしょう。読み込むCSSファイルへのパスは、現在のファイルからの相対パスを正しく指定することが重要です。@importで読み込まれたスタイルは、そのスタイルシート内で直接定義されたルールよりも先に適用されますが、後に書かれた詳細度の高いルールによって上書きされる可能性がありますので、CSSのカスケードの原則を理解しておくことが大切です。

@importでCSSを読み込む

1/*
2 * 外部のCSSファイルを現在のファイルに読み込むための @import ルールです。
3 * これにより、CSSを複数のファイルに分割し、モジュール化して管理しやすくすることができます。
4 * (これは大規模なCSSプロジェクトにおいて「重要」な構成管理の機能です。)
5 */
6
7/* 'styles/base.css' という名前の外部ファイルを読み込みます。 */
8@import url("styles/base.css");
9
10/*
11 * メディアクエリを指定して、特定の条件でのみファイルを読み込むことも可能です。
12 * 例: 画面幅が768px以上の場合にのみ 'styles/tablet-desktop.css' を読み込みます。
13 */
14@import url("styles/tablet-desktop.css") screen and (min-width: 768px);
15
16/* 
17 * 読み込まれたCSSファイル内のスタイルは、このファイルに直接記述された
18 * スタイルよりも先に評価されます(ただし、CSSの通常の詳細度と順序のルールは適用されます)。
19 * 
20 * 例えば、'styles/base.css' が以下のような内容を含んでいると仮定します:
21 * 
22 *   body {
23 *     font-family: Arial, sans-serif;
24 *     margin: 0;
25 *   }
26 * 
27 * その後、このファイルで定義されたスタイルが適用されます。
28 */
29
30body {
31  background-color: #f8f8f8; /* 全体の背景色を設定 */
32  color: #333; /* 文字色を設定 */
33}
34
35h1 {
36  color: #0056b3; /* 見出しの色を設定 */
37  text-align: center;
38  padding: 20px;
39}
40
41/*
42 * 注意: @import ルールは、@charset ルール以外のすべてのスタイルルールの前に記述する必要があります。
43 * (これはCSSの構文規則において「重要」な点であり、正しく適用するために守る必要があります。)
44 */

@importは、CSSにおいて外部のCSSファイルを現在のスタイルシートに読み込むための「アットルール」と呼ばれる特別な命令です。この機能を使用することで、大規模なCSSプロジェクトでコードを複数のファイルに分割し、モジュールとして管理しやすくすることができます。これは、保守性と再利用性を高める上で非常に重要な構成管理の手法です。

このルールは引数を直接持ちませんが、url()関数を使って読み込む外部CSSファイルのパスを指定します。特定の戻り値は存在せず、読み込まれたCSSの内容が現在のスタイルシートに統合され、適用されます。

サンプルコードでは、まず@import url("styles/base.css");と記述することで、styles/base.cssというファイルに定義された基本的なスタイルを読み込んでいます。さらに、@import url("styles/tablet-desktop.css") screen and (min-width: 768px);のように、メディアクエリを指定することで、画面幅が768ピクセル以上のデバイスでのみstyles/tablet-desktop.cssを読み込むといった条件付きのスタイル適用も可能です。

読み込まれた外部CSSファイル内のスタイルは、通常、このファイルに直接記述されたスタイルよりも先に評価されますが、CSSの詳細度や記述順序の通常のルールは適用されます。そのため、必要に応じて後から記述されたスタイルで上書きすることができます。

一つ重要な注意点として、@importルールは、@charsetルールを除き、他のすべてのCSSスタイルルールよりも必ずファイルの先頭に記述する必要があります。この規則を守らないと、正しくスタイルが適用されない場合があるため、この点は特に留意してください。

@importルールは、外部のCSSファイルを現在のファイルに読み込み、スタイルシートの管理をモジュール化する際に利用します。これにより、大規模なCSSプロジェクトでの構成管理が効率的になります。最も重要な注意点は、このルールを@charsetルール以外のすべてのスタイルルールの前に記述する必要があることです。この構文規則を守らないと、意図した通りにスタイルが適用されませんので、正しく利用するために必ず守ってください。読み込まれたCSSファイル内のスタイルは、このファイルに直接記述されたスタイルよりも先に評価されますが、CSSの詳細度や記述順序のルールが最終的なスタイルの適用を決定します。また、メディアクエリを指定することで、特定の条件でのみファイルを読み込むことも可能です。

関連コンテンツ

関連IT用語