為什麼前端工程師多不願意用 Bootstrap 框架?


特彆強調自己不用bootstrap的前端。我覺得只有兩種。
其一,他們有很好的設計師,可以滿足他們對於樣式的風格的各種要求。
其二,他們以為bootstrap都只是原生的樣子吧。

有大量好的設計是基於bootstrap來做的。
我覺得bootstrap的基於less的分模塊的設計,可以很方便的讓你在它的基礎上改造出自己的樣式。
如果你的網站是傳統的各種控制項,布局,並不令類的話,
我想不清楚有什麼理由一定要拒絕這樣一種設計層次清楚的css的框架,當然,你如果偏愛
foundation 或 semantic UI之類的也OK。

或者你自己整理了一套通用的css的框架,可以和你自己的設計師很好的配合。


誰說大家不願意用bootstrap的?其實如果一個前端工程師能夠對bootstrap或者foundation這類框架有深入的了解的話,對技術、效率的提升還是挺明顯的。在產品研發上,使用bootstrap也能獲得一個順暢的開始。
就說css部分吧,得歸功於less,bootstrap的css代碼是模塊化、有層次感的,如下圖所示:

整個代碼庫分成了幾個層級和模塊:variables mixins、reset styles、core、components、utilities等。對於一個短期項目來說,bootstrap作為框架能夠很好的支撐開發。對於長期的項目或產品來說,即便不使用bootstrap,前端架構也會逐漸演化出 core、components、utilites之類的模塊和層級,所以為什麼不是用前人寶貴的革命成果呢?

不過悲傷的是,所有上面說的事情都有一個前提,主要兩點:一是熟悉前端架構和bootstrap代碼,二是比較懶,不願意搞個人創作和探索。前者需要開發者對前端有一定的研究和經驗,這就擋住了一些人,後者又被很多勤奮、自信的大牛所瞧不起。。。


誰說前端不用?很多內部人員用的後台界面我們就是用bootstrap拼的,畢竟省時間,還有react+bootstrap,給web ui組建化提供一條新思路。


不願意用?為嘛不願意用,而且是都不願意用。。。題主說過了吧。。那麼好的框架,Github上star數最多的一個框架呢。
用Bootstrap來建站那麼方便,不願意用的應該是覺得它的原生樣式不好看?樣式可以自己在定製嘛。。

另外,Bootstrap官方提供的的sass版本使用起來很方便啊。看看人家的源碼就覺得這是很好的實踐啊,真正深入Bootstrap的源碼的話著實能夠學到很多實用的技巧呢。

不過,如 @又欠說的,合適的才是最好的。:)


不分清需求就噴是耍流氓。

因為bootstrap壓根就不是給前端用的。

這東西是給完全沒有任何設計水平的後端程序員(比如我)用的。

作用是在完全沒有美工幫助的情況下,快速/敏捷的做出一個還看得過去的應用,並且從頭到尾不用考慮如何做出xxx效果,只需要按著教程搭就行了。

如果沒有bootstrap,我敏捷做出來的東西根本就不能看……


設計出稿千變萬化,最後套了bs也還是得根據各個組件寫一堆樣式。

另外,如果類名套的太多的話做樣式的狀態轉換調整很難,寫相關的數據操作引起的樣式變動會很繁瑣。

而自己寫的話,經驗足夠,一般都還能比較優雅地處理掉。可能整個頁面樣式調整布局變換隻是給container 改個class 而已。

其實只是bs全套對於真前端來說冗餘太大而已。畢竟不是所有網頁都要用響應式。我還是挺喜歡bs的input的,稍微改改就能用起來。


Bootstrap 面向的場景是需要快速搭建整站,或者單獨抽取某個模塊使用。作為一個 UI 框架,Bootstrap 的組件足夠使用,並且也挺美觀。

那麼為什麼會有不願意用它的情況呢?

因為不適合。如果希望開發長期的項目或者製作產品類網站,那麼就需要實現特定的設計,為了在維護項目中可以方便地按設計師要求快速修改樣式,肯定會逐步編寫出各種業務組件、工具類,相當於為項目自行開發一套框架。這種時候如果繼續直接使用 Bootstrap 或其他第三方框架作為底層修改,可能就會面臨以下問題:

  • 需要複寫大量樣式代碼,CSS 的層次變得混亂,造成維護上的不便
  • 產生大量冗餘代碼
  • 項目長期打磨可能引入很多第三方插件,Bootstrap Class-name 命名較為簡單,容易引起衝突

