我可以选择不包含其他元素的元素吗?

时间:2013-06-13 11:37:12

标签: html css

在CSS中,我可以选择一个不包含其他元素的元素吗?

例如:

<div>
    <p>ABC</p>
    <p>
        <q>123</q>
    </p>
    <p>ABC</p>
</div>

我想为每个p元素设置css,但不为包含q的元素设置css。

这可能吗?

2 个答案:

答案 0 :(得分:2)

如果这就是HTML的样子,你可以使用像这样的方法......

div p {
   /* styles */
}

div p q {
  /* styles to *undo* previous styles, plus additional ones */
}

答案 1 :(得分:0)

  

我在p元素上设置了一个边距,我不希望在p&gt; q元素。

不幸的是,单独使用CSS是不可能的。但是,您可以使用JavaScript实现此功能(以下示例使用jQuery):

您可以合并:not:has

$('p:not(:has(q))')

然后,您可以使用.css()修改CSS:

$('p:not(:has(q))').css({
    'margin': '5px'
});

这是JSFiddle demo