CSS 방법론
Last updated
Last updated
협업 시 사람마다 다른 코드 구조 및 스타일 정의
네이밍 규칙
유지보수, 재사용성
구조와 외형의 분리(공통 스타일 추상화)
구조 : width, border, padding, margin ... (공통적인 구조지정)
외형 : color, border-color, background-color ...
컨테이너와 내용의 분리
위치에 의존하지 않는 스타일 정의
클래스 명을 부여하고 스타일을 지정(태그 선택X)
어디서나 재사용 가능한 클래스 기반의 모듈 구축
장점
공통된 부분을 정의해서 재사용 용이
동일한 클래스라면 동일한 스타일 기대
코드 양이 줄어듬
단점
공통 클래스가 많아 수정 발생 시 멀티 클래스 사용(+Sass와 사용하기도함)
멀티 클래스가 많아짐에 따라 유지보수 어려움
가독성이 떨어짐
ID 사용X. Class만 사용. 목적에 따라 네이밍(케밥 케이스)
.block : 재사용 가능한 기능적으로 독립적인 페이지 컴포넌트(중첩 가능)
__element : 블럭을 구성하는 단위(중첩 가능)
--modifier : 블럭이나 엘리먼트의 속성
장점
클래스 네임만으로 마크업 구조를 알 수 있음
단점
클래스 네임이 길어질 수 있음
기존 마크업에서 새 기능 추가 시 클래스명 재수정이 불편
CSS에 대한 확장형 모듈식 구조의 형태로 5개로 구분된 카테고리로 CSS 코딩 기법 제시
Base - 기본규칙
각 브라우저의 기본스타일, elemnet 스타일의 기본 정의 값
Layout - 레이아웃 규칙
큰 틀의 레이아웃, 요소를 배치, 구별하는데 적용
header, footer, aside, content 등
하위 : list, item, form 등
클래스 명은 l-, layout- 명시
Module - 모듈 규칙
페이지에서 재사용 가능한 요소 : 버튼, 배너, 아이콘, 박스 요소 등
각 모듈은 독립성을 가지게 스타일 선언 : id,태그선택자X
State - 상태 규칙
요소의 상태변화를 표현하는 요소 : 툴팁, 아코디언 등
active나 disable 등. is-, s- 명시
모듈과 레이아웃 모두 적용 가능
Theme - 테마 규칙
사용자가 선택 가능하도록 스타일을 재선언하여 사용
전반적으로 look and fell을 정의. theme- 명시
장점
클래스명을 통한 예측의 용이성
재사용을 통한 코드의 간결과
확장의 용이성
단점
카테고리를 나누는 기준이 작성자에 따라 불분명
코드를 나누어서 작성해야 하기 때문에 번거로움
잘못 사용하면 오히려 더 복잡하고 번거로워짐