BEM i konwencje nazewnictwa w CSS

BEM i konwencje nazewnictwa w CSS, z kreatorem nazw klas | We.Inc

Jak BEM nazywa bloki, elementy i modyfikatory, z kreatorem, który sprawdza Twoje nazwy klas. Porównanie BEM z klasami utility, CSS Modules i @scope.

BEM i konwencje nazewnictwa w CSS

BEM to skrót od Block, Element, Modifier (blok, element, modyfikator). Blok to samodzielny komponent, np. .card, element to część, która ma sens tylko w jego wnętrzu, zapisywana jako .card__title z dwoma podkreśleniami, a modyfikator to wariant zapisywany jako .card--featured z dwoma myślnikami. Modyfikatory dodaje się obok klasy bazowej, nigdy zamiast niej.

BEM w jednej tabeli

To nazewnictwo decyduje, czy projekt CSS pozostanie uporządkowany, czy powoli zmieni się w stos nadpisań. Ta strona wyjaśnia zasady BEM z oficjalnej strony BEM, sprawdza Twoje nazwy klas na bieżąco i porównuje BEM z innymi sposobami, którymi zespoły dziś chronią style przed kolizjami.

Najczęściej zadawane pytania

Co oznacza skrót BEM?

Block, Element, Modifier, czyli blok, element, modyfikator. To metoda nazywania klas CSS, w której każdy selektor to jedna klasa, więc specyficzność pozostaje płaska, a po nazwie klasy widać, do którego komponentu należy.

Dlaczego BEM używa podwójnych podkreśleń i podwójnych myślników?

Pojedyncze myślniki są już używane wewnątrz nazw, jak w search-form. Podwojenie separatorów sprawia, że granica między blokiem, elementem i modyfikatorem jest jednoznaczna, więc .search-form__submit-button czyta się jako jeden blok i jeden element.

Czy BEM nadal ma sens z Tailwind lub CSS Modules?

Przy klasach utility rzadko piszesz nazwy klas komponentów, więc BEM ma mniejsze znaczenie. W CSS Modules narzędzie budujące samo izoluje nazwy, a zalecane są krótkie nazwy w camelCase. BEM nadal jest mocnym wyborem dla czystego CSS, Sass, motywów WordPress i design systemów współdzielonych między frameworkami.

Jak nazwać element wewnątrz elementu?

Przypisz go do bloku, a nie do elementu nadrzędnego. Tytuł w treści karty to .card__title, nawet gdy HTML zagnieżdża go w .card__body. Jeśli zagnieżdżona część jest wielokrotnego użytku sama w sobie, zrób z niej nowy blok.

Jaki problem rozwiązują konwencje nazewnictwa

Gdy bloki zawierają bloki

Natywne izolowanie w CSS nadrabia zaległości

BEM w porównaniu z innymi podejściami

Sposoby na uniknięcie kolizji nazw klas

Pełny komponent w BEM

Blok karty z elementami i modyfikatorami

Każdy selektor to jedna klasa. Modyfikator featured zmienia obramowanie i pozwala jednemu elementowi reagować przez modyfikator bloku.

Typowe błędy w BEM

Źle i dobrze

Kreator nazw klas BEM

Wpisz blok, element i modyfikator, aby dostać nazwy klas oraz pasujący HTML i CSS, z ostrzeżeniami, gdy nazwa łamie zasadę.

Blok

Element (opcjonalnie)

Modyfikator (opcjonalnie)

Blok

Element

Modyfikator

{label}: nie wpisuj samodzielnie __ ani --, kreator dodaje separatory.

{label}: używaj małych liter łacińskich, cyfr i pojedynczych myślników.

Elementy nie mogą zawierać innych elementów.

Te nazwy są zgodne z zasadami BEM.

Kopiuj: {label}

Zacznij za darmo · Bez karty kredytowej

Powiązane: Poradniki

Produkt

Dla kogo

Funkcje

Zasoby

Firma

Mapa strony