当前位置: 首页 > 知识库问答 >
问题:

不:第一个孩子选择器

何长恨
2023-03-14

我有一个div标签,包含几个ul标签。

我只能为第一个ul标记设置CSS属性:

div ul:first-child {
    background-color: #900;
}

但是,我下面尝试为每个ul标记设置CSS属性,但第一个除外,但都不起作用:

div ul:not:first-child {
    background-color: #900;
}

div ul:not(:first-child) {
    background-color: #900;
}

div ul:first-child:after {
    background-color: #900;
}

我如何用CSS写:“每个元素,除了第一个”?

共有3个答案

薛承基
2023-03-14

由于IE6-8不接受:not,我建议您:

div ul:nth-child(n+2) {
    background-color: #900;
}

因此,您在其父元素中拾取每个ul,第一个除外。

请参阅Chris Coyer的“有用的:第n个孩子食谱”一文,了解更多第n个孩子的例子。

聂宜
2023-03-14

这个CSS2解决方案(“任何ul一个接一个ul”)也可以工作,并且受到更多浏览器的支持。

div ul + ul {
  background-color: #900;
}

: not: nth兄弟姐妹不同,IE7支持相邻的兄弟姐妹选择器。

如果在页面加载后JavaScript更改了这些属性,那么应该查看IE7和IE8实现中的一些已知错误。请参阅此链接。

对于任何静态网页,这都应该可以完美地工作。

苏培
2023-03-14

您发布的版本之一实际上适用于所有现代浏览器(支持CSS选择器级别3):

div ul:not(:first-child) {
    background-color: #900;
}

如果您需要支持传统浏览器,或者如果您受到:not选择器的限制(它只接受一个简单的选择器作为参数)的阻碍,那么您可以使用另一种技术:

定义一个范围大于您想要的规则,然后有条件地“撤销”该规则,将其范围限制在您想要的范围内:

div ul {
    background-color: #900;  /* applies to every ul */
}

div ul:first-child {
    background-color: transparent; /* limits the scope of the previous rule */
}

在限制范围时,请为正在设置的每个CSS属性使用默认值。

 类似资料:
  • 问题内容: 我有一个包含多个标签的标签。 我只能为第一个标记设置CSS属性: 但是,我以下尝试为除第一个标签之外的其他每个标签设置CSS属性不起作用: 如何在CSS中编写“除第一个元素外的每个元素”? 问题答案: 一个您发布的版本的实际工作为所有现代浏览器(如CSS选择3级的支持: 如果您需要支持旧版浏览器,或者由于选择器的限制(仅接受一个简单的选择器作为参数)而受到阻碍,则可以使用另一种技术:

  • 问题内容: 我有以下标记: 我希望将样式设置为“一个”和“三个”。 但是,标记也可以是: 我尝试使用以下CSS: 但是,正如预期的那样,这是每个样式的第一个子元素的样式。 如何更改CSS,以便可以定位属于的第1个和第3个? 问题答案: 您不能仅凭CSS选择器来做到这一点。和兄弟组合器仅限于共享其父代的子代/兄弟姐妹,正如其名称所暗示的那样,并且CSS选择器无法解释父子结构的这种变化,也没有类似选择

  • 问题内容: 我需要格式化类似于下面的HTML。基本上,引号是 可选的 ,我需要删除正文段落的首字母。 我的CSS看起来像这样: 引入报价后,该功能目前不起作用。AFAIK我无法选择不是“ quote”类的文章的第一个子项P。如果无法弄清楚,我将使用jQuery,但现在我正在寻找一种仅使用CSS的方法。 提前致谢! 问题答案: 如果可以使用CSS3选择器,请尝试使用这些选择器(组合在一起): 否则,

  • 问题内容: 可以说我们有以下代码: 您将如何选择第一个属性等于3的孩子?我在想,也许这可以做到: …但是没有用 问题答案: 该伪类仅着眼于第一子节点,因此,如果第一个孩子是不是,则选择一无所有。 没有类似的属性过滤器伪类。一种简单的解决方法是选择每个对象,然后排除第一个对象之后的内容 当然,这仅适用于样式。如果您要出于样式之外的目的挑选该元素(因为标记看起来是任意XML而不是HTML),则必须使用

  • 问题内容: 使用标准列表,我尝试选择最后2个列表项。我有多种排列方式,但似乎没有什么可以选择最后2种: 我知道类似CSS3的新选择器,但如果可能的话,我更喜欢一些可以在更多浏览器中使用的选择器(不必特别在意IE)。 问题答案: 这将选择列表的最后两个项目:

  • 实现一对多关系并选择父项和子项我有一个关系,我想进行查询(选择*) 文件夹。JAVA 作者。JAVA 我的请求: 我得到了这样的结果: 我的代码有什么问题?什么是问题,当我执行查询我得到了这个结果...我想得到这个结果