본 글은 글쓴이가 꺼내보기 위함의 목적이 큰 글입니다 :)
Block Element Modifier 로 구성하여 클래스 이름짓는 방법론.
boolean type (값이 true라고 가정)
key-value type = 성질-내용
<div class="search header__search"> // block 이자 element, .header__search에서
<form>
<div class="search__inner"> // block 'search'의 element
<div class="search__title"> // element 안에 element, 서로 종속 관계 아님.
<label for="main-search">
<i class="fa fa-search"></i> //fa-search : block 'fa'의 modifier 'search'
<span class="blind">Search</span>
</label>
</div>
<input type="text" id="main-search" class="search__input"/> <!--focus시 .search__input--extend 클래스를
추가합니다--> //.search__input--extend : element 'search__input'의 modifier 'extend'
<input type="submit" class="search__button" value="Search"/>
</div>
</form>
</div>
& : 부모참조자, &대신 부모가 붙게됨.
.header {
width: 100%;
background-color: #eaeff2;
&__inner {
position: relative;
width: 100%;
max-width: 1200px;
min-width: 800px;
height: 120px;
margin: 0 auto;
padding: 0 20px;
}
&__logo {
margin-bottom: 30px;
}
&__auth {
position: absolute;
top: 20px;
right: 180px;
&--opened {
.auth-means {
border-radius: 8px 8px 0 0;
}
.auth-picker {
display: block;
}
}
}
&__search {
position: absolute;
top: 60px;
right: 0;
.search__input {
width: 60px;
&[class$=--extend] {
width: 160px;
}
}
}
}