2014-01-16 97 views
0

我試圖實現此功能,但是當我單擊複選框(複選框被選中)時,複選框不會更改其背景圖像並保持與以前一樣。如果選中,更改複選框的圖像背景

如何我試圖做到這一點:

<div class="checkbox"> 
    <input class="car_checkbox" type="checkbox" value="1"> 
    <span class="private_zip"></span> 
</div> 

和CSS:

input[type="checkbox"] { 
    opacity:0; 
    height: 18px; 
    width: 18px; 
    position: absolute; 
    top: 0; 
    left: 0; 
    z-index: 2; 
} 

input[type="checkbox"] + span.private_zip { 
    width: 18px; 
    height: 18px; 
    display: inline-block; 
    background: url("checkbox.png") no-repeat; 
} 

input[type="checkbox"]:checked + span.private_zip { 
    width: 18px; 
    height: 18px; 
    display: inline-block; 
    background: url("checkbox_check.png") no-repeat; 
} 

爲什麼圖像不切換一旦該複選框點擊?

謝謝

+3

該代碼會改變跨度不是複選框的BG的規定在你的OP。 JSFiddle請 –

回答

0

你的CSS的最後一位應該是:

input[type="checkbox"]:checked { 
    width: 18px; 
    height: 18px; 
    display: inline-block; 
    background: url("checkbox_check.png") no-repeat; 
} 

取出+ span.private_zip部分。

+0

只需指出,這不適用於所有瀏覽器。處理輸入和樣式並不容易。 – Alvaro

+1

技術上正確,但我不認爲我們在這裏有完整的故事。 –

+0

我試圖去除跨度部分,但仍然是一樣的。這個解決方案應該在IE8 +和其他瀏覽器中工作。 – user984621

相關問題