BEM

BEM

There are only two hard problems in Computer Science: cache invalidation and naming things — Phil Karlton

BEM 是CSS的一種命名規(guī)范旋膳。BEM 分別是 Block、Element黍图、Modifier

Block

Block 在BEM中就屬于一個模塊,這個模塊代表了頁面中的一個獨立的部分株旷。
BEM 的規(guī)范是使用最簡單的類名來代表一個Block平窘,BEM 規(guī)定Block 類名只能使用字母、數(shù)
字兽肤、破折號折剃。并且一個Block類名就代表一個Block另假, 不使用用任何id 屬性等其他一些亂七八糟的東西. 一個好的Block名可以為 .i18n-header .

Element

Element 跟Block 捆綁在一起.
Element 類名比 Block 類名多了可以使用下劃線,還是雙下劃線怕犁。
在我們初學(xué)的使用會很自然的使用這樣的CSS選擇器來表示子類元素:.parent .children边篮。 但是在 BEM 中為了使用更簡單的權(quán)重,BEM使用 一個類名來表示:.parent\_\_children 奏甫。雖然寫起來可能有點麻煩戈轿,但是你可以結(jié)合預(yù)處理語言,比如SCSS阵子。同樣Element也
不會結(jié)合其他類名思杯、id、其他父級元素來給頁面元素設(shè)置樣式挠进,就簡單的寫在 .[Block]__[Element] 這樣的類名下色乾。

Modifier

前面的 Block 和 Element 都可以想象成頁面中的某些元素或者塊。但是像一些元素的狀態(tài)這些就不能用前面兩個表示了领突。這些都?xì)w于 Modifier 管暖璧。
Modifier 不想 Element ,Modifier 跟Block Element 都沒有層級關(guān)系君旦。他只是一個狀態(tài)
的表示澎办。
Modifier 的命名就想 Element ,Modifier類名是在Block 或者 Element類名后面加--modifier. Modifier 比較特別于宙,他可以結(jié)合Block 或者 Element來給DOM設(shè)置樣式浮驳。比如:.Block--big .Block__Elemnt { }

Example

我們來看看BEM官方是怎么寫樣式的(styl):

/* Block */
.navbar
  padding: 0 0 0 0

/* Modifier */
.navbar__item--title
  a
    &:hover
      color: white
  font-size: 18px

.navbar__menu
  font-size: 12px
  ul
    padding: 0
    li
      white-space: nowrap
      &.navbar__item--active
        background-color: rgba(22, 22, 22, .5)
        a
          color: $black
      a
        color: white
        &:hover
          text-decoration: underline

深入淺出

其實到這里你就已經(jīng)知道BEM大概是個什么東西了悍汛±炭可以看官方文檔,(前段時間畢業(yè)了我
明顯的發(fā)現(xiàn)程序不看英文都是垃圾)离咐。
為了能夠?qū)W好他谱俭,我覺得還是下載官方源碼學(xué)習(xí)學(xué)習(xí)奉件。BEM 's github

通過看起代碼發(fā)現(xiàn)了寫東西:

  1. 不是每個樣式都放在.className中,還是有很多寫在tabName下的昆著。
  2. Block 和 Element 這樣的類名一般都只會在選擇器的開始县貌,除了少數(shù)在Modifier和后面。也就是說不會出現(xiàn)這樣的css : table .Block {} 凑懂。
  3. Modifier 相比之下很是隨意煤痕。只要不結(jié)合不正確的Block 和 Element 就行。

BEM get

武漢的天氣開始熱了接谨,我談了個女票摆碉。武漢的妹子又白又長,可惜我談的是廣東的脓豪。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末巷帝,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子扫夜,更是在濱河造成了極大的恐慌楞泼,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件笤闯,死亡現(xiàn)場離奇詭異堕阔,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)颗味,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進(jìn)店門印蔬,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人脱衙,你說我怎么就攤上這事侥猬。” “怎么了捐韩?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵退唠,是天一觀的道長。 經(jīng)常有香客問我荤胁,道長瞧预,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任仅政,我火速辦了婚禮垢油,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘圆丹。我一直安慰自己滩愁,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布辫封。 她就那樣靜靜地躺著硝枉,像睡著了一般廉丽。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上妻味,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天正压,我揣著相機(jī)與錄音,去河邊找鬼责球。 笑死焦履,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的雏逾。 我是一名探鬼主播裁良,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼校套!你這毒婦竟也來了价脾?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤笛匙,失蹤者是張志新(化名)和其女友劉穎侨把,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體妹孙,經(jīng)...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡秋柄,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了蠢正。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片骇笔。...
    茶點故事閱讀 40,664評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖嚣崭,靈堂內(nèi)的尸體忽然破棺而出笨触,到底是詐尸還是另有隱情,我是刑警寧澤雹舀,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布芦劣,位于F島的核電站,受9級特大地震影響说榆,放射性物質(zhì)發(fā)生泄漏虚吟。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一签财、第九天 我趴在偏房一處隱蔽的房頂上張望串慰。 院中可真熱鬧,春花似錦唱蒸、人聲如沸邦鲫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽掂碱。三九已至怜姿,卻和暖如春慎冤,著一層夾襖步出監(jiān)牢的瞬間疼燥,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工蚁堤, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留醉者,地道東北人。 一個月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓披诗,卻偏偏與公主長得像撬即,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子呈队,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,675評論 2 359

推薦閱讀更多精彩內(nèi)容

  • 【譯】前端BEM命名方法論之一:BEM 官方簡介文檔【譯】前端BEM命名方法論之三:命名慣例 重要概念 Block...
    咚門閱讀 5,274評論 0 7
  • 前言 為什么不用ID標(biāo)識符 主要考慮到樣式重用性以及與頁面的耦合性剥槐。ID本來就是唯一的而且權(quán)值那么大,還不如寫在行...
    brandonxiang閱讀 1,035評論 0 3
  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案宪摧? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,760評論 1 92
  • 設(shè)計師學(xué)編程遇到BEM 許多人第一次看到BEM都會覺得這東西好繁雜好長好難用啊粒竖,與之不同的是我第一次接觸BEM的時...
    ketchupyan閱讀 1,760評論 0 7
  • CSS是一門15分鐘就能入門,但是卻需要很長很長的時間才能掌握好的語言几于。它有著它自身的一些復(fù)雜性與局限性蕊苗。其中非常...
    AlienZHOU閱讀 1,701評論 0 8