仅使用CSS,当只有一个项目时,是否可以使UL列表没有项目符号?

时间:2014-05-09 22:40:53

标签: css

是否可以仅使用CSS,以获得甚至可以在IE8上运行的解决方案

  1. <ul>列表包含2个或更多项时,请照常将项目符号放在项目前面。
  2. 当只有1个项目时,则不要显示子弹,因为单个项目前面有子弹可能会很奇怪。
  3. http://jsfiddle.net/SzQL6/37/

    上显示了一个示例
    <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上运行)吗?

1 个答案:

答案 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/