惱人的樣式重構(gòu)_老孟不會寫sass

104f22695e872d6d4965c3ce7b1cdf7.png

事情的開始是這樣的

項目要重構(gòu)UI,然而老孟的css功力很淺很淺,對sass更是一知半解。學(xué)習(xí)機(jī)會來了~~

情況不妙

原項目是用ionic搞得,框架本身提供了茫茫多的sass變量提供給開發(fā)者進(jìn)行自定義主題,長下面這樣:

ionicsass.png

梳理了一下老代碼發(fā)現(xiàn)事情沒那么簡單,主要問題如下:

  1. 原開發(fā)者絲毫不理會官方方案,所有主題相關(guān)的樣式均使用高權(quán)重選擇器強(qiáng)硬覆蓋。
  2. 所有主題樣式全擠在app.scss一個文件里。
  3. pages各玩各的,缺乏通用樣式,冗余代碼太多。
  4. 老員工們并不怎么會ng,沒有擁抱組件化,通用組件~~零
dark.jpg

規(guī)范的推進(jìn)勢在必行......

出于上述問題,修改官方提供的改變量方式可以扔一邊了~~我的方案如下:

  1. 少覆蓋多擴(kuò)展,繞開問題1的坑。
  2. 制定規(guī)范防止問題2,問題3惡化。
  3. 至于問題4,放棄吧。想解決這個問題需要對其他員工進(jìn)行培訓(xùn),成本太高。介于公司性質(zhì)和灑家的江湖地位,這事兒別想了。

關(guān)于方案1

其實方案1并不合理,但我一己之力難以改變其他組員的錯誤使用方式,這是一種將錯就錯的妥協(xié)。關(guān)于此事兒我一句也不想提。

關(guān)于方案2

所謂難者不會,會者不難。對不起,我是難者。(;′д`)ゞ全寫在app.scss顯然不靠譜。老孟堅信好的項目是結(jié)構(gòu)美麗的。谷歌一下如何布置sass的結(jié)構(gòu),推薦下面這篇影響力較大的文章,其他優(yōu)秀文章不一一列舉了。

https://www.sitepoint.com/architecture-sass-project

說得很細(xì),由于ng本身的組件化特性,就沒必要搞得像文中那么復(fù)雜了。暫定結(jié)構(gòu)如下:

//main.scss單純作為入口,引入所有文件。
// Modules and Variables 
@import './modules/_all.scss';
//Base
@import "./base/_layout.scss"; 
//Cover
@import "./cover/footer"

解釋一下:

  • modules文件夾放變量和函數(shù)們,簡化寫法,易于迭代。

  • base文件夾存放通用的碎片樣式。比如居中之類的非業(yè)務(wù)性的寫法。

  • cover是對ionic提供的組件的覆蓋與擴(kuò)展。其實叫components更合適,但angular對component的‘私有’樣式另有寫法,結(jié)合目前的狀況(看問題一),干脆叫cover了。

剩下的工作就是往上搬磚了。

做個總結(jié)吧:

純主觀看法:

  • 不做一票兒買賣,寫一步想兩步,考慮日后的迭代和擴(kuò)展。
  • 適度抽象,sass有變量和各種繼承寫法,純css可以用屬性和類名控制(我對此也沒啥經(jīng)驗,說這話有點虛)。
  • 業(yè)務(wù)是業(yè)務(wù),組件是組件,框架是框架。分開管理別抱團(tuán)。
  • 勤看官網(wǎng)少吃虧!經(jīng)驗主義不可取。

硬廣結(jié)尾:

大連玄銘堂

這個官網(wǎng)不是我做的...

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 我很喜歡Ionic的原因是,默認(rèn)的組件都是開箱即用型的。一切看起來很整齊,平滑,整潔,同時也有點枯燥。我喜歡簡單,...
    老??写a閱讀 518評論 0 1
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML標(biāo)準(zhǔn)。 注意:講述HT...
    kismetajun閱讀 28,809評論 1 45
  • 再談CSS 預(yù)處理器2016-09-09 Justineo JavaScript轉(zhuǎn)自:http://efe.bai...
    抓住時間的尾巴吧閱讀 1,763評論 0 2
  • 前言 什么是CSS預(yù)處理器 定義:CSS預(yù)處理器定義了一種新的語言,其基本思想是,用一種專門的編程語言,為CSS增...
    SA_Arthur閱讀 3,209評論 0 18
  • 新年的第一篇更文,想寫點什么呢。就好像發(fā)個朋友圈都找不到圖一樣的不知所措。 有很多很多想寫,又不是很想寫。有些話只...
    藉寞閱讀 294評論 0 0

友情鏈接更多精彩內(nèi)容