我们试图通过隐藏实际的复选框输入元素并使用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
有关更接近我们实际场景的示例,请参阅this fiddle。我们错过了什么吗?我们如何隐藏复选框元素,以便它仍然可以工作并且不占用布局中的空间?