内部スタイルシートと外部スタイルシートの違いは?

内部スタイルシートと外部スタイルシートの違い

内部スタイルシートと外部スタイルシートの違い

Webサイトのデザインをする上で欠かせないCSS。CSSを記述する方法には、大きく分けて「内部スタイルシート」「インラインスタイルシート」「外部スタイルシート」の3つがあります。その中でも、今回は「内部スタイルシート」と「外部スタイルシート」の違いについて詳しく解説していきます。

内部スタイルシートとは?

内部スタイルシートは、HTMLファイルの<head>タグ内に、<style>タグを使ってCSSを記述する方法です。これまでHTMLファイルにCSSを記述してきた場合は、この方法を使っていたのではないでしょうか?

以下は、内部スタイルシートを使ったコード例です。


<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>内部スタイルシートの例</title>
  <style>
    h1 {
      color: blue;
      font-size: 24px;
    }
    p {
      color: gray;
    }
  </style>
</head>
<body>
  <h1>これは見出しです</h1>
  <p>これは段落です</p>
</body>
</html>

このように、<style>タグ内に記述されたCSSが、そのHTMLファイル全体に適用されます。

外部スタイルシートとは?

外部スタイルシートは、CSSだけを記述した別のファイル(.cssファイル)を作成し、HTMLファイルからそのファイルを読み込む方法です。HTMLファイルとCSSファイルを別々にすることで、以下のようなメリットがあります。

  • HTMLファイルとCSSファイルが分離されるため、コードが見やすくなる
  • 複数のHTMLファイルで同じCSSを使い回せるため、デザインの統一性が高まる
  • CSSファイルだけを変更するだけで、サイト全体のデザインを簡単に変更できる

以下は、外部スタイルシートを使ったコード例です。

style.css


h1 {
  color: red;
  font-size: 32px;
}
p {
  color: black;
}

index.html


<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>外部スタイルシートの例</title>
  <link rel="stylesheet" href="style.css">
</head>
<body>
  <h1>これは見出しです</h1>
  <p>これは段落です</p>
</body>
</html>

HTMLファイルの<head>タグ内に、<link>タグを使って外部スタイルシートを読み込みます。rel属性には"stylesheet"を、href属性にはCSSファイルのパスを指定します。

内部スタイルシートと外部スタイルシートの比較

内部スタイルシートと外部スタイルシートの違いを以下の表にまとめました。

項目 内部スタイルシート 外部スタイルシート
記述場所 HTMLファイル内の<style>タグ内 CSSファイル(.css)
読み込み方法 <style>タグで囲む <link>タグで読み込む
使い分け 1つのHTMLファイルにのみ適用したいスタイル 複数のHTMLファイルで共通して使いたいスタイル
メリット HTMLファイルとCSSファイルが1つにまとまる コードが見やすく、管理しやすい
デザインの統一性が保ちやすい
サイト全体のデザイン変更が容易
デメリット HTMLファイルとCSSファイルが混在するため、コードが見づらくなる場合がある
複数のHTMLファイルで同じスタイルを使う場合、コードの重複が発生する
CSSファイルを読み込む必要があるため、ページ表示速度が遅くなる可能性がある

まとめ

内部スタイルシートと外部スタイルシートは、それぞれにメリット・デメリットがあります。小規模なWebサイトであれば内部スタイルシートでも問題ありませんが、規模が大きくなるにつれて、外部スタイルシートのメリットが大きくなってきます。Webサイトの規模や目的に合わせて、適切な方法を選択しましょう。

参考文献

関連QA

Q1. 内部スタイルシートと外部スタイルシートのどちらを使うべきですか?

A1. 基本的には、外部スタイルシートを使うことをおすすめします。特に、複数のHTMLファイルで同じスタイルを使う場合は、外部スタイルシートの方が管理しやすいためです。ただし、1つのHTMLファイルにのみ適用したいスタイルや、非常にシンプルなWebサイトの場合は、内部スタイルシートの方が適している場合もあります。

Q2. 1つのHTMLファイルで、内部スタイルシートと外部スタイルシートの両方を使うことはできますか?

A2. はい、可能です。その場合、ブラウザは両方のスタイルシートを読み込み、競合が発生した場合は、より具体的な指定が優先されます。

Q3. 外部スタイルシートを読み込む際に、相対パスと絶対パスのどちらを使うべきですか?

A3. 基本的には、相対パスを使うことをおすすめします。相対パスを使うことで、HTMLファイルとCSSファイルのディレクトリ構成が変わっても、正しくスタイルシートを読み込むことができます。ただし、異なるドメインにあるCSSファイルを読み込む場合は、絶対パスを使う必要があります。

その他の参考記事:q1.【 2 】(cascading style sheets)は、h1 { background: blue; } のように書くことで文章を装飾できる。