ここでは、スタイルシートの記述方法をまとめています。ご参考になれば幸いです。
スタイルシートの記述方法は、以下の4通りがあります。
さて、どれを使うべきなのか?
スタイルシートは、文書から独立したシートであり、スタイルシートを入れ替えることでスタイルが変更できるわけであるから、「外部ファイルの読み込み」が本来の使い方となるでしょう。
しかし、同時に2つ以上の方法で記述する(優先順位は決められています)こともできるので、目的に応じて使い分ければ良いと思います。
cssファイルは、下の例のようにセレクタと設定だけを書き込んだファイルで拡張子はcssとします。
h4 {color:blue; text-align:center;} /*第4見出しは青い色で中央揃えです。*/
HTMLファイル上では、スタイルの設定は行いません。詳細はlinkエレメントをご参照ください。
<!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 href="h4.css" rel="stylesheet" type="text/css"> <link rev="made" href="mailto:pokochant@eastmail.com"> <title lang="ja">文書タイトル</title> </head> <body> <h4>第4見出し(青い色で中央揃えです。)</h4> <address>作者名やメールアドレス</address> </body> </html>
外部ファイルの読み込み。その1 |
スタイルシート対応ブラウザであれば、OKです。安心して使いましょう。
cssファイルは、下の例のようにセレクタと設定だけを書き込んだファイルで拡張子はcssとします。
h5 {color:red;} /*第5見出しは赤い色です。*/
HTMLファイル上では、スタイルの設定は行いません。@import url(h5.css);でh5.cssを読み込みます。;(セミコロン)を忘れずに記述してください。忘れた場合は、動作しません。
<!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"> <!-- @import url(h5.css); /*h5.cssを読み込んでます。*/ --> </style> </head> <body> <h5>第5見出し(赤い色です。)</h5> <address>作者名やメールアドレス</address> </body> </html>
外部ファイルの読み込み(@import)。その2 |
は未対応ですので、注意して使いましょう。
例えば、テーブルのcssファイル、リストのcssファイル、背景のcssファイルなどを個別に作り、それぞれをひとつのベースcssファイルに読み込んで使用することも出来ます。
この例では、@importコマンドによってh4.cssとh5.cssをhn.cssに読み込んでいます。
h1{color:green;} h2{color:white;} h3{color:black;} @import url(h4.css); /*h4.cssを読み込んでます。*/ @import url(h5.css); /*h5.cssを読み込んでます。*/
@import url(hn.css);でhn.cssを読み込みます。
<!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"> <!-- @import url(hn.css); /*hn.cssを読み込んでます。*/ --> </style> </head> <body> <h4>第4見出し(青い色で中央揃えです。)</h4> <h5>第5見出し(赤い色です。)</h5> <address>作者名やメールアドレス</address> </body> </html>
HTMLエレメント(タグ)内にstyleアトリビュートで設定します。よってこの場合は、セレクタはありません。styleアトリビュートの対応状況についてはHTML4.01リファレンスで個々のエレメント(タグ)をご参照下さい。
部分的にスタイルを設定したい場合などに利用します。
<!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> </head> <body> <h5 style="color:green;">第5見出し(緑色です。)</h5> <address>作者名やメールアドレス</address> </body> </html>
インラインでの埋め込み |
スタイルシート対応ブラウザであれば、OKです。安心して使いましょう。
インラインでの埋め込みによるスタイルの設定をする際、よく使われるエレメント(タグ)がdivとspanです。何故ならば、このエレメント(タグ)自体は物理表現も意味属性も持たないからです。要するに、これらのエレメント(タグ)で括っても何の影響も与えないのです(divは改行されますが)。
<!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> </head> <body> <div style="color:green;">divで囲むと改行だけされます。 <span style="color:red;">spanで囲むと改行もされません。</span> 分かるかな?</div> <address>作者名やメールアドレス</address> </body> </html>
同じエレメント(タグ)に複数の方法でスタイルが設定されている場合は、インラインでの埋め込みによる方法が最優先され、以下の順で優先されます。
優先順位は上記のとおりですが、複雑なスタイルを記述した場合には、スタイルの重複記述ミス(例えば、外部ファイルやstyleエレメントで基本スタイルを設定している場合に、無意識にインラインでもスタイルを設定してしまうミス)などが起こりやすくなります。
そういった記述ミス等を避けるために !important が用意されています。この !important を付けることにより、インラインでの埋め込みによる方法よりも最優先されます。
<!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"> <!-- h6 {color:blue !important;} /*第6見出しは青い色が最優先です。*/ --> </style> </head> <body> <h6">第6見出しは青い色です。</h6> <h6 style="color:green;">!importantを付けると、 インラインの設定よりも最優先されます。</h6> <address>作者名やメールアドレス</address> </body> </html>
!important |
は未対応ですので、注意して使いましょう。