我試圖使用複選框自定義圖像,在這個問題討論:圖片更換複選框
Pure CSS Checkbox Image replacement
我複選框出現在一個網格,所以不需要有相關的標籤他們。但是,我發現如果標籤不存在,那麼在該問題中討論的技術就不起作用。
例如,這裏的相關CSS:
input[type=checkbox] {
opacity: 0;
}
input[type=checkbox] {
height: 17px;
width: 17px;
background: url('/resources/img/checkBox-unchecked.png') 0 0px no-repeat;
}
input[type=checkbox]:checked {
background: url('/resources/img/checkBox-checked.png') 0 0px no-repeat;
height: 17px;
width: 17px;
padding: 0 0 0 0px;
}
聲明只是一個簡單的input
不渲染圖像:
<input type="checkbox">
但是,如果我修改CSS,追加+ label
,並在標記中添加標籤,正如解決方案中討論的那樣,它可以工作:
input[type=checkbox] {
opacity: 0;
}
input[type=checkbox] + label {
height: 17px;
width: 17px;
background: url('/resources/img/checkBox-unchecked.png') 0 0px no-repeat;
}
input[type=checkbox]:checked + label {
background: url('/resources/img/checkBox-checked.png') 0 0px no-repeat;
height: 17px;
width: 17px;
padding: 0 0 0 0px;
}
<input type="checkbox"><label></label>
這如預期呈現。
爲什麼第一個解決方案不起作用?
我該如何實現這一點而不必添加不需要的標籤?
謝謝!其他問題/答案沒有說清楚(你有)是該解決方案沒有設計複選框的樣式,它的樣式是標籤。該複選框處於隱藏狀態。這一切都只是抽菸而不是鏡子。 –