1

试图获得一个内联列表而不在ul和之间插入额外的标签li。我需要这样做,因为基本上我们的客户用来创建文档的应用程序有一个“一个标签对应一个选定的值”的事情,否则只是偷偷溜进<br/>去然后收工是非常基本的。

请访问http://jsfiddle.net/EkQKL/3/以获取我正在处理的工作示例。

我正在使用以下 CSS:

ul {
    margin:0 0 0 2em;
    padding:0 0 0 2em;
    font-weight:bold;
    text-indent:-2em;
    list-style-type:none;
}    

ul li {
    font-weight:normal;
    margin-right:1em;
}

ul li:nth-child(n+1){ /*aye, this is the problem*/
    display:inline;
}

...但总是,这似乎只是忽略了 n+1 部分并将其应用于 every li,这反过来又使第一个li依偎在ul. 啊。

所以如果我将它设置为 n+2,我会得到我期望的结果;第一个li是“正常”,其余的都是水平排列的。但是将其设置为n+1希望它单独留下第一个元素,然后应用于display:inline所有后续元素li,但它没有这样做。

我没有能力真正使用很多类或添加额外的 HTML 元素,所以我对这个有点不知所措。我唯一的解决方法是将标题放在ul元素之外 - 其他样式表的其他问题可以应用于此文档。

nth-child我刚刚忽略的东西有什么东西吗?或者这更多地与它display以及如何应用有关?它“感觉像”一个错误,但我并不想假设太多;我可能没有我想的那么聪明。:)

4

1 回答 1

2

这仅仅是因为ul li:nth-child(n+1)表明它应该设置 every 的样式li,即ul从第一个孩子开始的 - 的孩子。本质上,这和 之间没有区别ul li {},因为无论如何它都会为每个孩子设置样式。因此:nth-child(n+1),甚至没有做任何事情。

原因:nth-child(n+2)是有效的,因为它从第二个样式开始li

于 2013-11-02T17:13:56.773 回答