こんばんは。きわさです。
HTMLを書いているとjavascriptは結構使います。そしてそれと同じくらい使うのがCSSです。
CSSと言ってもidやclassでしか指定していませんでしたが、CSSセレクタは他にも色々あるようなので少し調べてみました。
まず、テスト用のHTMLを用意しておきます。
<body> <div id="d" class="d"> <p id="p">1</p> <p class="p">2</p> <span>3</span> <p>4</p> <span> <p>5</p> </span> <input class="p" type="button" value="6" /> <input type="button" value="7" /> <input type="text" readonly value="8" /> </div> <p>9</p> </body>
では行きましょう。
要素を指定
p { color: #ff0000; }
これは p タグを指定して色を#ff0000(赤)にします。
なのでテスト用のHTMLでは、1, 2, 4, 5, 9が赤くなります。
また、この形は要素の指定なので、span タグを指定したい場合は、
span { color: #ff0000; }
となりますし、すべての要素を指定したい場合は * を使います。
classを指定
.p { color: #ff0000; }
classを指定したい場合は「.」をつけます。
なのでこの場合はp タグではなくclass=”p”の要素の色が赤になります。
テスト用HTMLの2, 6が赤くなります。
classと要素の組み合わせ
input.p { color: red; }
先の、要素の指定とclassの指定を組み合わせることもできます。
この場合は、class=”p”であるinput タグが対象となります。
つまり、テスト用HTMLの6のみが赤くなります。
idを指定
#p { color: red; }
次はidの指定です。idの場合は「#」を使います。
idは重複できないので、1つの要素を対象とします。
テスト用HTMLの1が赤くなります。
子要素を指定
div > p { color: red; }
これはdiv タグの直下にあるp タグを指定しています。
間に他の要素がある場合などは直下ではないので対象外です。
なのでテスト用HTMLでは、1, 2, 4が赤くなります。
また、これはidやclassでも使用できますので、以下は同様の効果があります。
#d > p { color: red; } .d > p { color: red; }
子孫要素を指定
div p { color: red; }
子要素は直下のみでしたが、こちらはdiv タグ下のすべてのp タグに効果があります。
テスト用HTMLでは、1, 2, 4, 5です。
複数の要素を指定
div > span, p { color: red; }
「,」で区切ることで複数のセレクタを指定することができます。
この場合は、「div > span」と「p」です。「div > span」と「div > p」ではありません。
なのでテスト用HTMLでは、1, 2, 3, 4, 5, 9が赤くなります。
隣接要素を指定
span + p { color: red; }
次は「+」です。これで隣の要素を指定できます。
これはspan タグの次のp タグということです。
テスト用HTMLでは、4のみが赤くなります。
属性を指定
input[type='button'] { color: red; }
属性で指定することもできます。これはinput タグのtype 属性が button である要素を指定しています。
テスト用HTMLでは、6, 7が赤くなります。
他にもまだまだあるようですが、
これくらいを覚えておけばだいたいは大丈夫ではないでしょうか。