BEM的命名規範

2022-08-03 13:15:13 字數 2009 閱讀 6756

css 的命名規範又叫做bem規範,為的是結束混亂的命名方式,達到乙個語義化的css命名方式。 bem是三個單詞的縮寫:block(塊)代表更高階別的抽象或元件,element(元素) block的後代,以及modifier(修飾) 不同狀態的修飾符。

命名方法:

.block__element--modifier 

.block--modifier

.block__element

button>

button>

p>

p>

通過bem的命名規範我們可以達到乙個什麼目的呢?就是有乙個清晰的描述,從上面的**中我們可以看到一層一層的清晰明了,而且有乙個清晰的結構。

block 代表乙個更高階別的抽象或者是乙個元件,它僅僅作為乙個邊界。它主要的功能有下面三點:

負責描述功能的,不應該包含狀態。

/* correct */

.header

/* wrong */

.header--select

不影響自身布局,不包含具體的樣式,也就是block裡面不應該加樣式

/* correct */

.header

/* wrong */

.header

不能使用元素選擇器和id選擇器

/* correct */

.header

/* wrong */

.header a

是用乙個雙下劃線隔開

/* correct */

.header__body

/* wrong */

.header .body

表示的是目的,而不是狀態,如下例子:目的是在header下面定義三個區域 body、logo、title,但是並沒有指定任何狀態。

.header__body 

.header__logo

.header__title

不能脫離block父級單獨使用

/* correct */

button>

button>

p>

p>

/* wrong */

button>

button>

p>

p>

表示的是乙個狀態,是用雙橫槓分開的。

.header__button--default 

boolean

.header__button--select

列舉 .header__button--primary

不能單獨使用

/* correct */

button>

button>

p>

p>

/* wrong */

button>

button>

p>

p>

在sass中的使用

.header 

&__button

&--default }}

在less中的使用

@classname: header;

.@ __body

.@__button __button--primary

.@__button--default }}

bem 命名規範

bem代表 塊 block 元素 element 修飾符 modifier 我們常用這三個實體開發元件。在選擇器中,由以下三種符號來表示擴充套件的關係 中劃線 僅作為連字元使用,表示某個塊或者某個子元素的多單詞之間的連線記號。雙下劃線 雙下劃線用來連線塊和塊的子元素 單下劃線 單下劃線用來描述乙個塊...

指定命名區域不存在 BEM命名規範

css 的命名規範又叫做bem規範,為的是結束混亂的命名方式,達到乙個語義化的css命名方式。bem是三個單詞的縮寫 block 塊 代表更高階別的抽象或元件,element 元素 block的後代,以及modifier 修飾 不同狀態的修飾符。命名方法 block element modifier...

關於CSS命名規範,我推薦BEM命名方式!

看過許多css的命名規範,像aliceui,nec 等等。其中最實用的規範 bem bem block,element,modifier 是由yandex團隊提出的一種前端命名規範。其核心思想是將頁面拆分成乙個個獨立的富有語義的塊 blocks 從而使得團隊在開發複雜的專案變得高效,並且十分有利於 ...