Upgrade to Pro — share decks privately, control downloads, hide ads and more …

BEM

Avatar for FEVR FEVR
February 23, 2017

 BEM

Avatar for FEVR

FEVR

February 23, 2017
Tweet

More Decks by FEVR

Other Decks in Technology

Transcript

  1. Ciao, sono Alessandro Muraro Front End Developer @ Objectway Organizer

    @ Milano Front End Meetup Su Twitter sono @akmur Il mio sito é alexmuraro.me
  2. Background • Metodologia per dare nomi sensati agli elementi in

    CSS senza diventare matti. • Inventato da Yandex. • Creato per gestire siti complessi da supportare a lungo. • Aiuta nella creazione di componenti riutilizzabili ed estendibili.
  3. Che problemi risolve • Evitare il copia/incolla di CSS. •

    Ridurre al minimo i problemi causati dallo scope globale del CSS. • Semplificare il refactoring. • Rendere il codice riutilizzabile. • Rendere lo sviluppo più rapido.
  4. • Componente stand-alone. • Indipendente dal punto di vista funzionale.

    • Possono essere nidificati ma senza avere rapporto gerarchico. Block: Concetti Base
  5. Block: Esempio Codice Nota 1: Non è necessario mettere il

    nome del blocco in maiuscolo, tuttavia può essere una buona idea per rendere il codice più leggibile. Nota 2: Non si deve replicare la struttura dell’HTML nel CSS.
  6. • Il nome descrive la funzione e non l’estetica. •

    Il nome del blocco definisce il namespace per evitare conflitti nel CSS. • Il blocco non deve dipendere da altri componenti. • Il blocco non deve influenzare il posizionamento degli altri blocchi tramite positioning o margini esterni (robe da layout). • Non si usano mai ID o nomi di tag, solo classi. Block: Altri Concetti
  7. • Un elemento è parte di un blocco e non

    può essere utilizzato separatamente da esso. • Se un elemento può essere usato da solo… è un blocco! • Un elemento può essere all’interno di un altro elemento appartenente allo stesso blocco, ma NON all’interno di un altro blocco. Element: Concetto base
  8. • Il nome di un elemento non deve seguire la

    struttura dell’HTML • Si separa il nome dell’elemento da quello del blocco tramite due underscores “_ _” • Il nome di un elemento deve contenere il nome del blocco. Element: Altri Concetti
  9. • Un componente può essere descritto da un mix di

    blocchi ed elementi. Element: Altri Concetti
  10. • Un blocco può non avere elementi. • Un blocco

    può esistere dentro un elemento Block & Element: Altri Concetti
  11. • Classe addizionale che modifica le “impostazioni” di base di

    un blocco o elemento. • Viene separato dal blocco o dall’elemento da due dash “--” • Quando sia applica un modificatore, viene riutilizzata anche la classe originale, mentre il modificatore contiene solo la modifica • Si possono usare modificatori multipli Modifier: Concetti Base