手機HTML5開發,大部分都使用現有的框架,這裏簡單比較幾個流行的UI 框架。做者(啓明星工做室 http://www.dotnetcms.org) 比較一下幾款流行的HTML5框架,我的意見,僅供參考。css
(1)MUI html
網址: http://dev.dcloud.net.cn/mui/jquery
優勢:MUI是數字dclound推出的一款流行框架,我的感受,這是目前最好的一個H5 UI框架,使用簡單,操做方便。web
缺點:MUI爲了達到原生效果,從新定義了Form表單裏input,select,textarea全部的樣式,這給用戶自定義樣式帶來的不便。bootstrap
例以下圖左圖是MUI裏,直接使用<select>標籤,是沒有下拉箭頭的,這會讓用戶迷惑。小程序
右圖,咱們能夠在HTML代碼裏,從新定義select讓其顯示。微信小程序
select { -webkit-appearance: menulist !important; }
其實,我在用bootstrap時,到想起當時bootstrap開發人員在定義table時的一句話,他們說他們本能夠經過CSS重寫table,可是,由於有些網站須要原始的table樣式,因此,爲了和前者兼容,他們方式了瀏覽器
經過全局CSS改變table默認樣式,若是開發人員像使用bootstrap的table樣式,只要增長 <table class="table"> 就能夠了,這樣,既不增長多少工做量,又能兼容過去的程序。微信
我認爲這點值得MUI借鑑。app
(2)WeUI
優勢:WeUI 是一套同微信原生視覺體驗一致的基礎樣式庫,由微信官方設計團隊爲微信內網頁和微信小程序量身設計,令用戶的使用感知更加統一。因此,其樣式基本上核微信「長」的同樣。
缺點:抱歉,我對WeUI的評價不高,這和騰訊的大名徹底不符。我本來對WeUI指望甚高,結果實際測試很是使人失望。這些失望表如今太過於微信化,限制了他是使用廣度。
更主要的是,其CSS名稱與其餘H5框架徹底不同,以簡單的面板爲例,公認的命名方式爲:
<div class="panel"> <div class="panel panel-header"> 標題 </div> <div class="panel panel-body"> 主體 </div> </div>
但weui的命名相似以下:header縮寫成了hd,body所寫成了bd,類的名稱,你叫作page__title也沒問題,問題是page和title之間是2個下劃線,而有些採用類名稱採用:中劃線和下劃線一塊兒用。
如weui-cell__hd。當你大量編寫頁面時,你腦子裏會不停的切換想着WeUI類到底叫什麼名字。
<div class="page panel "> <div class="page__hd"> <h1 class="page__title">Title</h1> </div> <div class="page__bd"> <div class="weui-cell"> <div class="weui-cell__hd"><label class="weui-label">手機</label></div> <div class="weui-cell__bd"> <span class="weui-input" id="mobile" ></span> </div> </div> </div> </div>
WeUI還有一個致命缺點:多一個span或者div均可能使得你的樣式徹底失效。例如以下,可能僅僅在body與tab__hd之間多了一個div,就會致使你頁面失效。
<body> <div class=tab__hd> </div> </div> </body> 和 <body> <div> <div class=tab__hd> </div> </div> </div> </body>
(3)Jquery Mobile
優勢:這應該是最先的HTML5框架,
缺點:Jquery雖然很流行,可是不得不說JqueryMobile是一個失敗的做品。如今好像都中止更新了。JM最大的缺點是速度太慢。
這也難怪,瀏覽器支持的是CSS與JS,可是JM經過自定義不少data-*來重寫渲染最終的樣式,
例如以下代碼的 data-enhanced,data-icon,這些data-*屬性,瀏覽器並不能識別,須要JM的JS引擎解釋後,轉換爲CSS語言,
當頁面大量使用這些data-*屬性時,其性能極具降低,如今應該沒什麼人使用了。
<input type="button" data-enhanced="true" value="Enhanced - Left"> <input type="button" data-icon="delete" value="Left (default)">
(4)Bootstrap
優勢:兼容PC和手機,其推出的理念與樣式,啓發了不少後起之秀,例如將頁面分紅12份,根據分辨率不一樣,自動組合燈。在PC樣式上,具備不可替代的做用。
缺點:也正由於他須要兼容PC和手機,使得雖然PC樣式很優秀,可是手機效果只能說是「中規中矩」,畢竟「又想馬兒跑得快,又想馬兒不吃草」是不現實的。
(5)Framework7
沒用過,可是看起來還不錯,值得推擠。
(6)Amaze UI
沒用過,其實Amaze有 基於 React.js 的移動端 Web 組件庫 http://t.amazeui.org 由於是基於React.js的,感受入門門檻挺高
(7)Layui
網址 http://www.layui.com
Layer目前人氣極具上升,不過她仍是偏重於PC