CSSの書き方
CSSの書き方ということで、前回紹介したのがstyle属性に書く方法です。
実は、これ以外にもCSSを書く場所があるので、これを今回紹介します。
style要素
ひとつはstyle要素です。style属性とは違うので注意しましょう。
これは、基本的にhead要素の中に書かれるものです。
具体例を見てみましょう。
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>テスト</test>
<style type="text/css">
body {
background-color:#000000;
color:#ffffff;
}
</style>
</head>
<body>
<h1>見出し</h1>
<p>段落</p>
</body>
</html>
このページを表示してみると、やはり黒背景に白い文字で表示されます。
しかし、今回body要素にはstyle属性はありません。
かわりにhead要素の中にstyle要素があり、body { }
というブロックの中に、前回同様のスタイルシートが書いてあるのです。
この「body」というのはもちろんbody要素のことで、「body要素に対してこのCSSが適用される」ということを示しています。この、どの要素に適用されるか決める記述のことをセレクタといいます。適用されるCSSは前回同様ですが次のようになっています。
background-color:#000000; color:#ffffff;
改行がありますがこれは見やすさのためで、改行は無くても構いません。
それでは、セレクタをbody以外にしてみましょう。例えばp要素の文字色を赤にしたいとしましょう。そのときは次のようにしますね。
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>テスト</test>
<style type="text/css">
p {
color: #FF0000;
}
</style>
</head>
<body>
<h1>見出し</h1>
<p>段落1</p>
<p>段落2</p>
<p>段落3</p>
</body>
</html>
いま、p要素を3つに増やしてみましたが、どれが赤くなるのでしょうか。実は、全部赤くなります。このように、style要素内に書かれたCSSというのは、当てはまる要素すべてに適用されます。
最初の例のbody要素というのは絶対に1つしかありませんから、style要素内に書こうがstyle属性に直接書こうが大して変わらないように見えます。しかし、見やすさのためにstyle要素内に書かれることが多いです。
ちなみに、style要素の中と、style属性の中に書いてあることがかぶったらどうなるのでしょうか。具体的には次のような場合です。
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>テスト</test>
<style type="text/css">
p {
color: #FF0000;
}
</style>
</head>
<body>
<h1>見出し</h1>
<p style="color:#0000FF;">段落1</p>
<p>段落2</p>
<p>段落3</p>
</body>
</html>
今、段落2と段落3は何もstyle属性がないので、style要素に書かれた指定である「文字色は赤」が適用されることが分かるとおもいます。
しかし、段落1もp要素ですから当然そのstyle属性の中の「文字色は赤」が適用されるのですが、その一方でそのp要素のstyle属性には「文字色は青」と書いてあるのです。
つまり、style要素に書いてあるほう(赤)とstyle属性に書いてあるほう(青)の、どちらが優先されるかという話になります。
これは、style属性のほう(青)が優先されます。
これは、なんとなくp要素に直接書かれているほうが密着している感じが出てるので、なんとなく理解するといいでしょう。
次回は、セレクタについてさらに詳しく解説します。