シナリオ
ラベルがクリックされたときにサブコンテンツを表示するはずの CSS セレクターがあります。input:checked + element + element
セレクターは、その最終要素にブロックの表示を与える方向に沿っています (デフォルトはなし)。問題は、webkit を除くすべての主要なブラウザーで動作することです。Chrome、Safari、および android 用のモバイル ブラウザー (v2.2 申し訳ありませんが、時代遅れです) はすべて要素を表示できません。Chrome で要素を調べると、本来あるべき要素であることが示されますdisplay: block
が、レンダリングされません。開発者ツールでプロパティのチェックを外してチェックすると表示されますが、表示される前には表示されません。
これは webkit のバグだと思います。
質問
ここにマルチパートの質問があります: これは webkit の既知のバグですか? セレクターに何か問題がありますか? また、Webkit ブラウザーの問題を回避するにはどうすればよいですか (創造的な提案があれば)。
コード
HTML
<input id="c1" type="checkbox">
<label for="c1">Ein</label>
<section>Content</section>
<input id="c2" type="checkbox">
<label for="c2">Zwei</label>
<section>Content</section>
<input id="c3" type="checkbox">
<label for="c3">Drei</label>
<section>Content</section>
CSS
input {
float:left;
clear:left;
visibility: hidden;
position:absolute;
}
label {
color:green;
display:block;
cursor:pointer;
}
section {
display:none;
}
label:after {
content:" +";
}
input:checked + label:after {
content:" -";
}
input:checked + label + section {
display:block;
}
デモ
デモ: http://jsbin.com/epibin/2
ソース: http://jsbin.com/epibin/2/edit