亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

好的 CSS 命名規(guī)范可以節(jié)約 Debug 時間

  發(fā)布時間:2018-01-23 16:51:58   作者:佚名   我要評論
Debug CSS 是一種很耗時的操作,如果有良好的命名規(guī)范可以節(jié)約很多的 Debug 時間。下面通過本文給大家?guī)砹薈SS 命名規(guī)范可以節(jié)約 Debug 時間的相關(guān)知識,感興趣的朋友一起看看吧

 

簡評:Debug CSS 是一種很耗時的操作,如果有良好的命名規(guī)范可以節(jié)約很多的 Debug 時間。

使用連字符('-')分隔字符串

你可能習(xí)慣了在 Javascript 中使用小駝峰的命名方式:

var redBox = document.getElementById('...')

但是在 CSS 中不建議使用這種命名方式:

.redBox { 
  border:1px純紅色; 
}

而應(yīng)該使用這種:

.red-box { 
   border:1px純紅色; 
}

這是一個標準的 CSS 命名規(guī)則,有更好的可讀性。

此外,他和 CSS 屬性名稱一致。

//正確
.some-class { 
   font-weight:10em 
}
//錯了
.some-class { 
   fontWeight:10em 
}

BEM 命名規(guī)范

團隊有不同的方法來編寫 CSS 選擇器。一些團隊使用連字符分隔符,而其他團隊則傾向于使用更加結(jié)構(gòu)化的稱為 BEM 的命名規(guī)范。

一般來說,CSS 命名規(guī)范有三個問題要解決:

  1. 能夠通過名字就能清楚選擇器的功能。
  2. 能夠看出選擇器在哪里可以使用。
  3. 能夠看出 class 之間的關(guān)系。

你有沒有見過這樣寫的類名:

.nav--secondary {
  ...
}
.nav__header {
  ...
}

這就是 BEM 命名規(guī)則。

B 代表塊(Block)

BEM 試圖將整個用戶界面分成可重用獨立的塊(Block,注意這里的 Block 并非指 inline-block),一個 header 是一個 block,header 里面嵌套的元素(logo、input、menu)也可以是 block 。

舉個例子下面的圖片:

 

這是一個火柴人(我們可以把它看做一個 Block),按照之前的說法,這個組件的命名我們可以設(shè)為 stick-man 。

主鍵的樣式應(yīng)該如下所示:

.stick-man { 
  
}

 

E 代表元素

Block 中一般會有多個元素,舉個例子:火柴人有一個 head,兩個 arms 和 feets

 

head、feet、和 arms 是該組件中的所有元素。使用 BEM 命名規(guī)則,通過雙下劃線連接塊(Block)和元素(Elements)方式來命名。

.stick-man__head {
}
.stick-man__arms {
}
.stick-man__feet {
}

M 代表修飾符

BEM 中 M 代表修飾,可以對塊(Block)或元素(Element)進行修飾(外觀或行為的調(diào)整),我們可以調(diào)整我們的火柴人生成藍色火柴人和紅色火柴人(實際上我們可能需要一個藍色按鈕和一個紅色按鈕)。

 

使用 BEM 的命名規(guī)則我們使用雙連接符來命名('--')

例如:

.stick-man--blue {
}
.stick-man--red {
}

修飾符也可用于元素(element),例如我們只想調(diào)整火柴人的頭部大小。我們可以這樣命名

 

.stick-man__head--small {
}
.stick-man__head--big {
}

以上就是 BEM 的命名方式,這種命名方式雖然有點啰嗦但是在復(fù)雜的工程中可以很好的理清各部分之間的關(guān)系,如果只是簡單的工程直接使用分隔符命名就行了。

在 JavaScript 中用到的 CSS 類名應(yīng)該如何命名

當你看到這個篇文章開始著手重構(gòu)自己的項目。

你將原來的代碼:

<div class="siteNavigation">
</div>

改成了:

<div class="site-navigation">
</div>

這看著很棒,但是你忘了你在某個地方(JavaScript)用到了這個類名:

//the Javasript code
const nav = document.querySelector('.siteNavigation')

這個時候 nav 將會得到 null。

為了防止這種情況,我們可以使用如下的命名來提醒我們。

使用 'js-*' 來命名

我們可以使用 js- 來命名我們的類:

<div class="site-navigation js-site-navigation">
</div>

在 JavaScript 代碼我們使用 js-site-navigation 來獲取該 DOM:

//the Javasript code
const nav = document.querySelector('.js-site-navigation')

現(xiàn)在我們只要一看到 js- site-navigation 就會想到,在某個 JavaScript 代碼中使用該類名獲取 DOM 對象。

總結(jié)

以上所述是小編給大家介紹的CSS 命名規(guī)范的相關(guān)知識,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • CSS使用BEM命名規(guī)范實踐

    這篇文章主要介紹了CSS使用BEM命名規(guī)范實踐,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-28
  • CSS樣式書寫順序和命名規(guī)范及注意事項

    這篇文章主要介紹了CSS樣式書寫順序和命名規(guī)范,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-04
  • 值得收藏的CSS命名規(guī)范(規(guī)則)常用的CSS命名規(guī)則

    本文是小編精心給大家收藏的CSS命名規(guī)范(規(guī)則)常用的CSS命名規(guī)則 ,非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧
    2018-10-19
  • css 命名:BEM, scoped css, css modules 與 css-in-js詳解

    這篇文章主要介紹了css 命名:BEM, scoped css, css modules 與 css-in-js的相關(guān)知識,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,,需要的朋友
    2020-08-24
  • CSS規(guī)范BEM CSS和OOCSS的示例代碼詳解

    這篇文章主要介紹了CSS規(guī)范BEM CSS和OOCSS的示例代碼詳解,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-28
  • 詳解css BEM書寫規(guī)范

    BEM的意思就是塊(block)、元素(element)、修飾符(modifier),是由Yandex團隊提出的一種前端命名方法論。本文主要介紹了詳解css BEM書寫規(guī)范,非常具有實用價值,需要的
    2018-12-17
  • 從QQtabBar看css命名規(guī)范BEM的詳細介紹

    這篇文章主要介紹了從QQtabBar看css命名規(guī)范BEM的問題解析,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2021-08-04

最新評論