我正在研究CSS最佳實踐和方法,如OOCSS和SMACSS以在使用Twitter Boostrap 3和LESS的中等範圍項目中使用。我開始掌握這些方法,但是我發現如何處理響應式設計和CSS模塊關係有些麻煩。如何使用ooccss和smacss處理響應式設計中的css模塊更改
例如,假設我有一個按鈕模塊,其中包含項目中使用的所有不同類型的按鈕(顏色,形狀,大小)。我怎樣才能讓按鈕更改取決於設備。移動設備中的相同按鈕應該很大,而桌面設備中的按鈕應該很大 繼OOCSS之後,我應該有2個皮膚類,比如btn - default和btn - large。但是因爲每個設備的HTML都是一樣的,所以我不能在HTML中切換這個類。在模塊的CSS中使用媒體查詢會根據設備大小更改按鈕的大小似乎不是一個好主意,因爲我將耦合模塊與此特定需求(以及如果我想要一個普通按鈕稍後移動?)。
作爲另一個例子,我有產品部分模塊有不同的佈局(垂直/水平)。如果我想在桌面和移動設備中使用垂直佈局,那麼該怎麼辦?我面對完全相同的問題。我可以輕鬆創建2個不同的子模塊(product-horiz,product-vert),但我無法更改它們。
我可以使用JavaScript來切換類,但它不覺得正確,並會打破禁用JS的設計。你可以告訴我,如果一個元素從一個設備改變到另一個設備,那麼設計可能是不正確的,但這對抑制這種設備是一個真正的限制。
那麼你對這個問題有什麼想法。是否有任何普遍的做法來面對它?
您的基本按鈕樣式應該在'modules.scss'中的按鈕模塊中定義。在這裏應用任何可以超越所有按鈕的樣式。然後處理smacss'states.scss'文件中的差異(最後編譯)。您應該在狀態文件中有一個「按鈕」部分,您可以在其中處理媒體查詢和可改變按鈕外觀的獨特類。希望有所幫助,如果需要,我可以詳細闡述。 – JordanBarber 2016-04-06 14:08:26