比如#ff0000,我该是用具体的颜色名来命名呢,还是用语义来命名呢?
1.用颜色名命名: .c-red{color:#ff0000;}
优点:是什么颜色一眼就能看出来,并且html中可以到处复用
缺点:如果我要修改#ff0000为#faf703(黄色),那么c-red和颜色值就对不上了 ,而且如果我有多个红色的时候不好区分。
2.用语义命名: .error{color:#ff0000;}
优点:改色值的时候不会影响语义
缺点:不能到处复用,可能会需要定义多个相同色值的语义类
我觉得这两种方式都有一定的局限性,不知道大家在工作中会怎样定义颜色的类名呢?
PHPz2017-04-17 11:45:18
有一個網站,專門做顏色命名的,大家都遵循這個規範的話,應該會好很多
http://chir.ag/projects/name-...
另外,我覺得應該是兩種結合的,顏色可以當作變數來命名
PHPz2017-04-17 11:45:18
我的想法是:讓設計師參與前端建置流程
用 CSS 預處理器,把所有色值全部放在一個檔案裡,像是 color.scss,這個檔案就交給設計師維護了,命名的事也都讓設計去操心。
設計師在交付設計稿標註時,也用顏色名稱去標註,而不是色值。
這麼做有三個優點:
有一個文件記錄了部件的色值定義,有利於設計師自己保持設計的一致性和對項目 UI 整體顏色的把控<🎜>
天蓬老师2017-04-17 11:45:18
我是用第一種,如果像white black這些簡單三個重複的我就用重複的部分命名:
.black{color:#000}
.black6{color:#666}
.blackbg{background:#000}
.black6bg{background:#666}
.white{color:#fff}
.whitee{color:#eee}
.whitebg{background:#fff}
.whiteebg{background:#eee}
如果像你說的red 我就在後面加1,2,3...:
.red{color:red}
.red1{color:#ff0000;}
.red2{color:#ff0001;}/*随便写的我不知道是不是红色系,反正就这个意思*/
黄舟2017-04-17 11:45:18
分情況討論吧:整體來說命名偏向語意化。
第一種:如果你採用less,scss這種預編譯處理,建議使用placeholder去替換,如果沒有,也確實存在這種複用的情況,那就建議採納這種原子性的命名方式。
第二種: 如果像錯誤訊息,提示訊息,警告訊息這種的,還是使用語義化命名。