精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

淺析 Bootstrap 的 CSS 類名設(shè)計

開發(fā) 前端
譯者注:最近在重新設(shè)計一個 UI 框架,因此也在考察一些類似項目的特征和要素。在讀到《Bootstrap 編碼規(guī)范》時,順著鏈接發(fā)現(xiàn)了其作者 @mdo 的一篇文章,其中講到 CSS 類名的設(shè)計思路。

在構(gòu)建類似 Bootstrap 這樣的 CSS 系統(tǒng)時,保持系統(tǒng)的簡單性、穩(wěn)定性、靈活性是相當(dāng)重要的。這并非易事,尤其對于大型團隊和項目來說,組件的數(shù)量可能會變得相當(dāng)龐大。為了改善這種狀況,你不妨考慮用前綴式類名取代鏈?zhǔn)筋惷?/p>

在使用 鏈?zhǔn)筋惷?方案時,你可能會把一系列特定組件的 CSS 選擇符寫成這樣:

  1. .success { ... }  
  2. .btn.success { .. }  
  3. .alert.success { ... } 

我們在這里設(shè)置了一個全局基礎(chǔ)類 .success,它可能涵蓋了成功按鈕和成功提示框之間的所有共性。然后,在單個組件層面,我們又需要對它進(jìn)行擴充或覆蓋。但是,這種完全開放式的類名和鏈?zhǔn)斤L(fēng)格令開發(fā)者面臨一些困擾和潛在痛點:

  • 這個基礎(chǔ)類到底代表什么
  • 哪些元素會在根層級受到影響(譯注:啥意思?)
  • 哪些元素可以把 .success 類鏈到自己身上
  • 它是否可以被進(jìn)一步擴展到更多的組件上
  • 假如一個 .success 的實例要用白底綠字,而另一個要用綠底白字,怎么辦?

而且這些問題還只是冰山一角。這種方案未必很差,但如果可擴展性、簡單性和靈活性是你的***需求,這可能就不是***的辦法。此時,前綴式類名方案可能更加適合你。

前綴式類名 將開發(fā)者引入一種更簡單、更易維護(hù)的方向,從而構(gòu)建一個可擴展的 CSS 系統(tǒng)。當(dāng)我們拋棄常規(guī)的基礎(chǔ)類的方式,并將每個組件的樣式用前綴限制起來時,我們的代碼會變成這樣:

  1. .btn-success { ... }  
  2. .alert-success { ... } 

這樣一來,基礎(chǔ)類被設(shè)定在組件級別,而不是整個系統(tǒng)級別。換句話說,我們的基礎(chǔ)類變成了 .btn.alert,而不是 .success。所有組件之間都不會出現(xiàn)樣式和行為上的相互干擾,因為我們把組件具備“成功狀態(tài)”視為貫穿整個系統(tǒng)的一種概念。這就是說,每個組件在“成功”狀態(tài)下的樣式,只有在 概念 層面才是相通的;而對于如何 實現(xiàn) 這個樣式,是被約束在每個獨立的組件內(nèi)部的。不用操心通用的樣式還會在哪里使用,也不用顧慮不可意料的副作用,這種方式使得每個組件更加穩(wěn)定和靈活。

構(gòu)建組件是一項非常具有策略性并且注重細(xì)節(jié)的工作,在一個類似 Bootstrap 的系統(tǒng)中,組件需要天生具備獨立性,以提高模塊分離度和可定制性。我們通過這種方式來打造更好的代碼和一個令人愉悅的項目。

我的體會

作者視角

我自己在 CMUI ***版中,基本上使用的是文章開頭所說的“鏈?zhǔn)筋惷?rdquo;風(fēng)格。比如說,一個大號按鈕的結(jié)構(gòu)可能是這樣的:

  1. <button type="button" class="cmBtn cmLarge">Large button</button> 

而在 Bootstrap 中,類似的元素是這樣的:

  1. <button type="button" class="btn btn-lg">Large button</button> 

