input:checked+label
実際のチェックボックス入力要素を非表示にし、 CSS セレクターでラベルのスタイルを変更することにより、カスタム チェックボックスを含むページを作成しようとしています。これは問題なく動作しますが、IE7 では非表示のチェックボックスがドキュメント フローのスペースを占有し、レイアウトが乱れます。
これは、問題の非常に単純化されたデモンストレーションです。
<style type="text/css">
div.hello { position: absolute; left: 200px; }
</style>
<ul>
<li><div class="hello">Hello</div><div>First</div></li>
<li><div class="hello">Hello</div><div>Second</div></li>
<li><div class="hello">Hello</div><div>Third</div></li>
</ul>
ドキュメント フローから取り出されたブロック要素は、position:absolute
IE7 では依然として垂直方向のスペースを占有しているようです。
新しいブラウザでは次のように表示されます。
First Hello
Second Hello
Third Hello
IE7 では次のようになります。
Hello
First
Hello
Second
Hello
Third
実際のシナリオに近い例については、この fiddleを参照してください。何か不足していますか?チェックボックス要素を非表示にして、引き続き機能し、レイアウト内のスペースを占有しないようにするにはどうすればよいでしょうか?