- Aというオブジェクトがある
- Aとは一部だけちがうA-dashがある
オブジェクト指向じゃない
.A{
width:100px;
}
.A-dash{
width:100px;
color:red;
}
<div class="A">hoge</div>
<div class="A-dash">hoge</div>
オブジェクト指向的。
HTMLのclassにはどちらも同じAを指定することで継承を明示している。
.A{
width:100px;
}
.dash{
color:red;
}
<div class="A"></div>
<div class="A dash"></div>
オブジェクト指向とは言いがたい。
AとA-dashの同じプロパティがグループ化されているが、
継承が明示されているわけではない。
継承の意味でグループ化をしていたとしても
Aとは継承関係にないが、たまたま同じプロパティを持った「X」というオブジェクトが出てきた場合、
Xもグループ化できてしまう。
.A,
.A-dash{
width:100px;
}
.A-dash{
color:red;
}
<div class="A"></div>
<div class="A-dash"></div>
オブジェクト指向的。
CSSはパターン3と同じだが、
sassのextendによりAの継承が明示されている
.A,
.A-dash{
width:100px;
}
.A-dash{
color:red;
}
.A{
width:100px;
}
.A-dash{
@extend .A;
color:red;
}
<div class="A"></div>
<div class="A-dash"></div>