最開始我并沒有覺得這兩者有什么不同——前一個類名用于掛載框架預(yù)定義的按鈕樣式,后一個類名用于指定按鈕的尺寸。把 Bootstrap 源碼中所有的 .btn-lg 替換成 .cmBtn.cmLarge,不就跟我的 CMUI 一樣了嘛?我甚至覺得 Bootstrap 的類命名有點啰嗦,.btn.btn-lg 中的 btn- 不是重復(fù)了嗎?還是 CMUI 干凈利落啊!

然而,看完這篇文章,我似乎體會到 Bootstrap 這種設(shè)計的好處。我的理解可能并不是原作者的出發(fā)點,但也不妨列舉出來,僅供參考。

用戶視角

這兩種類名風(fēng)格的差異并不在于源碼是怎么寫的,而是在于開發(fā)者(這里指使用 Bootstrap 的開發(fā)者)在看到類名時的反應(yīng)。我的理解是,不同的命名,對開發(fā)者的暗示是不同的

開發(fā)者們并不總是會按照組件文檔的示例來編寫組件的結(jié)構(gòu)代碼。比如說,某些時候他們手邊沒有文檔(或不想找文檔),又或者他們所期望的樣式在文檔中并沒有列出。他們可能會抱著一種試試看的心態(tài),嘗試修改或組合手頭的幾個類名,以期產(chǎn)生某種新的樣式效果。

如果類名是寬泛的(比如 CMUI 中的 .cmLarge),就很容易被拿來嘗試——比如開發(fā)者會給一個 ul.cmList 元素增加 .cmLarge 類并期望得到一個大號的列表,但實際上 CMUI 并沒有提供這種組合!這破壞了開發(fā)者的預(yù)期,導(dǎo)致心理受挫,以致最終放棄這個組件庫(夸張了點哈)。

但如果類名是被一個“組件級”前綴限定的(比如 Bootstrap 中的 .btn-lg),那么它被開發(fā)者拿去組合到其它組件身上的可能性就相當(dāng)?shù)汀<词鼓硞€異想天開的開發(fā)者試圖把 .btn-lg 改成 .dropdown-lg 并應(yīng)用到一個下拉菜單上,當(dāng)他失敗時,他應(yīng)該也已經(jīng)做好心理準(zhǔn)備了罷。

結(jié)語

這樣看來,Bootstrap 的做法確有它的好處,我的 CMUI 2.0 不妨也試試看。

你如何評論這兩種類名風(fēng)格呢?不妨留下你的觀點吧!

原文鏈接:https://github.com/cssmagic/blog/issues/45

責(zé)任編輯:林師授 來源: cssmagic 的博客
相關(guān)推薦

2015-09-06 08:57:07

BootstrapCSS框架

2009-07-22 16:27:24

iBATIS配置類iBATIS操作類

2011-03-07 09:41:10

JavaScript

2010-01-21 13:48:30

C++基類

2010-08-24 13:14:36

CSSmargin

2010-06-24 15:30:47

HART協(xié)議

2009-06-29 17:39:31

JSP設(shè)計模式

2014-05-08 10:36:59

CSS單詞連字符

2017-07-21 09:40:35

Python類、繼承和多態(tài)

2011-03-08 09:15:04

JavaScript

2010-02-02 13:15:26

Python類

2010-09-07 10:33:04

CSS

2022-01-11 19:29:15

CSS JS頁面

2021-06-09 18:52:05

方案設(shè)計庫存數(shù)

2013-08-06 09:35:20

視覺設(shè)計UI設(shè)計設(shè)計

2009-08-06 14:43:10

C# Calculat

2009-08-21 17:24:06

C# SingleIn

2009-08-21 17:24:06

C# SingleIn

2014-04-25 11:12:16

BootstrapBootstrap工具

2010-07-14 09:01:07

架構(gòu)設(shè)計
點贊
收藏

51CTO技術(shù)棧公眾號

