HTML 默認的單選和複選框有多醜大家都是有目共睹,所以我們UI設計的小哥哥小姐姐們在設計時候,爲了美觀經常會設計一些漂亮的單選或者複選框,這就要求我們前端開發童鞋必須去修改HTML單選複選框的默認樣式,當然修改的方式有很多種,我在這裏展示的是如何用CSS來修改。
這裏我主要以我做的一個記住密碼的複選框來做示例
首先上 HTML 代碼
<label for="remmber">
<input class="remmber" type="checkbox" name="remmber" id="remmber">
<span></span>
記住密碼
</label>
CSS代碼
方法一:使用純 CSS 進行選中框和對勾的樣式設置
第一步: 給原生複選框設置樣式使其隱藏
.remmber {
display: none;
}
第二步:設置未選中時複選框的樣式,編寫span的樣式使其顯示爲一個正方形的黑色框
.remmber[type=checkbox]+span {
display: inline-block;
border-radius: .05rem;
width: .28rem;
height: .28rem;
border: .02rem solid #0D1529;
color: #0D1529;
position: absolute;
top: 0;
left: -.5rem;
}
最後一步:設置複選框選中狀態,使用僞類 :after
和 content
屬性添加特殊符號對號表示選中
.remmber[type=checkbox]:checked+span:after {
content: '\2714';
position: absolute;
font-size: 0.28rem;
left: 0.05rem;
}
上述 content 中的特殊字符如果有需要也可以在我的另一篇文章《常用的HTML和CSS content屬性特殊字符歸納》中進行查詢。
方法二:使用背景圖的方式進行選擇框和對勾的樣式設置。
這就更簡單了,只需要在未選中時設置未選中的背景圖
.remmber[type=checkbox]+span {
display: inline-block;
width: .28rem;
height: .28rem;
background: url(未選中圖片的圖片路徑) no-repeat;
}
選中時設置選中的背景圖就可以了。
.remmber[type=checkbox]:checked+span {
display: inline-block;
width: .28rem;
height: .28rem;
background: url(選中圖片的圖片路徑) no-repeat;
}
上述就是我常用的使用 CSS 修改 HTML 默認複選框樣式的方法,修改單選框的方法是一樣的,只需要把 HTML 和 CSS 中的checkbox
改成 radio
就可以了。
如果對優化修改微信小程序初始單選複選框有需求的小夥伴,可以看我的另一篇博文《優化修改微信小程序原生單選(radio)複選(checkbox)框樣式》