CSS去除勾選是一種常見(jiàn)的應(yīng)用,它可以幫助我們實(shí)現(xiàn)多選框和單選框的取消選擇功能。通常情況下,這種效果可以通過(guò)使用CSS偽類來(lái)實(shí)現(xiàn),其代碼如下:
input[type=checkbox]:not(:checked), input[type=radio]:not(:checked) { opacity: 0; position: absolute; } input[type=checkbox]:not(:checked) + label, input[type=radio]:not(:checked) + label { position: relative; padding-left: 28px; cursor: pointer; display: inline-block; margin-right: 28px; color: #666; } input[type=checkbox]:not(:checked) + label:before, input[type=radio]:not(:checked) + label:before { content: ''; position: absolute; left: 0; top: 0; width: 18px; height: 18px; border: 1px solid #bbb; background: #fff; } input[type=checkbox]:not(:checked) + label:after, input[type=radio]:not(:checked) + label:after { content: ''; width: 12px; height: 12px; background: #ddd; position: absolute; top: 4px; left: 4px; border-radius: 50%; transition: all 0.2s ease; } input[type=checkbox]:not(:checked) + label:after { background: transparent; } input[type=checkbox]:checked + label:after, input[type=radio]:checked + label:after { transform: scale(1.1); background: #2196F3; }
以上代碼中,我們使用了:not(:checked)偽類來(lái)選中未被勾選的多選框和單選框,然后通過(guò)樣式設(shè)置將其隱藏。在多選框后面添加了一個(gè)label標(biāo)簽,并通過(guò):before和:after偽類來(lái)創(chuàng)建一個(gè)樣式化的復(fù)選框或單選框。這樣,在用戶勾選之后,:checked和:checked + label:after偽類會(huì)將之前隱藏的未勾選狀態(tài)的樣式化框顯示出來(lái),并且通過(guò)transform和background來(lái)改變它的樣式,以達(dá)到美觀、實(shí)用的效果。