摘要:簡(jiǎn)介前端命名方法論是由團(tuán)隊(duì)提出的一種前端命名方法論,是一個(gè)非常有用,強(qiáng)大,簡(jiǎn)單的命名約定,可以讓你的前端代碼更容易閱讀和理解,更容易協(xié)作,更容易控制,更加健壯和明確而且更加嚴(yán)密。
1.BEM 簡(jiǎn)介
BEM——前端命名方法論
BEM 是由 Yandex 團(tuán)隊(duì)提出的一種前端命名方法論,是一個(gè)非常有用,強(qiáng)大,簡(jiǎn)單的命名約定,可以讓你的前端代碼更容易閱讀和理解,更容易協(xié)作,更容易控制,更加健壯和明確而且更加嚴(yán)密。
BEM 命名約定模式
.block{} .block__element{} .block--modifier{}
其中
.block:表示一個(gè)抽象的塊,或一個(gè)獨(dú)立的組件
.block__element:element是.block的子節(jié)點(diǎn),表示element屬于某個(gè).block,用于形成一個(gè)完整的.block整體,__是向下降級(jí)的意思
.block--modifier:表示某個(gè)節(jié)點(diǎn)的狀態(tài)
2.微信個(gè)人頁(yè)面實(shí)戰(zhàn)為了更清楚感受BEM的命名方式,我仿制了一下微信的個(gè)人頁(yè)面,其中圖標(biāo)來(lái)自Iconfont矢量圖標(biāo)庫(kù),圖標(biāo)命名直接使用其原始的命名
一開(kāi)始我設(shè)計(jì)的html,此時(shí)我對(duì)BEM有些認(rèn)識(shí),但是使用上還是有點(diǎn)問(wèn)題,這時(shí),我將整個(gè)頁(yè)面看作一個(gè)模塊分為三部分:page__hd,page__bd,page__ft
微信************
- ***
- ***
***- ***
************
但當(dāng)一個(gè)模塊內(nèi)的部分多了些的時(shí)候,比如page__bd內(nèi)部的元素,我覺(jué)得我的命名有些混亂,為了給它命名還得百度翻譯,而且開(kāi)始命名完后寫(xiě)css時(shí)發(fā)現(xiàn)自己還是不太清楚它的位置,寫(xiě)完css后發(fā)現(xiàn)還有有些沒(méi)有使用上的類(lèi)名比如.right
我修改了我的html命名,感覺(jué)上結(jié)構(gòu)更加清晰而且觀察了一下微信的頁(yè)面,頭部和底部是不變的,每個(gè)頁(yè)面都是一樣的,還有page__bd內(nèi)的page__bd__list在微信的發(fā)現(xiàn)頁(yè)面也是開(kāi)始可以使用的,這樣的命名就比較好復(fù)用。
3.總結(jié)一下我使用 BEM 命名的感受
第一:讓你的代碼更容易閱讀和理解,可以清晰的指出某個(gè)節(jié)點(diǎn)屬于哪個(gè)塊下,層級(jí)關(guān)系比較明顯,也盡量避免使用節(jié)點(diǎn)承載的內(nèi)容來(lái)定義節(jié)點(diǎn),這樣更好的復(fù)用某個(gè)模塊
第二:BEM 的降級(jí)關(guān)系不需要迫切的去使用,比如page__hd內(nèi)的.title,因?yàn)橐粋€(gè)頁(yè)面只有一個(gè)title,所以使用page__title就可以代表,不需要使用page__hd__title
第三:使用BEM是為了讓我們的代碼更清晰,更易維護(hù),如果它使得你的代碼更難維護(hù),更難理解,也不必糾結(jié)
github 項(xiàng)目地址:https://github.com/EIVE/wx_ho...
以上是我學(xué)習(xí)BEM的一下感受,希望大家可以有所收獲,其中可能有些不太恰當(dāng)?shù)牡胤剑蚕M蠹铱梢远嘟o我提一些意見(jiàn)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/112796.html
摘要:如何用獲取虛擬鍵盤(pán)高度前端早讀課月號(hào)早讀文章由湯谷投稿分享。大殺器和把動(dòng)畫(huà)轉(zhuǎn)換成原生動(dòng)畫(huà)初來(lái)乍到,本文搬運(yùn)自我月份在知乎發(fā)的文章。 前端面試之 CSS3 新特性 除了 HTML5 的新特性,CSS3 的新特性也是面試中經(jīng)常被問(wèn)到的。 如何用 js 獲取虛擬鍵盤(pán)高度?-前端早讀課 9月7號(hào)早讀文章由@湯谷投稿分享。正文從這開(kāi)始~ 這是一個(gè)存在很久的歷史問(wèn)題了,對(duì)于這樣一個(gè)具有普遍性的問(wèn)題...
摘要:前言微信小程序中可以直接運(yùn)行頁(yè)面,這一新組件的產(chǎn)生,可能直接導(dǎo)致小程序數(shù)量迎來(lái)一波高峰。微信小程序配置系列問(wèn)題配置域名業(yè)務(wù)域名中配置的就是小程序以及和中引用的域名。 今日勵(lì)志語(yǔ) 要接受自己行動(dòng)所帶來(lái)的責(zé)任而非自己成就所帶來(lái)的榮耀。 前言 微信小程序中可以直接運(yùn)行 web 頁(yè)面,這一新組件 web-view 的產(chǎn)生,可能直接導(dǎo)致小程序數(shù)量迎來(lái)一波高峰。本篇博文將從業(yè)務(wù)選型,微信小程序后臺(tái)...
項(xiàng)目需求簡(jiǎn)單描述 用戶(hù)長(zhǎng)按錄音,松手后直接結(jié)束錄音,結(jié)束錄音后,用戶(hù)可以選擇重新錄音、播放剛才的錄音,上傳錄音(這里的上傳錄音指上傳到自己服務(wù)器,上傳步驟是,前端調(diào)用wx.uploadVoice,后臺(tái)再到微信服務(wù)器下載音頻文件,上傳到自己的服務(wù)器)。注意,音頻文件自上傳時(shí)間算起在微信服務(wù)器的有效期為3天。由于后臺(tái)從微信服務(wù)器下載的音頻文件是amr格式的,需要后臺(tái)先把a(bǔ)mr文件轉(zhuǎn)換成MP3,前端用a...
閱讀 1721·2021-11-22 15:33
閱讀 2097·2021-10-08 10:04
閱讀 3548·2021-08-27 13:12
閱讀 3424·2019-08-30 13:06
閱讀 1474·2019-08-29 16:43
閱讀 1398·2019-08-29 16:40
閱讀 789·2019-08-29 16:15
閱讀 2749·2019-08-29 14:13