好程序員 分享 如何看待 CSS 中 BEM 的命名方式 ?BEM 的意識就是塊 (block) 、元素 (element) 、修飾符 (modifier) ,是由 yandex 團隊提出的一種 CSS Class 命名方法。
目前創(chuàng)新互聯(lián)建站已為近千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)絡(luò)空間、綿陽服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計、個舊網(wǎng)站維護等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。任何一個東西的存在都有其存在的道理,如果他毫無價值,那么肯定會被淘汰,后人可能都不了解,甚至都不會出現(xiàn)在后人的世界里。
關(guān)于 BEM 命名其大的爭議就是其命名風(fēng)格,它鼓勵一級一級的寫的非常具體,但是會很長。如此常的命名會影響書寫效率,名稱過長代碼量就會增多,文件體積就會變大 ( 在 gzip 下這個不算是個問題 ) ,從而會影響傳輸速度,用戶體驗度就低,但是作為一個職業(yè)人我們都不能單純把個人喜好和習(xí)慣作為借口來拒絕或否定其用途。
風(fēng)格對于使用者來說并不是很重要,關(guān)鍵的是看其效果。正所謂人們常說的 “不看療程,看療效”。
從擴展性上來看,嵌套過多閱讀性差,超過 3 層就很難閱讀了 ; 嵌套越多,選擇器的層級也會隨之增多,那么性能不知不覺就會變差 ; 如此長的名字,書寫上想沖突都難。
從編程原則上來說,這種命名方式不會暴露抽象類。假如樣式變了需要繼承另一個抽象類,不需要改 HTML ,只需要改 css 即可。
團隊開發(fā)中,風(fēng)格無非是一種形式,可以約束人們達到一定程度上的統(tǒng)一。內(nèi)部溝通會極大降低溝通成本。
BEM 命名的方法雖然有自身的不足之處,但至少他可以使我們命名的時候達到一定的統(tǒng)一,我們可以學(xué)習(xí)其優(yōu)秀的方面將其納為己用。在實際項目開發(fā)中將其巧妙而又靈活的運用起來也未嘗不是一件壞事。