SASS,SCSS
sass --watch scss/style.scss:css/style.css
라고 입력.MAP 파일의 이해
주석
SCSS 파일 분할하기
네스팅 작업
아래의 예처럼 둥지를 만들어나가는 것
.wrap .item은 아래 왼쪽처럼 item을 .wrap 안에 네스팅, .wrap .item h2는 .wrap 안에 item 안에 네스팅
네스팅 작업 시, 위의 예에서 .wrap의 wrap을 group과 같이 다른 거로 바꿨을 때, 네스팅하기전 최상위요소만 바꾸면 하위 요소들은 알아서 적용이 됨. 하지만 css의 경우, 하나하나 다 바꿔줘야함
네스팅 작업시 , 호버적용할 때 매우 유용하다
ex) 아래와 같이 h2, p,a의 부모요소인 item에 호버 적용 할 때, & 기호를 쓰게 되면 부모요소를 뜻하게 됨.
ex) item에 hover시, h2, p, a 에 효과 적용 하고 싶으면, 아래와 같이 적용
변수
자주 바뀔만한 부분의 값을, 특정 부분에 미리 저장해 놓은 뒤 , 저장되어있는 값을 고치면, 변수로 치환된 모든 코드의 값이 한번에 바뀌게 되는 편리한 시스템
변수 만드는 규칙
$만들고싶은규칙명: 효과
위처럼 규칙 만들고 효과 입력 후, 넣고싶은데 규칙명 넣기
위 방식의 장점은 예를들어 클라이언트가 갑자기 버튼 색상을 바꾸고 싶다고 할 때, 하나하나 찾아가며 바꿀 필요 없이, 맨 위에 규칙명에서 버튼색 하나만 바꾸면 다른 버튼색도 다 자동으로 바뀌기 떄문에 편리함.
mixin
@mixin button(){
display: block;
width: 20px;
height: 20px;
};
믹스인이 만드는데 번거로움에도 믹스인을 만드는 이유
믹스인의 틀을 만든 다음에 바꾸고싶은 부분만 조금씩 변경해서 쓸때 용이하게 사용
ex)버튼의 경우 위 사례에서 클라이언트가 버튼1의 너비 100, 버튼2 너비 120, 버튼3 너비 140, 버튼 4 너비 160 으로 하고 싶다면
아래와 같이 button($wid){} 버튼() 안에 $변수명을 넣고, 변수로 만들 효과의 항목에 $변수명을 넣은 뒤, width: $wid; , @include button() 의 ()괄호 안에 변수효과를 각각 다르게 설정하면 각각 너비를 간편하게 바꿀 수 있음.
아래의 방법으로 첫번쨰 a, 두번째 a, 세번쨰 a, 네번째 a를 각각 개별로 효과 줄 수 있음
이 때, 만약 첫번째 a에 효과값(100px)을 주지 않고 빈괄홀로 놔둔다면 오류가 뜨게 되는데, 오류가 뜨지 않게 하기 위해 아래와 같이 기본값으로 (wid:100px)을 설정해두면 빈칸으로 비워놔도 기본 100px을 가져가게 되어 오류가 뜨지않음
믹스인에서 변수명을 두개 이상 사용할때는, 예를들어 @mixin button($wid:100px, $bg:gray)로 변수명 뒤에 콤마(,)를 붙여 또다른 변수명을 사용 할 수 있음.
반복문 for
$변수명
from 1 through 4 {} : 변수명 안에 어떤 값이 1~4 까지 돌면서 {} 안의 코드가 4번 반복되는 것@for $i from 1 through 4 {
&:nth-of-type(#{$i}) {
transition-delay: 0.2 * $i;
}
}
반복문 each
조건문 if
@if 바꾸고싶은값 == #fff {color: #333}
@else {color: #fff}
ex) 만약(@if) .item의 배경을 변수로 해둔 $bgItem의 색이 #fff색이라면, 글자색(color) 값을 #333으로 하고, 그게아니면(@else) 글자색을 #fff로 하기