2012-07-01 55 views
3

我有2種類型的標籤,標準標籤(如第一行)和標籤,其中包含輸入字段。什麼CSS規則可以讓我選擇全部<label>但排除所有碰巧包含<input>的標籤?選擇<label>但不包括<label>其中包含<input>

<label for="type">Some Label</label> 

<label for="type"> 
    <input type="checkbox" value="1" id="type">Some Label 
</label> 

回答

2

這樣做的最好方法是向它們或至少向它們中的一個添加不同的類。

CSS沒有父級選擇器,所以你不能檢查包含其他javascript的元素。

一些背景資料:
CSS selector for "foo that contains bar"?
Is there a CSS parent selector?
CSS Parent/Ancestor Selector
Complex CSS selector for parent of active child

+0

所以你有2個班'label'和'標籤換input'吧? –

+0

是的。正如我所說的,你不必創建第二堂課。您可以創建1個課程並將其應用於標籤,而無需輸入。 – rcdmk

2

的 「相鄰的兄弟」 選擇應該工作,IF您正在尋找標籤+輸入對:

label+input 
{ 
    /* rules */ 
} 

這會忽略你的l基本上是嵌套的輸入,除非在標籤之後碰巧有輸入。

見SitePoint的CSS參考:http://reference.sitepoint.com/css/adjacentsiblingselector

+1

@sameold這個問題,它不是IE6和7兼容。如果這對你來說不是問題,你可以爲所有的標籤定義樣式,並將下一個標籤(緊跟在之前或之前,不包裹)定義爲輸入。 – rcdmk

+0

@rcdmk啊,真的。我已經養成了一種忘記這兩種......壞習慣的壞習慣。 –

相關問題