用純CSS美化radio和checkbox

Radio和checkbox須要美化嗎?答案是必須的,由於設計風格一直都會變化,原生的樣式百年不變確定知足不了需求。css

先看看純CSS美化事後的radio和checkbox效果:查看html

項目地址:magic-checkgit

在CSS出現以前,咱們美化radio和checkbox須要藉助JavaScript,最具表明性的就是icheck,它功能強大複雜而且主題不少。icheck這種美化方案很好很強大,可是也有不少缺點:github

  • 過重,須要引入JS、CSS,還有圖片或者字體圖標,並且還依賴jQuerynpm

  • 擴展性差,Pure js項目還好,若是是Angular.js、React、Vue.js或者Meteor項目,通常都須要本身對icheck作wrapper瀏覽器

  • 樣式自定義性很差,修改樣式只能從新作圖app

  • 事件行爲跟原生不一致字體

  • 可維護性差、複雜,誰用誰知道設計

因此,若是的項目不需兼容古董瀏覽器的話,用CSS美化radio和checkbox是最好的選擇,這樣什麼都不用依賴,只需CSS,無JS,無圖片,無字體圖標。code

爲了更好的在項目中重用,我把美化的代碼寫成一個項目,叫magic-check,寓意像魔法同樣去美化radio和checkbox。

用法很是簡單,最好用Bower和npm進行管理,先Install:

  • bower:  bower install --save magic-check

  • npm:  npm install --save magic-check

而後加載CSS文件:

<link rel="stylesheet" href="bower_components/magic-check/css/magic-check.css">

而後,只要給input元素加上一個CSS類magic-checkbox或magic-radio就能夠:

Radio

<input class="magic-radio" type="radio" name="radio" id="11"> 
<label for="11">Normal</label>

Checkbox

<input class="magic-checkbox" type="checkbox" name="layout" id="1"> 
<label for="1">Normal</label>
相關文章
相關標籤/搜索