2012-10-23 123 views
7

有沒有辦法通過輸入類型排除或選擇標籤,類似於輸入字段?按輸入類型選擇標籤

label:not([type=checkbox]) 
label[type=checkbox] 
+0

你的問題實際上是什麼?你想知道什麼是其他輸入類型......不能清楚地理解..換句話說...... – Vinay

+0

第二個絕對有效。 '[attribute = value]'css選擇器適用於任何事物,而不僅僅是輸入。 (你可以得到類的名字,如果它被禁用等)這可能不適用於IE的一些舊版本。我還沒有看到:雖然之前沒有選擇,所以我不能評論它。 – Andrew

+0

@Vinay的問題是,如何在CSS中選擇或排除輸入fieldtype = checkbox的標籤? – InTry

回答

13

如果你給你的複選框特定ID的那個開始時都同樣的事情,你可以做到以下幾點:

HTML

<input type="checkbox" id="chkTerms" /> 
<label for="chkTerms">Read terms & conditions</label> 

CSS

label[for*="chk"], label[htmlfor*="chk"] 
{ 
css here 
} 

可能只是現代瀏覽器。 編輯:我剛剛試過小提琴:link,它在Chrome和IE 8 & 9但不是7.我沒有在FF中嘗試它。

EDIT2:只是爲了解釋這裏發生了什麼,方括號尋找一個要求的屬性。 asterix將等號的行爲從簡單的等於改變爲意味着包含 - 無論何處for屬性包含「chk」,它都將應用該樣式。你可以用^來代替*,它會把它改成意味着開始而不是包含。編輯3:BoltClock提供了一個修復IE7的評論,我已經更新了包含它的答案。

+0

這正是我所尋找的 – InTry

+1

Y呃,IE7在屬性選擇器方面有問題,'for'是一個你需要使用'htmlFor'的着名例子。 – BoltClock

+0

@BoltClock我不知道htmlfor選擇器。感謝:-)我會更新我的帖子,以包括修復IE7。 – Andrew

3

input[type=checkbox] + label { /*label style here*/ }怎麼樣?如果文本恰好在輸入元素之後,它可能會工作。我沒有測試過。

+0

事實上,它只有在輸入元素後面纔有效:( – InTry

+0

)你可以修改html嗎?例如你可以爲這些標籤添加類,或者使用jQuery去遍歷所有標籤並檢查哪些類型的輸入 – Antti

+0

這是一個很酷的想法,儘管它的侷限性 –

1

您可以使用基本的數據屬性引用您的複選框..

<input type="checkbox" name="checkbox-1" id="checkbox-0" class="custom" /> 
<label for="checkbox-0">Whatever</label> 

如果你想到這...讓我們知道...

+0

我知道我可以使用ID或類,我問是否有可能以其他方式做到這一點,沒有使用'label {style}'然後用'#checkbox-0 {style}'覆蓋它' – InTry

相關問題