是否可以仅使用CSS,以获得甚至可以在IE8上运行的解决方案
<ul>
列表包含2个或更多项时,请照常将项目符号放在项目前面。<input id="an-input">
<ul id="the-list">
<li>error msg 1</li>
<li>error msg 2</li>
</ul>
(错误消息应与错误消息上方输入框的左边缘左对齐,当有子弹时和没有子弹时。)
使用JavaScript,我可以做到:http://jsfiddle.net/SzQL6/40/
但这可以仅通过CSS完成(并且它可以在IE8上运行)吗?
答案 0 :(得分:2)
是的,你可以只使用CSS,虽然它只与CSS3兼容(任何有更新浏览器的人都会有,或者Guffa指出,IE&gt; = 9),使用{{1}伪类选择器:
:only-child
该规则适用于任何.error-list { list-style-position: inside; margin-top: 0; color: #f77 }
.error-list li:only-child { list-style-type: none; }
元素,该元素是其父元素(li
)的唯一子元素。
根据MDN:
.error-list
CSS伪类表示任何元素,它是其父元素的唯一子元素。这与:only-child
或:first-child:last-child
相同,但具有较低的特异性。
请参阅此小提琴上的示例: http://jsfiddle.net/SzQL6/41/