你不需要Bootstrap
有人聽到我說對 Bootstrap 沒有好感,是不會感到驚奇的。Four Kitchens【注1】為在各種 Drupal 活動上的響應式 web 設計和公司所做培訓的其中一個目標,就是為開發者提供他們需要的工具,而不要使用 Bootstrap 或其它類似的工具。我希望澄清我覺得 Bootstrap 對于大多數網站是錯誤的工具的原因,以及你能夠用什么來替代。
1. 反設計模式
首先,Bootstrap 支持太多的反設計模式。反設計模式是一種看似不錯的設計思想,經常被復制,但是對于一個網站來說,通常是糟糕的思想。首先,Bootstrap 沒有給你一個真正的響應式設計。根據我們正在把網站建立到手機、平板和桌面上的思想,它應當有 4 個 breakpoint。這與基于內容建立網站、不管用什么設備瀏覽都要確保站點可用性,是相反的。關于設備如何不能適應這種離散類別的一個好例子就是三星 的 Galaxy Mega,它既是一個較大的智能手機,又是一個小平板。設計應該兼顧到這種設備,即使它不是一個明確的平板或智能手機。
基于 class 的網格系統通常也是一個問題,因為我們正在限制自己。網格應該適應內容本身,而不是對 class 的結構產生影響。我們不應當使用 breakpoint 來限制我們做一個 12 列的布局。我們應該圍繞內容設計網站,產生讓人尖叫的移動優先的布局。一句話:我們值得擁有更好的。
2. 你應當使用自己的設計
Bootstrap 網站看起來都一樣,它們都用到了相同的前端代碼。甚至這些主題使用了很多你或許不需要的樣式。不過對于你的網站而言,你應該用盡可能少的 CSS 來做你的設計。當你從一開始就只能用你自己代碼的時候,為什么你應該覆蓋一些東西呢?
3. 更好的標簽
我討厭過多的 class、非語義的 class 搞亂我的標簽。我想讓我的網站是干凈的、易讀的,在我產生標簽時盡可能少些阻礙。除了對于干凈標簽的期望,還有不想使用這種基于 class 的系統的若干理由。很多 CMS,包括 Drupal 在內,都用自己的觀點和方法來輸出標簽和 class,把 Bootstrap 貫穿在標簽里,這是非常痛苦的。是的,它管用,不過,有很多方法。但是,這比你從頭就產生自定義 CSS 要花費更多的時間和精力。
4. Saas
在我的論點里,這是一個關鍵點,我通常得到如下反應,“是的,但是我需要制作快速原型,從第一天起我就沒有時間自己寫 CSS。”在 Sass 社區開始制作可插拔擴展、以支持使用 100% 的自定義代碼之前,剛才說的沒錯。不僅僅你能用自定義代碼,而且從第一天起你就在根據原型編寫可發布的代碼。Team Sass 已經做了大量工作以支持 custom grid、media query 和極度容易的樣式。你可以的,這些工具使之成為可能。
Bootstrap 的適用范圍
我強烈建議不要使用 Bootstrap,永遠不要提倡在一個線上網站使用。話雖如此,它也不全是不好的,它是一群優秀的工程師和設計師向世界貢獻的一些偉大思想。首先,它是 學習的一種好方式,可以看看一些有趣的樣式和 JavaScript 是如何被使用的。如果你是前端工作的新手,或者想在一個基礎的層級看看響應式網站設計是如何運行的,那么簽出代碼。這是學習一些前端例子如何運行的不錯的 方法。還有,如果你正在開發一個后端管理頁面,只在內部使用,那么 Bootstrap 就是一個偉大的工具,你不必做全部的設計就擁有了 UI 塊。由于這種代碼不需要極好的性能,不管其設計是不是從其它 UI 元素偷來的,這都沒有關系,Bootstrap 就是最好選擇。
總結
不要使用 Bootstrap。真的,不要用。你可以做得更好,設計得更好,代碼寫得更好。像 Sass 之類的 CSS 預處理器讓你得到需要的快速原型,在這一點上,Sass 的社區工具就是你的黃油面包。
</div>