因此,是否使用 Bootstrap 完全是取決於項目的實際情況,但在不適合直接使用 Bootstrap 時仍然可以參考 Bootstrap 眾多實用的組件,以及 OOCSS 與 SMACSS 概念在其中的實際應用。

最後推薦 QMUI 團隊 · GitHub 的開源 UI 框架 GitHub - QMUI/qmui_web: A front-end framework designed to improve the efficiency of UI development.,為幫助開發者實現特定的一整套 UI 而設計的框架。


首先反對 @Lyragosa 的回答:

因為bootstrap壓根就不是給前端用的。
這東西是給完全沒有任何設計水平的後端程序員(比如我)用的。
......

@Lyragosa 毫無根據地給 Bootstrap (BS) 限定了目標人群
這樣的回答被頂到前排會造成更多人誤解 BS,有必要解釋一下
前端工程師沒有不願意用 BS,它總是作為一種選擇被考慮著

BS 的官方描述為:

The world"s most popular mobile-first and responsive front-end framework.

它足夠現代的解決方案與清晰的文檔,以至於成為目前最流行的前端 UI 框架
除了基本使用,還能它享受龐大且成熟的生態,如:Bootswatch[1],Start Bootstrap[2]

我所知道的,優秀的前端工程師,都不會只停留在 BS 基本使用上[3]
通過定製與了解 BS 源代碼來更安心地,更高級地使用它
深入它的背後,發現 BS 以 Less (Sass), OOCSS 與 SMACSS 為基礎
用精鍊的代碼把經過上萬次提交與討論產出的結晶融合了進去

BS 有這麼多優點,前端工程師為什麼不願意用?
除了在具體場景的利弊權衡下有其它更好的選擇
大概就是不屑與用 BS 寫出糟糕樣式的人為伍吧

References:

  1. http://bootswatch.com
  2. startbootstrap.com
  3. https://www.zhihu.com/question/29566952/answer/45235200

不用的理由:
1. 可能無法滿足設計稿的需求
2. 對簡單頁面來說有些龐大
3. 並不是很熟悉

用的理由:
1. 快速制定一套團隊編碼規範
2. 在熟悉的情況下,開發速度快
3. 有大量第三方模板、組件
4. 易於維護

========


設計師不用 BS,前端怎麼用?
設計師用了 BS,還需要前端嗎?

BS 只適合兩種團隊:
沒有設計師的團隊;
沒有前端的團隊。


原本想來回答這個問題的,一看到一群裝逼回答,真是夠了。求各位爺自己寫個牛逼的框架,讓吾等等下之人也來git clone一下吼不吼啊。


因為你把很少一部分人當成了所有的前端工程師。


bootstrap方便快速上手,做響應式設計比較方便。弊端是使用時總想遵照它那套東西,反而導致有些實現思路受限了。

我都是告訴網頁設計師bootstrap的特性,主要是1170為主內容最大寬度和12格柵格,讓他按這個標準去設計,我套bootstrap就容易多了。做出來的網站也不會很像bootstrap。

下面這個網站就是wordpress+bootstrap做的,http://www.chuntao.org.cn


Bootstrap是框架,更像模板,定義個類,樣式就幫你弄得好好的,看起來是很流弊,可有毛用啊,設計師給的稿從來就沒有一點點內容和bt的樣式一樣,全部都得自己寫。
當然,Bootstrap高手也能把它用的出神入化,打包一些常用的,符合自己開發環境的樣式庫,還有less管理css的工程化,規範化,都是一些值得研究的地方。
後端狗搭搭後台用用也是蠻好的,對自己的審美和設計不自信想開發個人站用用也是蠻好的,拓展前端知識廣度研究研究也是蠻好的。

庫給你自由,框架,給你枷鎖。


