總結:如何修改美化radio、checkbox的預設樣式
現在前端頁面效果日益豐富,預設的input元件樣式顯然不能滿足設計需求。前段時間開發專案中剛好接觸到相關的需求,在此特地整理下修改radio、CheckBox樣式的方法。
原理:大致原理都是使用原生的checkbox或input標籤,在其後面設定相關聯的label元素。給<input>元素設定為透明,然後通過定位讓使用者看到的是<label>元素,利用css的原生屬性來判斷使用者的操作,設定選中後的label樣式,即 input[type=checkbox]:checked+label{}
利用css3偽元素實現樣式修改
html程式碼
<p>您的性別:</p> <div class="radio-sex"> <input type="radio" id="sex1" name="sex"> <label for="sex1"></label> <span>男</span> </div> <div class="radio-sex"> <input type="radio" id="sex2" name="sex"> <label for="sex2"></label> 女 </div>
css樣式
.radio-sex { position: relative; display: inline-block; margin-right: 12px; } .radio-sex input { vertical-align: middle; margin-top: -2px; margin-bottom: 1px; /* 前面三行程式碼是為了讓radio單選按鈕與文字對齊 */ width: 20px; height: 20px; appearance: none;/*清楚預設樣式*/ -webkit-appearance: none; opacity: 0; outline: none; /* 注意不能設定為display:none*/ } .radio-sex label { position: absolute; left: 0; top: 0; z-index: -1; /*注意層級關係,如果不把label層級設為最低,會遮擋住input而不能單選*/ width: 20px; height: 20px; border: 1px solid #3582E9; border-radius: 100%; } .radio-sex input:checked+label { background: #3582E9; } .radio-sex input:checked+label::after { content: ""; position: absolute; left: 8px; top: 2px; width: 5px; height: 12px; border-right: 1px solid #fff; border-bottom: 1px solid #fff; transform: rotate(45deg); }
優點:充分藉助了CSS3的優勢,無需使用js和圖片,僅用純CSS3就可搞定
缺點:相容性較差,僅支援IE9+
案例:
利用圖片實現樣式修改
實現思路
1.設定input 屬性hidden對該input進行隱藏
<input type="radio" name="type" id="adviceRadio1" value="1" checked hidden/>
2.藉助label for標籤通過id繫結input ,這樣在點選label時實際就是點選了input
<input type="radio" name="type" id="adviceRadio1" value="1" checked hidden/> <label for="adviceRadio1" class="advice"></label>
3.定義label的樣式,設定未選中狀態的背景圖
.advice{ height: 12px; width: 12px; display: inline-block; background-image: url('https://caiyunupload.b0.upaiyun.com/newweb/imgs/icon-unchecked.png'); background-repeat: no-repeat; background-position: center; vertical-align: middle; margin-top: -4px; }
4.使用相鄰選擇器設定選中狀態label的樣式
input[type="radio"]:checked + .advice{ background-image: url('https://caiyunupload.b0.upaiyun.com/newweb/imgs/icon-checked.png'); }
以上是radio單選框的實現程式碼,checkbox也是類似 將input type定義成checkbox即可
利用外掛實現
awesome-bootstrap-checkbox外掛
awesome-bootstrap-checkbox是一款可以美化Bootstrap核取方塊和單選按鈕的外掛。它使用純CSS編寫,沒有任何的javascript檔案。它通過在原生Bootstrap元件的基礎上做一些小改動,即可完成漂亮的美化效果。
演示地址:http://awesome-bootstrap-chec...
外掛下載:https://www.bootcdn.cn/awesom...
注:需要引入awesome-bootstrap-checkbox.css、font-awesome.css以及font awesome對應的字型font檔案
pretty.css
pretty.css是一款純css3漂亮的checkbox和radio美化效果。pretty.css可以和多種字型圖示結合使用,對原生的checkbox和radio進行美化,還可以製作按鈕點選時的動畫效果。
演示地址:http://www.htmleaf.com/Demo/2...
外掛下載:https://www.bootcdn.cn/pretty...
小編知道的方法先介紹到這裡,大家如有更好的方法歡迎留言討論。
相關文章
- IFE糯米學院-checkbox和radio樣式的美化實現
- checkbox/radio自定義樣式
- 修改easyui panel 預設樣式UI
- Css實現checkbox及radio樣式自定義CSS
- AndroidJava動態修改CheckBox樣式AndroidJava
- 如何修改移動裝置按鈕預設樣式
- css:預設的checkbox、input、radio太醜了?我來教你改變使用純css3改寫的帶動畫的預設樣式CSSS3動畫
- 滑鼠樣式美化
- elementui+vue修改elementUi預設樣式不生效UIVue
- css實現修改預設滾動條樣式CSS
- element UI -- 預設樣式修改不成功的問題UI
- 如何修改PbootCMS預設麵包屑導航樣式及自定義設定方法boot
- CSS3 checkbox核取方塊和radio單選框美化效果CSSS3
- 如何設定連結樣式
- html預設的樣式HTML
- JQuery統一複寫美化專案中所有radio單選按鈕樣式jQuery
- 元件庫通用樣式設計總結元件
- win10滑鼠指標美化設定在哪 修改滑鼠指標樣式的具體方法Win10指標
- 自定義 checkbox 樣式
- 【css】 如何修改select的樣式CSS
- javascript如何修改元素的樣式JavaScript
- elementUI radio修改單選框多選框選中樣式及自定義其他樣式。UI
- css的checkbox樣式變化CSS
- 前端樣式總結前端
- 更改bootstrap的預設樣式boot
- PbootCMS預設麵包屑導航樣式修改及自定義的設定方法boot
- checkbox樣式研究——按鈕
- jQuery的radio,checkbox,select操作jQuery
- radio美化程式碼例項
- CSS3 checkbox美化效果CSSS3
- EasyUI之Form load函式IE8下設定Radio或Checkbox的BUGUIORM函式
- input[type="radio"]自定義樣式
- jQuery 獲取 radio checkbox 值jQuery
- 純css美化滾動條樣式CSS
- 更改BootStrap popover的預設樣式boot
- radio單選按鈕美化效果
- 瀏覽器預設樣式瀏覽器
- 如何修改 React Native 的預設字型React Native