2013-01-03 93 views
19

是否有一个CSS选择器可以将内联样式的元素作为目标?那么我可以定位第一个跨度而不是第二个仅使用CSS?元素内嵌样式元素的CSS选择器?

如果没有,这可以用jQuery来完成吗?

http://jsfiddle.net/TYCNE/

<p style="text-align: center;"> 
    <span>target</span> 
</p> 

<p> 
    <span>not target</span> 
</p> 
​ 
+0

这要看情况。你只关心内联样式属性的存在吗,还是需要通过特定的内联样式来选择?通过仅仅拥有该属性来选择是简单可靠的,但是具有特定的内联样式...并非如此,除非您可以控制标记。 – BoltClock

回答

13
p[style="text-align: center;"] { 
    color: red; 
} 

然而,这是丑陋的。

+5

并且失败,除非'style'字符串是* exact *匹配。 –

+0

加上一个大卫的评论。如果该段落具有与其相关的任何其他样式,那么您必须将其包含在CSS声明中。 –

+0

我有一个情况,IE忽略了这样的规则。 – Vlad

2

使用:

​p[style] span { 
    color: red; 
}​ 
27

有点晚了茶党,但认为我会分享我的解决方案,我发现&使用。

@ simone的答案是完美的,如果你可以完全匹配style属性。但是,如果你需要的目标,可能有它,你可以使用相关的其他内嵌样式内嵌样式属性:

p[style*="text-align:center;"] 

“* =”是指“任何地方匹配属性下面的值 值。 “

有关其他选择进一步的参考或更多详细信息,请参阅css-tricks.com这个博客帖子:

紧身在CSS选择

http://css-tricks.com/attribute-selectors/#rel-anywhere

4

,如果您喜欢将样式应用于特定的规则声明,您还可以使用样式*。这将匹配具有内联样式的所有元素,而不管所应用的值如何。

div[style*="background-image"] { 
    background-size: cover; 
    background-repeat: no-repeat; 
}