2011-12-16 98 views
2

可能重複:
Is there a CSS parent selector?CSS:樣式化具有特定跨度的特定段落

我試圖風格類「長句」中的一段,其包含一個「背景填充」類的跨度。造型的目標必須是段落而不是跨度。

因此,這種解決方案是不合適的,因爲它的目標跨度:

p.long-sentence span[class="background-fill"] 

這種選擇似乎完美的,但它的目標是一個跨度的「背景填充」的屬性,而不是一類:

p.long-sentence[span="background-fill"] 

能不能做到?或者這對於具有多個變量的選擇器來說太嚴格了嗎?

+0

所以要清楚,你想改變`span.background-fill`的父元素的風格? – justis 2011-12-16 03:03:25

+0

我不認爲這可以做到沒有JavaScript。有條件地嘗試設計父項的事實對我來說很奇怪。如果您動態生成此標記,則爲父級段添加一個額外的類以便設置樣式可能很簡單。 – Ben 2011-12-16 03:03:47

回答

3

這需要使用CSS選擇器4

例如,下面的選擇代表了一個列表項LI獨特 孩子的有序列表OL的:

OL > LI:only-child

然而,下面的一個代表具有 唯一孩子的有序列表OL,這個孩子是一個李:

$OL > LI:only-child

這兩個選擇器代表的結構是相同的,但是選擇器的主體不是。

形式http://www.w3.org/TR/2011/WD-selectors4-20110929/#subject

但是沒有現在的瀏覽器支持CSS選擇器4。所以你需要使用JavaScript。

的jQuery:

$("p.long-sentence:has(span.background-fill)").addClass("otherClass");