无法创建适当的css选择器

时间:2017-07-25 13:09:21

标签: css css-selectors

网页中有两种类型的链接。一种类型的链接包含class和itemprop,其中只包含其中的类。在下面的链接中,第一个是class和itemprop,第二个是class。但是,如果我希望我的选择器不在其中选择带有“itemprop”的链接,那么该选择器将如何显示?

<a href="/los-angeles-ca/mip/crispy-crust-hollywood-location-443529?lid=1000226108758" itemprop="name" class="business-name"></a>

<a href="/los-angeles-ca/mip/casa-bianca-pizza-pie-13519?lid=1000203432051" data-analytics="{&quot;target&quot;:&quot;name&quot;,&quot;feature_click&quot;:&quot;&quot;}" rel="" class="business-name" data-impressed="1"></a>

我尝试了下面的一个,但它选择了所有:

a.business-name

当我尝试使用它时,它只选择包含两个项目的链接:

a[itemprop="name"].business-name

当我尝试使用它只获取其中的类时,它不起作用:

a[not(itemprop="name")].business-name

2 个答案:

答案 0 :(得分:1)

我认为需要进行一些语法更改。 这可以完成这项工作

a.business-name:not([itemprop="name"])

答案 1 :(得分:1)

传统的解决方案是使用特异性和级联:

具体而言,您可以声明

的样式
a.business-name[itemprop]

的样式相同
a

在级联中,您可以为

声明不同的样式
a.business-name

由于最后一个选择器不太具体,因此它不会覆盖级联上方更具体的选择器。

&#13;
&#13;
a {
display: block;
line-height: 32px;
font-size: 16px;
}

a, a.business-name[itemprop] {
color: red;
font-weight: normal;
}

a.business-name {
color: green;
font-weight: bold;
}
&#13;
<a href="#">Random Normal Link</a>

<a href="/los-angeles-ca/mip/crispy-crust-hollywood-location-443529?lid=1000226108758" itemprop="name" class="business-name">Link with itemprop</a>

<a href="/los-angeles-ca/mip/casa-bianca-pizza-pie-13519?lid=1000203432051" data-analytics="{&quot;target&quot;:&quot;name&quot;,&quot;feature_click&quot;:&quot;&quot;}" rel="" class="business-name" data-impressed="1">Link without itemprop</a>
&#13;
&#13;
&#13;