해당 코드가 있는 Github 바로가기01
해당 코드가 있는 Github 바로가기02
Nesting(중첩)
중첩은 반복을 제거하고 스타일링에 분명한 DOM관계를 보여줌으로서 코드를 효율적으로 만듭니다.
확장자가 SCSS, SASS 일 때 문법이 다른데,
SCSS파일의 경우는 기존의 CSS의 문법과 동일합니다.
1 2 3 4 5 6
| .parent { color: blue; .child { font-size: 12px; } }
|
SASS파일의 경우 {}
를 쓰지 않고 들여쓰기로 구분합니다. ;
도 쓰지 않습니다.
1 2 3 4
| .parent color: blue .child font-size: 12px
|
위의 SCSS와 SASS의 CSS 컴파일 결과는 같습니다.
1 2 3 4 5 6 7
| .parent { color: blue; } .parent .child { font-size: 12px; }
|
속성에 관련한 Nesting :
1 2 3 4 5 6 7
| .parent { font : { family: Roboto, sans-serif; size: 12px; decoration: none; } }
|
컴파일 결과
1 2 3 4 5
| .parent { font-family: Roboto, sans-serif; font-size: 12px; font-decoration: none; }
|
&
: 부모 참조 선택자. 중첩된 구조에서 사용합니다.
1 2 3
| .button &:hover background: skyblue
|
컴파일 결과
1 2 3
| .button:hover { background: skyblue; }
|
@extend
: 선택자 상속. 그룹핑 개념으로 선언된 다른 규칙의 내용을 상속받습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| $btn-radius: 4px $btn-align: center $btn-gap: .6em $btn-bg: #fe9977 .button display: inline-block padding: $btn-gap $btn-gap background: $btn-bg text-align: $btn-align &:hover background: skyblue .button-error @extend .button color: #fff border: 3px solid green
|
컴파일 결과
1 2 3 4 5 6 7 8 9 10 11
| .button, .button-error { display: inline-block; padding: 0.6em 0.6em; background: #fe9977; text-align: center; } .button:hover, .button-error:hover { background: skyblue; } .button-error { color: #fff; border: 3px solid green; }
|