bem 是塊(block)、元素(element)、修飾符(modifier)的簡寫,利用不同的區塊,功能以及樣式來給元素命名。
官網原文表述。相對於其他塊定位乙個塊bem方法通過使用混合或建立額外的塊元素來達到相同的結果。您不需要建立額外的抽象包裝器。
設定乙個塊元素相對於其他塊元素的位置,最好的方法通常是使用混合class命名。example
...
...
.page__header
.page__footer
定位乙個在塊元素內的元素
定位乙個被巢狀元素的位置時,通常通過建立乙個額外的塊元素(例如,block__inner)來設定。example
...
...
注意通用類樣式bem方法命名時,不使用元素標籤和id選擇器。塊和元素的樣式是由類選擇器定義的。
使用通用類樣式的元素,可以不考慮bem方式命名。example
button 為通用樣式類
...
類選擇器取名
命名必須準確地描述它所表示定位元素的實體。
example
單一職責原則
就像在物件導向程式設計中一樣,在css的bem方法中,單一職責原則意味著每個css實現都必須有單一職責。example
html
...
css
.button
此時我們寫header__button類選擇器樣式時:
correct:
.header__button
incorrect:
.header__button
dry
dry(「不要重複自己」)是一種軟體開發原理,旨在減少**中的重複。example
...
...
.button
.button_theme_islands
.button_theme_******
.block{}
.block__element{}
.block--modifier{}
.block 代表了更高階別的抽象或元件。
.block__element代表.block的後代,用於形成乙個完整的.block的整體。
.block–modifier代表.block的不同狀態或不同版本。
example
.site-search{} /* 塊 */
.site-search__field{} /* 元素 */
.site-search--full{} /* 修飾符 */
總的來說,bem是乙個非常有用,強大,簡單的命名約定,讓前端**更容易閱讀和理解,更容易協作,更容易控制,更加健壯和明確而且更加嚴密。
《css — bem 命名規範》
《bem》
CSS命名方法之BEM
bem 源自yandex的css 命名方 bem的意思就是塊 block 元素 element 修飾符 modifier 是由yandex團隊提出的一種前端命名方 這種巧妙的命名方法讓你的css類對其他開發者來說更加透明而且更有意義。bem命名約定更加嚴格,而且包含更多的資訊,它們用於乙個團隊開發乙...
BEM命名規則
bem的意思就是塊 block 元素 element 修飾符 modifier 是由yandex團隊提出的一種前端命名方 這種巧妙的命名方法讓你的css類對其他開發者來說更加透明而且更有意義。bem命名約定更加嚴格,而且包含更多的資訊,它們用於乙個團隊開發乙個耗時的大專案。重要的是要注意,我使用的基...
bem 命名規範
bem代表 塊 block 元素 element 修飾符 modifier 我們常用這三個實體開發元件。在選擇器中,由以下三種符號來表示擴充套件的關係 中劃線 僅作為連字元使用,表示某個塊或者某個子元素的多單詞之間的連線記號。雙下劃線 雙下劃線用來連線塊和塊的子元素 單下劃線 單下劃線用來描述乙個塊...