国产精品久久久久不卡| 日韩精品在线第一页| 男女啪啪免费观看| 头脑特工队2免费完整版在线观看| 久久久999| 久久精品视频在线| 国产麻豆天美果冻无码视频| 欧美日韩伦理一区二区| 一区二区三区国产| 日本公妇乱淫免费视频一区三区| 国产视频手机在线观看| 亚洲中字在线| 蜜臀久久99精品久久久久久宅男 | 不卡av播放| 亚洲欧美色图小说| 欧美精品与人动性物交免费看| 国产精品久久777777换脸| 99精品国产在热久久| 久久久国产精品一区| 黄色a一级视频| 日本成人精品| 欧美日韩视频不卡| 日本日本19xxxⅹhd乱影响| 欧美jizz18性欧美| 国产亚洲精品超碰| 国产三级精品在线不卡| 国产精品污视频| 久久婷婷丁香| 97精品国产97久久久久久| 紧身裙女教师波多野结衣| 神马电影久久| 日韩国产一区三区| 国产午夜在线一区二区三区| 久久国产精品美女| 欧美日韩的一区二区| 日韩在线第三页| 中文字幕 在线观看| 亚洲一区二区三区在线| 自拍偷拍一区二区三区| 成人动漫在线播放| 国产色综合久久| 欧洲精品在线一区| 日韩av视屏| av电影天堂一区二区在线| 成人动漫在线观看视频| 99久久久久成人国产免费| 久久国产婷婷国产香蕉| 国产精品久久久久久久9999| 国产精品自拍第一页| 亚洲制服av| 日本一区二区不卡| 高潮毛片又色又爽免费| 久久午夜精品一区二区| 日韩av成人在线| 无码人妻精品一区二区三区不卡 | 97在线观看免费| 日本一区二区网站| 99热免费精品在线观看| 97人人做人人爱| 日韩特级黄色片| 久久av最新网址| 国产成人精品av| 国产日韩久久久| 久久福利视频一区二区| 成人中文字幕在线观看| 国产jzjzjz丝袜老师水多| 国产很黄免费观看久久| 91传媒视频在线观看| 亚洲国产精品久久久久久久| 成人午夜视频网站| 欧美极品色图| av大片在线观看| 亚洲乱码中文字幕综合| 美女扒开大腿让男人桶| 天堂中文在线播放| 欧美日韩视频第一区| 中文字幕一二三区| 青青操综合网| 在线看片第一页欧美| 中文字幕另类日韩欧美亚洲嫩草| 国产精品vip| 国产成人高清激情视频在线观看| 91亚洲国产成人久久精品麻豆| 国产伦精品一区二区三区视频青涩| eeuss一区二区三区| 青青青草网站免费视频在线观看| 国产精品国产三级国产普通话99| 国产又粗又大又爽的视频| av2020不卡| 欧美天堂一区二区三区| 欧美一级大片免费看| 五月国产精品| 久久久99久久精品女同性| 久草视频中文在线| 久色成人在线| 99视频在线播放| 国产高清免费在线播放| 亚洲黄色尤物视频| 国产精品人人妻人人爽人人牛| 国产一区二区视频在线看| 日韩国产一区三区| 亚洲成人生活片| 爽好久久久欧美精品| 91九色视频在线| 欧美套图亚洲一区| 亚洲国产精品影院| 女同激情久久av久久| 免费毛片在线不卡| 欧美激情免费看| 91久久精品国产91性色69| 99精品黄色片免费大全| 国产成人免费高清视频| 欧美一级二级视频| 亚洲福利在线观看| 青青操在线视频观看| 亚洲欧美成人| 99蜜桃在线观看免费视频网站| 98在线视频| 色综合久久久久久久| 苍井空张开腿实干12次| 91一区二区| 国产成人精品免高潮费视频| 天天操天天爱天天干| 亚洲精品一二三| 羞羞的视频在线| 欧美精品一区二区三区中文字幕| 97国产精品久久| 懂色av成人一区二区三区| √…a在线天堂一区| 我要看一级黄色大片| 久久91麻豆精品一区| 欧美一区二粉嫩精品国产一线天| 亚洲av永久纯肉无码精品动漫| 国产精品对白交换视频| 日本爱爱免费视频| 欧美色婷婷久久99精品红桃| 国产91|九色| 亚洲区小说区图片区| 五月天网站亚洲| 亚洲精品第二页| 亚洲国产专区校园欧美| 俄罗斯精品一区二区三区| 亚洲无线看天堂av| 日韩色视频在线观看| www.av视频| 国产一区二区三区久久悠悠色av| av磁力番号网| 亚洲福利合集| 久久久久久久久久国产| 人妻少妇精品无码专区| 五月天激情小说综合| 亚洲调教欧美在线| 国产精品毛片在线看| 欧美综合激情| 黄色成人小视频| 久久久99免费视频| www.久久久久久久久久| 亚洲宅男天堂在线观看无病毒| 精产国品一二三区| 激情综合视频| 久久久久久艹| 欧美日韩女优| 久久九九亚洲综合| 免费国产黄色片| 欧美日韩一区二区三区| 一级片手机在线观看| 美女在线视频一区| 精品无码av无码免费专区| 99久久人爽人人添人人澡| 久久久在线视频| 免费人成在线观看网站| 欧美在线观看18| 青草草在线视频| 91一区二区三区在线观看| aaaaaa亚洲| 91成人免费| 国产一区二区免费电影| 日韩网站中文字幕| 美女av一区二区| 亚洲欧美综合一区二区| 欧美日韩一区二区三区四区| 免费一级片在线观看| 2024国产精品| 日本在线观看视频一区| 国模吧视频一区| 日韩欧美99| 日韩欧美中文字幕一区二区三区| 欧美综合激情网| 精品美女在线观看视频在线观看| 亚洲第一视频在线观看| 少妇又紧又色又爽又刺激视频 | 波多野结衣三级在线| 成人性生交大片免费看中文视频| 国产精品美女呻吟| 国产丝袜视频在线播放| 伊人久久免费视频| 欧美特黄一级视频| 欧美综合亚洲图片综合区| 国产性猛交普通话对白| 国产精品第一页第二页第三页| 蜜桃视频无码区在线观看| 久久亚洲综合| 97碰在线视频| 青青草国产成人a∨下载安卓| 高清不卡日本v二区在线| 成人午夜精品| 欧美—级a级欧美特级ar全黄| 成人性爱视频在线观看| 亚洲精品在线三区| 99视频国产精品免费观看a| 色综合久久中文综合久久牛| 久久久久久久久久久久久久免费看 | 亚洲一区二区中文| 日韩漫画puputoon| 欧美性在线视频| 青青在线视频| 精品国产一区二区三区在线观看 | 91麻豆123| 欧美性生交xxxxx| 激情欧美一区二区三区在线观看| 可以免费观看av毛片| 9色国产精品| 免费人成自慰网站| 欧美.www| 欧美另类videos| 国产精品成人av| 亚洲 国产 欧美一区| 欧美日韩夜夜| 国产一区二区三区奇米久涩| 精品亚洲二区| 1区1区3区4区产品乱码芒果精品| 欧美爱爱视频| 国产精品色婷婷视频| 深夜成人福利| 日本久久亚洲电影| xxxxxx欧美| 欧亚精品中文字幕| 亚洲欧洲日本韩国| 4438全国成人免费| 一区二区三区短视频| 欧美在线视频播放| av高清不卡| 日韩免费精品视频| 播放一区二区| 国产精品中文字幕久久久| 国产一区二区三区影视| 国产精品成人va在线观看| 欧美香蕉视频| 国产精品免费视频xxxx| 国产精品久久久久77777丨| 国产精品久久久久aaaa九色| 日本一区二区三区中文字幕 | 最新国产中文字幕| 欧美日韩亚洲高清一区二区| 亚洲中文一区二区三区| 在线播放91灌醉迷j高跟美女 | 国产一区二区激情| 伊人免费在线| 久久视频在线免费观看| 91在线中文| 久久久亚洲网站| 亚洲欧洲美洲av| 国产精品女主播| 爱情电影网av一区二区| 99视频免费观看蜜桃视频| 欧美黑白配在线| 欧美性xxxx69| 偷偷www综合久久久久久久| 亚洲激情免费视频| 在线精品亚洲| 天天影视综合色| 国产在线精品一区二区三区不卡 | 亚洲v天堂v手机在线| 四虎影视永久免费在线观看一区二区三区| 亚洲69av| 国产成人精品免费看在线播放 | 久久久免费精品| 日本精品不卡| 亚洲自拍另类欧美丝袜| 久久99精品国产自在现线| 茄子视频成人在线观看 | 亚洲精品成a人| 1级黄色大片儿| 欧美日韩一区二区三区免费看| 99国产精品久久久久久久成人| 欧美大片顶级少妇| 成人性生交大片免费看午夜| 欧美日产国产成人免费图片| 高清av不卡| 亚洲r级在线观看| 日韩成人一级| 激情图片qvod| 三级亚洲高清视频| 亚洲精品久久久久久| 国产日产欧美一区二区三区| 欧美日韩免费做爰视频| 在线观看免费视频综合| 成人无码一区二区三区| 在线一区二区日韩| 麻豆mv在线看| 亚洲自拍偷拍区| 精品国产日韩欧美| 日韩黄色片在线| 麻豆精品一区二区三区| 免费看黄色aaaaaa 片| 亚洲人成电影网站色mp4| 日本精品入口免费视频| 亚洲成人aaa| 中文在线观看免费| 国产精品你懂得| 妖精视频一区二区三区| 欧美性潮喷xxxxx免费视频看| 奇米影视一区二区三区| 天天插天天射天天干| 亚洲美女在线国产| 伊人成人在线观看| 亚洲色图25p| 国产va在线视频| 国产91免费视频| 自产国语精品视频| 欧美在线aaa| 国产免费成人在线视频| 天堂网av手机版| 亚洲精品狠狠操| heyzo在线欧美播放| 91蜜桃网站免费观看| 97在线精品| 成人不卡免费视频| 国产免费成人在线视频| 国产成人a v| 亚洲免费一在线| 欧美18—19sex性hd| 在线观看精品一区| 国精品人伦一区二区三区蜜桃| 日韩综合小视频| 国产精品入口麻豆| 亚洲一区二区影院| 性猛交富婆╳xxx乱大交天津| 久久精品国产99国产精品澳门| 91成人抖音| 亚洲国产一区在线| 欧美a级理论片| 制服丨自拍丨欧美丨动漫丨| 欧洲一区二区三区在线| 成人h小游戏| 国产一区二区在线播放| 久久视频国产| 亚洲美女性囗交| 自拍偷拍国产亚洲| 精品人妻久久久久一区二区三区 | 日韩视频永久免费| 午夜激情在线| 国产欧美一区二区视频| 一本综合久久| av网在线播放| 欧美日韩国产高清一区二区 | 国产成人精品日本亚洲| 国产一区二区三区四区五区| wwwwww.色| 亚洲欧美偷拍另类a∨色屁股| 亚洲精品国产一区二| 海角国产乱辈乱精品视频| 三级小说欧洲区亚洲区| 国产av无码专区亚洲精品| 中文字幕av资源一区| 一级特黄色大片| 欧美丰满片xxx777| 亚洲第一论坛sis| 午夜在线观看av| 一区二区三区在线影院| 色播色播色播色播色播在线| 国产v综合ⅴ日韩v欧美大片 | 成人免费性视频| 久久亚洲欧美国产精品乐播| 天天综合久久综合| 欧美大尺度激情区在线播放| 国产 日韩 欧美 综合 一区| 久热免费在线观看| 亚洲欧美一区二区三区极速播放| 手机看片1024国产| 国产精品久久久久久网站| 欧美在线二区| 久久国产精品无码一级毛片| 欧美日韩在线播放一区| 青春草免费在线视频| 欧美最大成人综合网| 国产精品亚洲专一区二区三区| 日韩av女优在线观看| 日韩在线国产精品| 青草久久视频| 亚洲图片 自拍偷拍| 色综合天天综合狠狠| av免费看在线| 日本不卡免费新一二三区| 国产精品77777| 欧美视频xxxx| 97精品在线视频| 欧美a级在线| 貂蝉被到爽流白浆在线观看 | 亚洲国产无码精品|