Noi scriem corect bam-ul

Au fost la începutul anului BEM. Acum promovat de Harry Roberts și folosit de mulți dezvoltatori non-Yandex. Folosite pentru a crea spațiul lor de nume și partiționarea logică a blocurilor.

BEMIT: Namespace

Utilizarea avansată a prefixelor și sufixelor de la Harry Roberts. O încercare de a descrie relația dintre blocurile independente din punctul de vedere al SMACSS și OOCSS.

Harry Roberts Style

Mulți oameni ca format străin de modificatori, prin "-", este mai ușor de citit.

Style camelCase

Și prin CamelCase - și mai ușor de citit!

Stil fără subliniere

Unii merg mai departe și înlocuiesc "__" cu "-". camelCase garantează doar că veți înțelege unde este blocul și unde este elementul.

Modificatori scurți

Modificatori scurți

Corect scrieți astfel:
.block-name__elem _key_value

Sau așa:
.blockName__elem - key_value

Fără siguranță, modificatorul poate fi transferat fără bloc:

Modificatori scurți

Noi scriem corect bam-ul

- Pierdeți amestecurile de blocuri cu modificatori!
- Nu putem folosi Full BEM Stack!

Soluția poate fi de a scrie modificatori într-o coloană

Și totuși este posibil Jade, iar în Yandex în general nu scrie html-code de mâini, la ei BEMJSON.

Acesta este un amestec între blocul css și blocul js pe un nod dom. BEM canonice consideră că acestea nu sunt necesare, pentru că Funcția js nu are sens să se separe de bloc. Harry Roberts și dezvoltatorii non-Yandex îi folosesc în mod activ și îi promovează. separarea facilitează copierea unui css bloc fără JS asociat.

Implementări alternative: OPOR

Un exemplu bine cunoscut de utilizare a metodologiei BEM de către un dezvoltator extern - Artem Sapegin

Implementări alternative: BEViS

Dialect BEM, cu reguli mai stricte pentru fiabilitatea maximă a aspectului, inventat de Vadim Makishvili pentru Yandex.Map.

Implementări alternative:
Google MDL

Biblioteca blochează de la Google, css-implementarea materialului lor de design inventat pentru Android.

Complet BEM Stack în HTML

Puteți crea propriile dvs. ghiduri

BEM oferă doar un set de reguli de bază, implementarea specifică și sintaxa pe care o alegeți.

Toate acestea sunt BEM

Subtilitatea lui BEM

BEM include multe tehnici

Ceva despre care am discutat / menționat:

  • de ce nu puteți investi blocuri
  • bem-tools și instrumente alternative pentru scrierea simplificată a denumirii BEM în HTML:
    • BEML - preprocesor html pentru BEM
    • posthtml-bem este același, dar prin PostHTML
    • bemto - mixine pentru scrierea BEM în Jade
  • miksovaniya
  • De ce avem nevoie de spații de nume / prefixe (inclusiv blocuri js)

Dar multe rămân în spatele scenei

  • Nu v-am spus cum să împărțiți blocurile în fișiere și să le adăugați în sistemul de fișiere
  • de ce nu utilizați nu utilizați @extend sass
  • despre i-bem.js
  • și despre blocurile abstracte (i-)
  • ... blocuri de context (m-)
  • ... blocuri de reținere (h-)
  • ... suprascrie nivelurile
  • ... modificatori globali
  • ... și istoria BEM - de ce este așa?

Citiți mai multe

Articole similare