2014-01-16 4 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

Этот код изменит Б.Г. пролета не CheckBox, как указано в вашем OP. JSFiddle please –

ответ

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

Смежные вопросы