我正在尝试制作一个默认选项列表的窗体,并且还可以扩展以显示一些exta选项.我使用以下CSS代码:
- .myForm .moreOpts {display:none;}
- .myForm #more:checked +*+ .moreOpts {display:block;}
使用以下HTML:
- <form action="#" class="myForm">
- <ul>
- <li>
- <input type="checkBox" id="pref-1" name="pref-1" value="1">
- <label for="pref-1">Foo</label>
- </li>
- <li>
- <input type="checkBox" id="pref-2" name="pref-2" value="2">
- <label for="pref-2">Bar</label>
- </li>
- <li>
- <input type="checkBox" id="more" name="more" value="true">
- <label for="more">More options</label>
- <ul class="moreOpts">
- <li>
- <input type="checkBox" id="pref-3" name="pref-3" value="3">
- <label for="pref-3">Baz</label>
- </li>
- <li>
- <input type="checkBox" id="pref-4" name="pref-4" value="3">
- <label for="pref-4">Qux</label>
- </li>
- </ul>
- </li>
- </ul>
- </form>
该代码在每个浏览器中都能完美工作,Android浏览器和Dolphin除外.我发现an article建议添加this“bugfix”,但只有fixes my problem在海豚.
有没有办法让这个工作的默认Android浏览器呢?
解决方法
您可以在细节元素的帮助下实现此目的. Android
supports it自版本4起.但是,您将不得不处理IE和Firefox,但幸运的是这些浏览器支持CSS3伪状态,包括:checked.
两个合并这两个,只需使用不支持详细信息的浏览器中的复选框.以下是代码中所述的过程:http://jsfiddle.net/hF6JP/1/
编辑:这是最终的解决方案,将标签放在摘要中解决了强制复选框切换选项的问题:http://jsfiddle.net/mYdsT/