Front-End/CSS
[CSS] CSS 클래스 작명 / BEM
sihyeong
2022. 10. 19. 01:03
BEM
- Block-Element-Modifier / BEM을 이용해 작명한다.
이점
- 목적, 기능을 명확히 전달
- 클래스 이름만으로 구조 파악의 용이성
단점
- 잘못하면 클래스네임이 엄청 길어질 수 있다.
Block
문단 전체에 적용된 element나 element를 담고있는 컨테이너
Element
block을 구성하는 단위
block은 독립적, element는 의존적
block 내에서만 의미를 가진다.
Midifier
block이나 element의 속성을 담당
다르게 동작하거나 다른 외형을 가져야 할 때 추가하여 사용
주의사항
- 클래스에만 사용, id는 유일한 것이기 때문에 이 방법을 따르지 않는다.
- 블록과 요소는 목적을 기반으로 작명
- 구조의 깊이 표현 x ,
.card__ul__li ( x )
이런식으로 깊이를 표현 x
.card__list ( o )
자식의자식의자식의A라 쳤을 때
.block__자식__자식__자식__A (x)
.block__A (o)

- 아래 방식을 이용해 표기한다.
modi-fier
modifier--modifier
.block
.block--modifier
.block__element
.block__element--modifier
.block__element--key-value
참고
작명법
https://9elements.com/bem-cheat-sheet/
BEM Naming Cheat Sheet by 9elements
A visual tool that provides naming-suggestions for CSS classes using BEM naming convention.
9elements.com
naradesign.github.io
https://naradesign.github.io/bem-by-example.html
예제로 이해하는 BEM.
HTML, CSS(flex/grid), UI/UX, Accessibility, 정찬명
naradesign.github.io