在這里開始記錄前端的學習記錄~ 以及一些個人經驗想法神馬的~
好好奮斗啦哈哈~
ok,go to the point.
最近遇到要修改復選框樣式的問題,但是系統默認是無法更改到樣式的,所以就坑爹了..
網上搜到有許多解決方法,其中大部分都是模擬checkbox以實現自己想要的效果
從各種解決方法中選了一個自己覺得最妥當的解決方法,下面是我最終采用的方法:
設置復選框為完全透明,修改label樣式代替復選框。
之所以選擇這種方法,主要還是因為label可以關聯上復選框,同時可以調出所需要的樣式效果並顯示出來。
話不多說post代碼+效果~
1 CSS代碼: 2 /*CheckBox樣式*/ 3 .comList_checkbox 4 { 5 opacity:0; 6 } 7 /*label樣式*/ 8 .comList_forCheckbox 9 { 10 width:20px;height:20px; 11 color:Red;cursor:pointer; 12 text-align:center; 13 font:bold 20px/100% '宋體'; 14 display:inline-block; 15 border-radius:.2em; 16 -webkit-box-shadow:inset .08em .08em .1em #000; 17 background-color:#fff; 18 }
1 HTML代碼: 2 <label id="formyCheckBox" for="modeCheckBox" onclick="changeCheckbox()" class="comList_forCheckbox"></label> 3 <input type="checkbox" id="myCheckBox" class="comList_checkbox" />
1 function changeCheckbox() { 2 var mylabel = document.getElementById('formyCheckBox'); 3 if (mylabel.innerHTML == "√") 4 mylabel.innerHTML = ""; 5 else 6 mylabel.innerHTML = "√"; 7 }
另外:
如果通過css設置了復選框的大小,雖然外觀上復選框的樣式不變,但實際上他的觸發范圍會變大了,大家有空可以試試。