ここでは、セレクタの設定方法をまとめています。ご参考になれば幸いです。
セレクタの設定方法は、以下の7通りがあります。
さて、どれを使うべきなのか?
同時に2つ以上の方法で記述することもできるので、目的に応じて使い分ければ良いと思います。
エレメント(タグ)を , (カンマ)で区切って指定します。
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <!-- あ --> <link rev="made" href="mailto:pokochant@eastmail.com"> <title lang="ja">文書タイトル</title> <style type="text/css"> <!-- h4,h5,h6{background-color:lime; color:green;} /*h4,h5,h6のスタイルを統一。*/ --> </style> </head> <body> <h4>第4見出しも</h4> <h5>第5見出しも</h5> <h6>第6見出しも同じスタイルです。</h6> <address>作者名やメールアドレス</address> </body> </html>
複数のエレメント(タグ)に同じスタイルをまとめて設定する。 |
スタイルシート対応ブラウザであれば、OKです。安心して使いましょう。
親エレメントに含まれる子エレメントに対してスタイルを設定します。エレメント(タグ)をスペースで区切って指定します。 , (カンマ)ではありません
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <!-- あ --> <link rev="made" href="mailto:pokochant@eastmail.com"> <title lang="ja">文書タイトル</title> <style type="text/css"> <!-- p strong {background-color:lime; color:green;} /*p内のstrongのみのスタイル。*/ --> </style> </head> <body> <p>p内の<strong>strong</strong>のみに設定してます。</p> <div>p以外の<strong>strong</strong>は設定されません。</div> <address>作者名やメールアドレス</address> </body> </html>
p内のstrongのみに設定してます。
エレメント(タグ)の相関関係によりスタイルを設定する。 |
スタイルシート対応ブラウザであれば、OKです。安心して使いましょう。
もちろん、テーブル・エレメント、リスト・エレメントのようなネスト可能な場合です。
例えば、olでネストすると、
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <!-- あ --> <link rev="made" href="mailto:pokochant@eastmail.com"> <title lang="ja">文書タイトル</title> <style type="text/css"> <!-- ol li{color:blue;} ol ol li{color:red;} --> </style> </head> <body> <ol> <li>ここは青色<ol><li>ここは赤色</li><li>ここも赤色</li></ol></li> <li>ここも青色</li> </ol> <address>作者名やメールアドレス</address> </body> </html>
classはエレメントごとに意味を分けることが出来ます。例えば、異なるスタイルを持ったdivを複数作成出来ます。
. (ピリオド)に続けてclass名を指定します。
また、エレメント(タグ)に付ける形と付けない形があります。付ける形の場合は、設定したエレメント(タグ)しかclassを呼び出せません。付けない形の場合はどのエレメント(タグ)でもclassを呼び出せます。
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <!-- あ --> <link rev="made" href="mailto:pokochant@eastmail.com"> <title lang="ja">文書タイトル</title> <style type="text/css"> <!-- p.blue{color:blue;} .red{color:red;} --> </style> </head> <body> <p class="blue">class名blueを呼び出しています。</p> <div class="blue">divではclass名blueを呼び出せません。</div> <div class="red">class名redは、どのエレメント(タグ)でも呼び出せます。</div> <address>作者名やメールアドレス</address> </body> </html>
class名blueを呼び出しています。
エレメント(タグ)に付ける形 | |||||||||||||||||||
エレメント(タグ)に付けない形 |
スタイルシート対応ブラウザであれば、OKです。安心して使いましょう。
idはエレメントごとに意味を分けることが出来ます。例えば、classと同じように異なるスタイルを持ったdivを複数作成出来ますが、W3Cではidはユニークでなければならないとうたっています(1つのHTML内で1度しか呼び出すことが出来ない)。ところが、現状のブラウザでは複数回呼び出せます。
# (シャープ)に続けてid名を指定します。
また、エレメント(タグ)に付ける形と付けない形があります。付ける形の場合は、設定したエレメント(タグ)しかidを呼び出せません。付けない形の場合はどのエレメント(タグ)でもidを呼び出せます。
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <!-- あ --> <link rev="made" href="mailto:pokochant@eastmail.com"> <title lang="ja">文書タイトル</title> <style type="text/css"> <!-- p#green{color:green;} #purple{color:purple;} --> </style> </head> <body> <p id="green">id名greenを呼び出しています。</p> <div id="green">divではid名greenを呼び出せません。</div> <div id="purple">id名purpleは、どのエレメント(タグ)でも呼び出せます。</div> <p id="purple">Internet ExplorerとNetscape Navigatorは複数回呼び出せます。</p> <address>作者名やメールアドレス</address> </body> </html>
id名greenを呼び出しています。
Internet ExplorerとNetscape Navigatorは複数回呼び出せます。
エレメント(タグ)に付ける形 | |||||||||||||||||||
エレメント(タグ)に付けない形 |
は、エレメント(タグ)に付ける形の場合に動作しません。注意して使いましょう。
擬似クラスはエレメントに対して付けるものです。現在のブラウザが対応しているものはaエレメントに内在するものです。これによりaエレメントの表示属性を変更できます(bodyエレメントの属性と同じ事が出来ます)。 : (コロン)を付けて指定します。以下の4種類があります。
この他にも、現在のブラウザが未対応のものに以下があります。
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <!-- あ --> <link rev="made" href="mailto:pokochant@eastmail.com"> <title lang="ja">文書タイトル</title> <style type="text/css"> <!-- a:link {color:#0080FF;} /*リンクスポット(LINK)*/ a:visited {color:#8000FF;} /*訪問済みリンク(VLINK)*/ a:active {color:#FE8C01;} /*アクティブなスポット(ALINK)*/ a:hover {color:red;} --> </style> </head> <body> <p><a href="#pagetop">ハイパーリンク文字</a><br> 上のリンク文字にマウスカーソルを合わせると文字色が赤色になります。<br> クリックするとFE8C01色になります。<br> 参照後は8000FF色になります。</p> <address>作者名やメールアドレス</address> </body> </html>
ハイパーリンク文字
上のリンク文字にマウスカーソルを合わせると文字色が赤色になります。
クリックするとFE8C01色になります。
参照後は8000FF色になります。
link | |||||||||||||||||||
visited | |||||||||||||||||||
active | |||||||||||||||||||
hover |
はactiveとhoverが未対応ですので、注意して使いましょう。
クラスと併用する場合、aエレメント . クラス名 : 擬似クラス名の順に記述する。
状況依存セレクタと併用する場合、aエレメント : 擬似クラス名 エレメント(タグ)の順に記述する。
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <!-- あ --> <link rev="made" href="mailto:pokochant@eastmail.com"> <title lang="ja">文書タイトル</title> <style type="text/css"> <!-- a.green:visited {color:green;} /*クラス名greenの訪問済みリンク(VLINK)*/ a:hover i {color:red; background:aqua;} /*aエレメント内におけるiエレメントのhoverスタイル*/ --> </style> </head> <body> <p><a href="#pagetop" class="green">クラス名greenのリンク文字</a><br> 上のリンク文字は、参照後には緑色になります。</p> <p><a href="#pagetop"><i>iエレメントのリンク文字</i></a><br> 上のリンク文字にマウスカーソルを合わせると、<br> 文字色が赤色になり背景色がアクア色になります。</p> <address>作者名やメールアドレス</address> </body> </html>
クラス名greenのリンク文字
上のリンク文字は、参照後には緑色になります。
iエレメントのリンク文字
上のリンク文字にマウスカーソルを合わせると、
文字色が赤色になり背景色がアクア色になります。
擬似エレメントもエレメントに対して付けるものです。以下の最新ブラウザは対応しました。現在のブラウザは対応していません。
first-line(1行目のスタイルを指定します。)とfirst-letter(1文字目のスタイルを指定します。)があります。ブロックレベルエレメントにのみ適用できます。
first-line | |||||||||||||||||||
first-letter |