2012-08-26 227 views
3

我正在開發一個MVC3應用程序,需要選擇checkboxes標籤。css複選框標籤選擇器

在ASP MVC3中,您有幫助程序創建代碼的一部分。所以對於一個checkbox的代碼如下所示:

<input id="Jumping_successleicht" type="checkbox" value="true" name="Jumping_successleicht"> 
<input type="hidden" value="false" name="Jumping_successleicht"> 
<label for="Jumping_successleicht"> 
<span>leicht (4)</span> 
</label> 

現在,我想我可以使用下面的代碼來選擇label

input[type=checkbox] + label { 
    background: url("../../Images/Controls/Checkbox.png") no-repeat scroll left center transparent; 
    clear: none; 
    cursor: pointer; 
    margin: 0; 
    padding: 5px 0 4px 24px; 
} 

但它不工作。它看起來像labelinput必須彼此相鄰。

有沒有任何ony有解決方案如何解決這個問題?

回答

4

沒有可用於普遍選擇<label for="#">元素的目標的CSS選擇器。 +選擇器是「相鄰兄弟」選擇器。

有幾個解決方法:

  • 直接把<input>元素<label>元素中(你不會需要for=""屬性,這種方式)。
  • 由於每個<input />需要具有唯一的id=""屬性集才能使用<label for="">,只需在樣式表中通過它們的ID選擇複選框即可。
  • 爲每個適當的輸入分配類。
  • 爲每個輸入及其標籤創建包裝。
+0

參考組合子已經提出在服務於這個特定目的下一個規範,但是看起來還沒有決定是否將其列入與否:http://www.w3.org/ TR/selectors4 /#idref-combinators猜猜我們必須等着瞧。 – BoltClock

3

也許你可以試試這個嗎?

 input[type="checkbox"] + label{ 
      background-color:red; 
     }