HTML 入門
スタイルシートでデザインを作ろう
複数のセレクタに適用する
このページのとくに後半の内容は CSS の最初の学習段階では理解が難しいかもしれません.ある程度理解ができてからこのページに戻ってきてもよいでしょう.ここでも前のページまでと同じ HTML ファイルを利用します.
index.html(抜粋)
<h1>スタイルシート</h1>
<h2>CSS ファイルの準備して読み込む</h2>
<p>拡張子が.cssのファイルを準備します...</p>
<h2>表示を確認する</h2>
<p>ブラウザで表示を確認します...</p>
見出し <h1>
を赤色に,見出し <h2>
を緑色にしてみます.この場合,h1
,h2
をそれぞれセレクタとして文字色を指定すれば良いので,CSS ファイルに次のコードを記述すればよいでしょう.(HTMLのサンプルを見る / CSSのサンプルを見る)
style.css
@charset "utf-8";
h1 {
color: #ff0000;
}
h2 {
color: #00a000;
}
p {
color: #0000ff;
text-indent: 16px;
}
ブラウザでの表示結果
スタイルシート
CSS ファイルの準備して読み込む
拡張子が.cssのファイルを準備します.拡張子が.cssのファイルを準備します.拡張子が.cssのファイルを準備します.拡張子が.cssのファイルを準備します.拡張子が.cssのファイルを準備します.
表示を確認する
ブラウザで表示を確認します.ブラウザで表示を確認します.ブラウザで表示を確認します.ブラウザで表示を確認します.ブラウザで表示を確認します.ブラウザで表示を確認します.ブラウザで表示を確認します.
次に h1
,h2
のどちらも緑色に指定したい場合を考えます.もちろん上の CSS で4行目を #00a000
に変更しても良いですが,h1
,h2
の両方に同じスタイルを適用することも可能です.これは,セレクタをカンマで区切って次のように書くことができます.(HTMLのサンプルを見る / CSSのサンプルを見る)
style.css
@charset "utf-8";
h1, h2 {
color: #00a000;
}
p {
color: #0000ff;
text-indent: 16px;
}
ブラウザでの表示結果
スタイルシート
CSS ファイルの準備して読み込む
拡張子が.cssのファイルを準備します.拡張子が.cssのファイルを準備します.拡張子が.cssのファイルを準備します.拡張子が.cssのファイルを準備します.拡張子が.cssのファイルを準備します.
表示を確認する
ブラウザで表示を確認します.ブラウザで表示を確認します.ブラウザで表示を確認します.ブラウザで表示を確認します.ブラウザで表示を確認します.ブラウザで表示を確認します.ブラウザで表示を確認します.
なお,上のスタイルシートでは後から追加した h1
や h2
のスタイルを p
の前に入力しました.書く順番に絶対的な決まりはありません.ただ順序のルールを決めずにさまざまなデザインを追加すると結果的にスタイルシートが長くなり,セレクタの種類も多くなって管理が大変になります.たとえばページ内で登場する要素の順番などにしたがって CSS も要素を並べて作成するようにすると良いでしょう.また,同じセレクタの同じプロパティに異なる複数のスタイルが適用された場合は後から適用されたスタイルが利用されることに注意してください.
たとえば次の例では4行目周辺で h1
と h2
に緑色が設定されていますが,13行目で h1
が赤に上書きされ,17行目では h2
が青に上書きされています.その結果,最後に上書きされたデザインが適用されています.(HTMLのサンプルを見る / CSSのサンプルを見る)
style.css
@charset "utf-8";
h1, h2 {
color: #00a000;
}
p {
color: #0000ff;
text-indent: 16px;
}
h1 {
color: red;
}
h2 {
color: blue;
}
ブラウザでの表示結果
スタイルシート
CSS ファイルの準備して読み込む
拡張子が.cssのファイルを準備します.拡張子が.cssのファイルを準備します.拡張子が.cssのファイルを準備します.拡張子が.cssのファイルを準備します.拡張子が.cssのファイルを準備します.
表示を確認する
ブラウザで表示を確認します.ブラウザで表示を確認します.ブラウザで表示を確認します.ブラウザで表示を確認します.ブラウザで表示を確認します.ブラウザで表示を確認します.ブラウザで表示を確認します.
なお,セレクタをカンマで区切ったものは セレクタリスト と呼び,すべての一致するノードを選択します.すでに説明した通り,次の2つの書き方で同じ結果になります.
style.css(抜粋)
h1 {
color: #00a000;
}
h2 {
color: #00a000;
}
style.css(抜粋)
h1, h2 {
color: #00a000;
}
セレクタを改行して次のように書くスタイルが広く利用されています.もちろん,上と同じ結果になります.
style.css(抜粋)
h1,
h2 {
color: #00a000;
}
次のようにセレクタを空白で区切った場合は 子孫結合子 となります.下のコードの場合 <header>
要素の中にある <li>
要素についてのみスタイルが適用されます.つまり,<header>
以外の <main>
や <footer>
の中にある <li>
要素には適用されません.
style.css(抜粋)
header li {
color: #00a000;
}
index.html(抜粋)
<header>
<ul>
<li>ヘッダの箇条書き</li>
</ul>
<hr>
</header>
<main>
<ul>
<li>メインの箇条書き</li>
</ul>
</main>
ブラウザでの表示結果
- ヘッダの箇条書き
- メインの箇条書き
セレクタを >
で区切った場合は 子結合子 となります.下のコードの場合 <header>
要素の直接の子要素である <p>
要素についてのみスタイルが適用されます.つまり,<header>
の子要素として <div>
があり,その子要素として <p>
がある場合,この <p>
要素には適用されません.
style.css(抜粋)
header > p {
color: #00a000;
}
index.html(抜粋)
<header>
<p>
header 直接の子要素です.
</p>
<div>
<p>
header, div の子要素です.
</p>
</div>
</header>
ブラウザでの表示結果
header 直接の子要素です.
header, div の子要素です.
セレクタリスト,子結合子,子孫結合子およびその他を簡単な表で整理しておきます.これらの使い分けは慣れないうちは難しく,CSS の学習がある程度進んだ段階でこのページに戻ってくると良いでしょう.
書き方の例 | 名称 | 意味 |
---|---|---|
h1, h2 {...} |
セレクタリスト | <h1> 要素と <h2> 要素 |
header li {...} |
子孫結合子 | <header> 要素の中にある <li> 要素 |
header > p {...} |
子結合子 | <header> 要素の直下にある <p> 要素 |
img + p {...} |
次兄弟結合子 | <img> 要素の直後に来る <p> 要素(ただし,両者が同じ親の子同士である場合) |