
첫 프로젝트를 진행하면서 코드가 점점 길어지다 보니, class 이름이 잘 읽히지도 않고 헷갈려서 고생 좀 했다.
친구가 합류하면서 일관적이고 직관적인 이름이 더욱 필요해졌다.
BEM 내용을 정리하고, 지금까지 내가 작성했던 모든 class 이름을 수정했다.
class 명을 목적에 따라 짓는 구조적인 방법.Block, Element, Modifier 세가지로 구성된 이름.--(하이픈)과 __(언더바)로 구분.Block__Element--Modifier/* Block__Element--Modifier */
.header__navigation--navi-text {
}
ID 에는 사용할 수 없음.margin 이나 padding 을 적용하지 않도록 함.<header>, <nav>, <main>, <footer> 등은 블럭으로 간주.
<header> 블록 안에 <logo> 블록, <sns-logo> 블록이 존재가능.
__(언더바)를 이용해서 블럭과 구분.
<div class="sns-logo">
<div class="sns-logo__kakao">
<div class="sns-logo__kakao-icon"></div>
<div class="sns-logo__kakao-letter"></div>
</div>
<div class="sns-logo__insta">
<div class="sns-logo__insta-icon"></div>
<div class="sns-logo__insta-letter"></div>
</div>
</div>
<div class="sns-logo">
<div class="sns-logo__kakao">
<div class="sns-logo__kakao__icon"></div>
<div class="sns-logo__kakao__letter"></div>
</div>
<div class="sns-logo__insta">
<div class="sns-logo__insta__icon"></div>
<div class="sns-logo__insta__letter"></div>
</div>
</div>
--(하이픈)을 이용해서 구분.
<!-- html -->
<nav class="navigation">
<div class="navigation__tabs">
<a class="navigation__tab navigation__tab--red" href="">
<div>Overview</div>
</a>
<a class="navigation__tab" href="">
<div>Rooms</div>
</a>
<a class="navigation__tab" href="">
<div>Location</div>
</a>
<a class="navigation__tab" href="">
<div>Book now</div>
</a>
<a class="navigation__tab" href="">
<div>Contact us</div>
</a>
</div>
</nav>
/* css */
.navigation__tab {
font-size: 20px;
color: black;
}
.navigation__tab--red {
color: red;
}