html - css中怎么命名顏色比較好?
問題描述
比如#ff0000,我該是用具體的顏色名來命名呢,還是用語義來命名呢?1.用顏色名命名: .c-red{color:#ff0000;}優點:是什么顏色一眼就能看出來,并且html中可以到處復用缺點:如果我要修改#ff0000為#faf703(黃色),那么c-red和顏色值就對不上了 ,而且如果我有多個紅色的時候不好區分。
2.用語義命名: .error{color:#ff0000;}優點:改色值的時候不會影響語義缺點:不能到處復用,可能會需要定義多個相同色值的語義類
我覺得這兩種方式都有一定的局限性,不知道大家在工作中會怎樣定義顏色的類名呢?
問題解答
回答1:有一個網站,專門做顏色命名的,大家都遵循這個規范的話,應該會好很多
http://chir.ag/projects/name-...
另外,我覺得應該是兩種結合的,顏色可以作為變量來命名
回答2:我的想法是:讓設計師參與到前端構建流程中
用 CSS 預處理器,把所有色值全部放在一個文件里,比如 color.scss,這個文件就交給設計師維護了,命名的事也都讓設計去操心。設計師在交付設計稿標注時,也用顏色名去標注,而不是色值。
這么做有三個優點:
有一個文件記錄了部件的色值定義,有利于設計師自己保持設計的一致性和對項目 UI 整體顏色的把控
前端代碼效果的一部分交給了設計去控制,當設計師想對項目的顏色進行調整時,不用找程序員去改代碼,直接修改完自己的 color.scss,免去了溝通成本
程序員減少了閱讀成本(在標注稿上讀六個字母,再寫到編輯器里,這方面我是很擔心出錯的,每個色值至少對比兩遍才放心)
實際操作時,程序員要注意自己的代碼里不能出現色值,保證自己的顏色都引用自 color.scss,這是墜吼的。
回答3:建議用第一種,我反正用的第一種。第二種太過語義化,如果我僅僅是想用紅色,似乎跟error沒關系對吧~
回答4:我是用第一種,如果像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;}/*隨便寫的我不知道是不是紅色系,反正就這個意思*/回答5:
用第一種吧,顏色只是你加的一個類,所以不會影響語義,你可以給ERROR加樣式,只是顏色直接用單獨給,這樣顏色的重用性也高
回答6:第一種不錯不錯 學習了
回答7:分情況討論吧:整體來說命名偏向于語義化。第一種:如果你采用less,scss這種預編譯處理,建議使用placeholder去替換,如果沒有,也確實存在這種復用的情況,那就建議采納這種原子性的命名方式。
第二種: 如果像錯誤信息,提示信息,警告信息這種的,還是使用語義化命名吧。
回答8:推薦用less
@textRed: #ff0000;.classA { color: @textRed;}回答9:
.bg-black{ background: #333;}.bg-gray{ background: #999;}.text-gray{ color: #999;}...
相關文章:
1. mysql優化 - mysql count(id)查詢速度如何優化?2. mysql主從 - 請教下mysql 主動-被動模式的雙主配置 和 主從配置在應用上有什么區別?3. angular.js - angularjs 用ng-reapt渲染的dom 怎么獲取上面的屬性4. 主從備份 - 跪求mysql 高可用主從方案5. css3 - [CSS] 動畫效果 3D翻轉bug6. node.js - node_moduls太多了7. angular.js - Angular路由和express路由的組合使用問題8. python如何不改動文件的情況下修改文件的 修改日期9. python - django 里自定義的 login 方法,如何使用 login_required()10. angular.js - 不適用其他構建工具,怎么搭建angular1項目
![css3 - [CSS] 動畫效果 3D翻轉bug](http://www.aoyou183.cn/attached/image/news/202304/110831f073.png)