- 締切済み
「+」で次に来るタグを操作するCSSの記述方法は?
http://9-bb.com/css%E3%81%A0%E3%81%91%E3%81%A7%E3%83%A1%E3%83%8B%E3%83%A5%E3%83%BC%E3%81%8C%E9%96%8B%E3%81%84%E3%81%9F%E3%82%8A%E9%96%89%E3%81%98%E3%81%9F%E3%82%8A%E3%81%99%E3%82%8B%E3%82%A2%E3%82%B3%E3%83%BC/ 上記のアドレスで、下記の説明がされています。 「今回は、ulの表示・非表示でアコーディオンの役目をさせていますが、divなど他のタグに変えても出来ます、+を利用して次に来るタグが対象になっています」 input[type="checkbox"].on-off:checked + ul{height: 200px;} この様に記述すれば、「inputタグ」の次に来るタグ、すなわち「ulタグ」を、「+」によって操作できると言う説明です。 それでは、「次に来るタグ以外のタグ」は操作する方法はどうするのですか? input[type="checkbox"].on-off:checked + .test ul{height: 200px;} 上記の様に記述すれば、<div class="test">~</div>を操作できますか?
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- ORUKA1951
- ベストアンサー率45% (5062/11036)
変なサイトを見ないこと。 「+を利用して次に来るタグが対象になっています」違います。それも初歩的な嘘。 +ある要素に続く要素を示す隣接セレクタと呼ばれるものです。 タグはその要素を示すマークアップであって、要素自体を示すものではない。これはHTMLのようなマークアップ言語を扱うときの基本中の基本。 input[type="checkbox"].on-off:checked + ul{ HTMLが糞だからセレクタの書き方も糞になる。on-offなんてクラス名はつけないでしょう。classは、要素では文書構造が示しきれないときに、文書構造を補完するためにつける。 input[type="checkbox"].on-off:checked + .test ul{ CSS2以降は基点セレクタを書くこと。上記(.test)の様になくても、そこに全称セレクタが省略してあると判断して、*.testと解釈はしてくれるけど。 まず、CSS2.1の 5.セレクタ( http://momdo.s35.xrea.com/web-html-test/spec/CSS21/selector.html ) 6 プロパティ値とカスケーディング、継承の割り当て( http://momdo.s35.xrea.com/web-html-test/spec/CSS21/cascade.html ) をマスターしましょう。 >上記の様に記述すれば、<div class="test">~</div>を操作できますか? 前後の文書構造が分からないので答える事は不可能です。 ただ、input要素は行内要素ですから、その直後にdiv要素が閉じられもせず繰ることはありえません。 form <form> |-- p <p> | |--input <input> |--div </p> <div> <ul> のはずですから、HTMLが正しければそのような書き方にはならないはずです。 もちろん、 input[type="checkbox"].on-off:checked + ul{ にもね。