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 從而使得團隊在開發複雜的專案變得高效,並且十分有利於 ...