亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > CSS > 正文

CSS BEM 命名規范簡介(推薦)

2024-07-11 08:59:20
字體:
來源:轉載
供稿:網友

1 什么是 BEM 命名規范

Bem 是塊(block)、元素(element)、修飾符(modifier)的簡寫,由 Yandex 團隊提出的一種前端 CSS 命名方法論。

BEM 是一個簡單又非常有用的命名約定。讓你的前端代碼更容易閱讀和理解,更容易協作,更容易控制,更加健壯和明確,而且更加嚴密。

1.1 BEM 命名模式

BEM 命名約定的模式是:

.block {}.block__element {}.block--modifier {}
  • block 代表了更高級別的抽象或組件。
  • block__element 代表 .block 的后代,用于形成一個完整的 .block 的整體。
  • block--modifier 代表 .block 的不同狀態或不同版本。

使用兩個連字符和下劃線而不是一個,是為了讓你自己的塊可以用單個連字符來界定。如:

.sub-block__element {}.sub-block--modifier {}

1.2 BEM 命名法的好處

BEM的關鍵是,可以獲得更多的描述和更加清晰的結構,從其名字可以知道某個標記的含義。于是,通過查看 HTML 代碼中的 class 屬性,就能知道元素之間的關聯。

常規的命名法示例:

<div class="article">    <div class="body">        <button class="button-primary"></button>        <button class="button-success"></button>    </div></div>

這種寫法從 DOM 結構和類命名上可以了解每個元素的意義,但無法明確其真實的層級關系。在 css 定義時,也必須依靠層級選擇器來限定約束作用域,以避免跨組件的樣式污染。

使用了 BEM 命名方法的示例:

<div class="article">    <div class="article__body">        <div class="tag"></div>        <button class="article__button--primary"></button>        <button class="article__button--success"></button>    </div></div>

通過 BEM 命名方式,模塊層級關系簡單清晰,而且 css 書寫上也不必作過多的層級選擇。

2 如何使用 BEM 命名法

2.1 什么時候應該用 BEM 格式

使用 BEM 的訣竅是,你要知道什么時候哪些東西是應該寫成 BEM 格式的。

并不是每個地方都應該使用 BEM 命名方式。當需要明確關聯性的模塊關系時,應當使用 BEM 格式。

比如只是一條公共的單獨的樣式,就沒有使用 BEM 格式的意義:

.hide {    display: none !important;}

2.2 在 CSS 預處理器中使用 BEM 格式

BEM 的一個槽點是,命名方式長而難看,書寫不雅。相比 BEM 格式帶來的便利來說,我們應客觀看待。

而且,一般來說會使用通過 LESS/SASS 等預處理器語言來編寫 CSS,利用其語言特性書寫起來要簡單很多。

以 LESS 為例:

.article {    max-width: 1200px;    &__body {        padding: 20px;    }    &__button {        padding: 5px 8px;        &--primary {background: blue;}        &--success {background: green;}    }}

2.3 在流行框架的組件中使用 BEM 格式

在當前流行的 Vue.js / React / Angular 等前端框架中,都有 CSS 組件級作用域的編譯實現,其基本原理均為利用 CSS 屬性選擇器特性,為不同的組件生成不同的屬性選擇器。

當你選擇了這種局部作用域的寫法時,在較小的組件中,BEM 格式可能顯得沒那么重要。但對于公共的、全局性的模塊樣式定義,還是推薦使用 BEM 格式。

另外,對于對外發布的公共組件來說,一般為了風格的可定制性,都不會使用這種局部作用域方式來定義組件樣式。此時使用 BEM 格式也會大顯其彩。

2.4 避免 .block__el1__el2 的格式

在深層次嵌套的 DOM 結構下,應避免過長的樣式名稱定義。

3 總結