我統計一下我們公司:武漢切圖網路技術有限公司,簡稱切圖網, 的項目數據,2015年累計做的前端開發項目有200多近300個, 響應式項目大概有近100個,手機端和pc也是近100個,而響應式裡面基於bootstrap的只有一個, 其他都是基於原生css3多媒體查詢來做的。

為什麼很少用bootstrap,一是bootstrap很優秀但是老外的產品,適合老外的瀏覽器使用情況, 兼容ie9以上,在國內ie7/8/9那麼多使用的情況下, 這個明顯是不適用的, 二是,再拿到設計稿以後,設計多樣化,導致了很多情況下是不適用的。

我個人的見解,如果不考慮低版本瀏覽器的用戶(ie9以下),並且沒有設計稿的情況下,或者 設計嚴格按照 柵格化格子畫出來的設計稿,是可以用bootstrap的,都是個人意見,僅供參考。


有些人只是純粹為了裝逼B而已,話說領導還讓我給那些後端培訓bootstrap來著。不過話又說回來bootstrap也不過是個框架而已,實際使用樣式什麼的多半要重寫,這改動量可是不小的,我估計應該是怕麻煩


那是因為,一般水平的前端,在複雜項目中,還真是駕馭不了boot。boot本身並不複雜,但是實戰中,都是用它的模板+插件,國外有大量的此類資源,免費的、商用的。看上去真是花哨,用起來會有一堆問題。就比如最常用的select2多選插件,要學會使用,也得好好的去看一下說明文檔呀。

我在長沙跟幾個團隊合作過,基本方法就是,後端程序員用bootstrap來自己寫,我做為前端顧問,幫他們調試複雜問題。實戰中有幾個重要的特點:
1、每個後端都覺得它很簡單,但用起來就發現不知道如何搭HTML結構。boot恰好是一種對結構有要求的框架,結構用錯了,所有CSS都落空。因此一定要先去細緻的看模板例子。
2、大量的boot+jquery的插件,需要做調試。我一個項目看了多達十幾個常用jq插件...
3、不同大框架之間的兼容性問題,比如我就幫著調試過jquery+echart+boot的寬度兼容性問題、easyui+boot的彈窗問題。那個項目中,其實根本就沒必要引入easyui做彈窗,boot有自己的彈窗插件,但是我之前的前端那哥們(據說是拓維的),還是義無反顧的用了,害死人。
4、css屬性才真是後端程序員的死穴,boot動不動就是好幾層的結構嵌套,要善用chrome調試器,一層層的扒,看CSS的引用關係。昨天我就幫著調試了一個"相對定位z-index覆蓋了兄弟元素的絕對定位"的BUG。還有些比如可以使用偽元素before、after搞定的問題-------但後端程序員根本不知道,他們習慣用的是js去改寫結構。

綜上,我覺得要熟練使用boot,其實主要要具備,HTML+CSS的調試能力,JQUERY插件文檔閱讀能力。


為什麼用bootstrap?我做設計+前端一年,自己完全不想用這個東西,全是老闆逼著用的。
自己想做的效果必須寫大量的代碼給他蓋住,導致代碼冗餘繁雜,設計效果總是有誤差。實際上很多人想用的無非是所謂柵格系統、自適應等等,但是這些東西並不需要多少行代碼。
說白了個人認為bootstrap就是給請不起UI和前端的純後台程序猿組成的公司用的,讓你不懂設計的程序猿能夠快速寫出還看的過去的頁面。至於你要跟上設計的趨勢,讓自己的界面設計也擁有競爭力,那bootstrap只能拉低你的速度,增加你的代碼量。
那些說用bootstrap是為了讓界面規範的,你們見過UI嗎?知不知道有個玩意兒叫StyleGuide,那是UI做的。


是前端工程師不用嗎?不要本末倒置,是UE不用好不啦,前端自己可以選擇的比如後台系統都是用bootstrap的


主要用用柵格系統


推薦閱讀:

怎樣獲取 Coursera 視頻中的中文字幕?
95年的時候做一個網頁一萬塊是真的么?
為什麼這麼多網站選擇藍色作為主色調?藍色適合哪些類型的網站?
如何評價 Google 的新 Logo 及 VI ?
前端的意義是什麼?

TAG:網頁設計 | 前端開發 | 交互設計 | BootstrapTwitter |