front-end/HTMI CSS
OOCSS, BEM class 작명법
Hoon0211
2023. 6. 22. 23:59
728x90
1. Obiect Oriented CSS
- 빨간색 버튼과 파란색 버튼이 있습니다.
.main-btn-red {
font-size : 20px;
padding : 15px;
border : none;
cursor : pointer;
background : red;
}
.main-btn-blue {
font-size : 20px;
padding : 15px;
border : none;
cursor : pointer;
background : blue;
}
- 아마 두개의 button에 이렇게 넣는 경우
- 중복된 코드가 4줄이 존재를 합니다.
- 버튼이 5가지 색이면? 10가지 색이면?
- CSS 파일에 용량이 커지면 웹사이트 로딩 속도를 저하시키는 원인이 됩니다.
.main-btn {
font-size : 20px;
padding : 15px;
border : none;
cursor : pointer;
}
.bg-red {
background : red;
}
.bg-blue {
background : blue;
}
- 이 코드는 어떤가요?
- 뼈과 살이 분리하는 방법입니다.
- 버튼의 동일한 속성은 하나로 만들고 다른 점만 따로 class로 분리를 한것입니다.
- HTML에서는 이렇게 작성이 되겠죠
<button class="main-btn bg-red">빨간버튼</button>
<button class="main-btn bg-blue">파란버튼</button>
1.1 코드를 분리해서 얻는 이점
- 중복된 스타일을 재사용가능합니다.
- CSS 파일용량도 줄어들고 코딩 시간도 절약
- 유지보수가 편리해집니다.
- 사이트의 모든 버튼의 크기나 폰트를 바꿀 경우 한곳만 건드리면 됩니다.
- 코드 작성에 빨라집니다.
- .bg-red 이렇게 색깔의 class들을 전문 용어로 utility class라고 합니다.
.bg-red {
background : red;
}
.bg-green {
background : green;
}
.bg-blue {
background : blue;
}
- 버튼 만들때 class명 2~3개만 선택하면 되기 때문에, css 파일을 열지 않고 빠르게 코드 작성이 됩니다.
- 폰트 역시 쉽게 변화 시킬 수 있습니다.
- 요즘 반응형 웹으로 스마트폰 화면, 태블릿 화면, pc 화면에 속하는 글꼴 크기도 빠르게 할수있죠.
.font-small {
font-size : 12px;
}
.font-medium {
font-size : 16px;
}
.font-lg {
font-size : 20px;
}
2. BEM class 작명법
- 아래 코드는 쉽게 파악이 되지 않습니다.
<div>
<img>
<h4>이름</h4>
<p>소개글</p>
<button>빨간버튼</button>
<button>파란버튼</button>
</div>
2.1 클래스명으로 손쉽게 파악을 하는 방법이 있습니다.
- class를 작명할 땐 우선 덩어리이름으로 시작하는게 좋습니다.
- 태그마다 다른 class명을 부여하려면 __태그명을 뒤에 붙입니다.
- img 태그는 profile_img, button 태그는 profile__button 등등
- 같은 태그들의 디자인을 구분하려면 --
- 빨간 버튼은 --red, 파란 버튼은 --blue 등등
<div class="profile">
<img class="profile__img">
<h4 class="profile__h4">이름</h4>
<p class="profile__content">소개글</p>
<button class="profile__button--red">빨간버튼</button>
<button class="profile__button--blue">파란버튼</button>
</div>
728x90