BEM 最難的部分之一是明確作用域是從哪開始和到哪結束的,以及什么時候使用或不使用它。隨著不斷使用的經驗積累,你慢慢就會知道怎么用,這些問題也不再是問題。技術無好壞,合適方最好。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲国产精彩中文乱码av| 91精品国产自产在线| www.亚洲男人天堂| 中文字幕久热精品视频在线| 国产精品久久久久久久久久| 亚洲精品白浆高清久久久久久| 热久久美女精品天天吊色| 日韩精品免费在线视频观看| 久久综合伊人77777尤物| www.美女亚洲精品| 4p变态网欧美系列| 欧美老女人xx| 欧美日韩国产一区二区三区| 欧美孕妇与黑人孕交| 91色在线视频| 97人洗澡人人免费公开视频碰碰碰| 在线观看日韩视频| 日韩高清有码在线| 国内成人精品视频| 91在线无精精品一区二区| 激情亚洲一区二区三区四区| 日韩中文字幕在线| 久久露脸国产精品| 久久福利网址导航| 美日韩精品免费视频| 热久久这里只有精品| 欧美精品在线网站| 国产在线精品一区免费香蕉| 91wwwcom在线观看| 亚洲国产精品va在线观看黑人| 亚洲一区二区三区777| 欧美性20hd另类| 欧美伊久线香蕉线新在线| 久久久av一区| 在线观看日韩av| 国产成人高潮免费观看精品| 午夜精品久久久久久久白皮肤| 国产91精品黑色丝袜高跟鞋| 成人精品视频99在线观看免费| 亚洲精品xxx| 久久亚洲精品国产亚洲老地址| 97激碰免费视频| 97视频免费观看| 日本国产欧美一区二区三区| 亚洲一区亚洲二区亚洲三区| 亚洲第一精品自拍| 国产欧美一区二区三区久久人妖| 欧美极品美女电影一区| 久久精品久久精品亚洲人| 亚洲电影免费在线观看| 97视频网站入口| 亚洲欧美另类在线观看| 亚洲电影免费观看高清完整版| 欧美三级欧美成人高清www| 亚洲欧美国产另类| 91po在线观看91精品国产性色| 亚洲精品美女久久久| 欧美日韩成人在线播放| xxav国产精品美女主播| 日韩av电影手机在线| 欧美一区二区三区四区在线| 欧美成人免费全部观看天天性色| 欧美日韩综合视频| 日韩av在线网址| 欧美在线免费看| 懂色av中文一区二区三区天美| 奇门遁甲1982国语版免费观看高清| 97超视频免费观看| 国产日韩视频在线观看| 欧美日韩亚洲精品一区二区三区| 韩国三级日本三级少妇99| 亚洲欧美精品中文字幕在线| 久久久久五月天| 亚洲欧美自拍一区| 国产精品6699| 久久男人的天堂| 国产精品极品尤物在线观看| 国产精品一区二区三区久久久| 欧美最猛性xxxx| 日韩最新免费不卡| 久久久久久九九九| 欧美人在线视频| 色悠悠久久久久| 欧美视频第一页| 国产精品久久久久久久久久久新郎| 91爱视频在线| 51视频国产精品一区二区| 中文字幕一区二区精品| 国产精品久久久久久婷婷天堂| 68精品国产免费久久久久久婷婷| 成人免费淫片aa视频免费| 欧美激情a∨在线视频播放| 亚洲精品不卡在线| 日韩免费在线观看视频| 高清在线视频日韩欧美| 日韩精品高清视频| 国产精品丝袜一区二区三区| 亚洲成人久久久| 欧美有码在线观看| 中文字幕精品久久久久| 精品自拍视频在线观看| 午夜剧场成人观在线视频免费观看| 国产精品大片wwwwww| 91系列在线播放| 欧美成人免费va影院高清| 不卡av在线网站| 国产精品男女猛烈高潮激情| 亚洲大尺度美女在线| 欧美极品xxxx| 亚洲精品v天堂中文字幕| 久久亚洲影音av资源网| 一区二区三区精品99久久| 欧美性生交xxxxx久久久| 黄色精品在线看| 亚洲国产精品一区二区久| 亚洲有声小说3d| 久久久免费观看| 亚洲成人精品久久| 91国在线精品国内播放| 久久国产精品视频| 亚洲精品少妇网址| 久久免费视频网站| 亚洲欧洲日本专区| 成人国内精品久久久久一区| 中文字幕精品一区久久久久| 国产精品一区二区久久久久| 国产精品揄拍500视频| 国产免费一区二区三区香蕉精| 成人久久久久爱| 久久久久国产精品www| 日本成人黄色片| 亚洲国产天堂久久综合网| 国产色婷婷国产综合在线理论片a| 国产精品精品视频一区二区三区| 亚洲大尺度美女在线| 久久人人看视频| 日韩网站在线观看| 精品日韩美女的视频高清| 亚洲国产成人91精品| 国产精品第一第二| 亚洲精品久久久久久下一站| 欧美综合国产精品久久丁香| 日韩av一区二区在线观看| 欧美超级乱淫片喷水| 欧美一区二粉嫩精品国产一线天| 欧美美女15p| 亚洲free性xxxx护士白浆| 国产在线视频一区| 欧美性生活大片免费观看网址| 欧美一区亚洲一区| 91精品国产色综合久久不卡98口| 久久99视频免费| 国产亚洲精品成人av久久ww| 国产精品无av码在线观看| 国产精品电影一区| 羞羞色国产精品| 亚洲国产婷婷香蕉久久久久久| 最近2019免费中文字幕视频三| 中文字幕亚洲综合久久筱田步美| 日韩一区二区精品视频| 国产精品视频久久久久| 亚洲黄色av女优在线观看| 视频一区视频二区国产精品| 国产一区二区免费|