CSS・はじめの一歩

セレクタってどう書くの?

CSSで「どこを変えるか」を指すセレクタの基本。タグ名での指定、カンマでいくつもまとめて指定する書き方、同じ指定がぶつかったときに後に書いたほうが勝つルールを、その場で動かして確かめます。

CSSは「どこを」「どうする」をセットで書きます。この「どこを」を指す部分がセレクタです。まずは、この基本の形をまるごと1つ、体でおぼえてしまいましょう。

じっさいに見てみよう

p {
  color: blue;
}
部分役割
pセレクタ(段落を指してる)
colorプロパティ(何を変える?=文字の色)
blue値(どうする?=青に)

つまり「段落の文字を、青にする」と読めます。「どこを { 何を: どうする; }」という日本語に置きかえて読むと、急に意味が通ります。

書いた結果を、その場で

さっきのp { color: blue; }を、ほんとうに動かすとこうなります。pと書いた1つの指定で、段落がぜんぶいっぺんに青くなります。

pをセレクタにするだけで、2つの段落が両方とも青く。1つ1つ塗らなくていいのが、セレクタの気持ちよさです。

セレクタはHTMLのタグ名

「どこを」の指定は、HTMLで覚えたタグの名前がそのまま使えます。pと書けば段落ぜんぶ、h1と書けば大見出しぜんぶ。同じ名前のタグを、まとめて変えられます。

h1 {
  color: red;
}

これで、ページ中の<h1>が全部あかくなります。1つ1つ手で塗らなくていい。これがCSSの気持ちよさです。

いくつも指定できる

{ }の中には、指定を何行でも並べられます。1行につき1つ、最後は;で閉じる。

p {
  color: blue;
  font-size: 18px;
}

「段落の文字を、青くして、少し大きくする」。上から順に、変えたいことを積み重ねていくイメージです。

コンマで区切れば、まとめて指定できる

「h1もh2も、同じ色にしたい」。そんなときは、セレクタをコンマで区切って並べます。

h1, h2 {
  color: teal;
}

これでh1とh2の両方が青緑になります。同じ指定を2回書かなくてすむぶん、書きまちがいも減る。「AとBを、まとめてこうする」と読んでください。

h1, h2と書いた1つの指定で、大見出しも中見出しもまとめて青緑に。名前を並べていない段落は、そのままの色で残ります。

同じ指定がぶつかったら、あとが勝つ

もし同じセレクタに、ちがう値を2回書いたらどうなるでしょう。

p {
  color: blue;
}
p {
  color: red;
}

答えは赤です。CSSは上から順に読まれ、あとに書いた指定が前の指定を上書きします。「色を変えたはずなのに効かない」というとき、じつはファイルの下のほうに同じセレクタがもう1つあった、というのは、とてもよくあるつまずきです。

先に「青」と書いても、あとの「赤」が勝って赤い文字に。同じpへの指定は、下にあるほうが残ります。

このレッスンのまとめ

  1. セレクタ=どこを変えるかの目印(タグ名が使える)
  2. セレクタ { プロパティ: 値; }が基本の形
  3. { }の中に、指定をいくつも並べられる
  4. h1, h2のようにコンマで区切ると、まとめて指定できる

やってみよう:見出しの文字を青くする

ここまでのstyle.cssのピンクの背景はそのまま。h1をセレクタにして、しまちゃんの名前の文字を青くしてみましょう。

body {
  background-color: pink;
}
h1 {
  color: blue;
}

上のbodyの行はそのまま。ここで足すのはh1 { color: blue; }の3行です。

ブラウザ表示。ピンクの背景の中、しまちゃんの名前の見出しが青い文字になっている
セレクタで「どこを」変えるかを指定すれば、狙ったところだけ色が変わります。

背景のピンクはまだ仮のまま。

よくある質問

CSSを書いたのに効かないときは?
セレクタのつづりがHTMLのタグ名と合っているか、コロン・セミコロン・波かっこの書き忘れがないかを確認しましょう。1か所の記号ミスで、それ以降の指定がまとめて効かなくなることもあります。
同じ指定を複数のセレクタにまとめて効かせられる?
できます。h1, h2のようにコンマで区切って並べると、1つの指定を複数のセレクタに同時に効かせられます。
セレクタは大文字で書いてもいいの?
タグ名のセレクタは小文字で書くのが基本です。あとで学ぶクラス名は大文字小文字が区別されるので、HTML側と完全に同じつづりで書きましょう。