SCSS - 2
반복문
4번 반복 합니다.
@for $i from 1 to 5
{
}
@for $i from 1 to 5 { 1부터 5전까지
.container{
color:red;
}
}
.container {color: red;}
.container {color: red;}
.container {color: red;}
.container {color: red;} //4개 출력
순전히 이렇게 사용하는건 뭔가 비효율적 입니다.
그래서 보통 인접 형제의 순서를 나열할때 유용합니다.
자바스크립트에서의 보간은 ${}
지만 SCSS 에서는 #{}
을 써줍니다
scss
@for $i from 1 to 5 {
.box:nth-child(#{$i}){
width : 50px * $i;
}
}
css
.box:nth-child(1) {width: 50px;}
.box:nth-child(2) {width: 100px;}
.box:nth-child(3) {width: 150px;}
.box:nth-child(4) {width: 200px;}
함수
@function raito(para) {body}
대부분의 모니터 비율은 16:9 입니다.
이를 함수로 구현해 간단하게 대입 해보겠습니다.
@function raito($width) {
@return $width * (9/16)
}
.box{
$width:1920px; // 원하는값 입력
width: $width;
height:raito($width);
}
결과
.box {
width: 1920px;
height: 1080px;
}
내장 색상 함수
함수 | 설명 |
---|---|
mix(color1,color2) | 2개의 색을 합칩니다. |
lighten(color,1~100) | 색상을 더 밝게합니다. |
darken(color,1~100) | 색상을 어둡게 만듭니다. |
saturate(color,1~100) | 채도를 올립니다. |
desaturate(color,1~100) | 채도를 내립니다. |
grayscale(color) | 회색으로 바꿉니다. |
invert(color) | 색을 반전 시킵니다. |
rgb(color,0~1) | 색을 불투명하게 만듭니다. |
가져오기
VSC 기준으로 SCSS 파일은 다른 SCSS 파일을 손쉽게 가져올수 있습니다.
자바스크립트와 달리 export 할 필요 없이 import 만 해도 되죠
@import url('./tset.scss');
다만 좀더 간략하게 @import './tset';
로 표현할수도 있습니다.한번에 가져올때는 @import './test','./tset2';
, 콤마를 씁니다.
데이터
SCSS 에서의 데이터 종류 입니다.
데이터 | 설명 | 예시 |
---|---|---|
Numbers | 숫자 | 1, .82, 20px, 2em… |
Strings | 문자 | bold, relative, "/images/a.png", "dotum" |
Colors | 색상 표현 | red, blue, #FFFF00, rgba(255,0,0,.5) |
Booleans | 논리 | true, false |
Nulls | 아무것도 없음 | null |
Lists | 공백이나 ,로 구분된 값의 목록 | (apple, orange, banana), apple orange |
Maps | Lists와 유사하나 값이 Key: Value 형태 | (apple: a, orange: o, banana: b) |
@each
@each 는 반복문과 유사한 형태입니다. 다만 서로다른 형태로 반환하죠
@each $var in list {}
리스트를 사용해 아래와 같이 표현할수 있습니다. 배열처럼 순서대로 생성합니다.
$list: orange,red,blue;
@each $col in $list {
.box{
color:$col
}
}
.box {
color: orange;
}
.box {
color: red;
}
.box {
color: blue;
}
map은 객체와 유사한 형태입니다. 키와 값을 가지고 있죠
자바스크립트와 다른점은 {}
중괄호가 아닌 ()
소괄호를 사용합니다.
map은 키
와 값
을 가지고 있기때문에 변수를 두개 선언합니다
@each $key ,$value in $map {}
변수가 2개이기 때문에 원하는곳에 추가로 사용할수 있습니다.
SCSS
$map:(
o:orange,
r:red,
b:blue
);
@each $key ,$value in $map {
.box-#{$key}{
color: $value
}
}
CSS
.box-o {
color: orange;
}
.box-r {
color: red;
}
.box-b {
color: blue;
}
보간법을 이용해서 서로다른 클래스에 적용할수 있습니다.
Author And Source
이 문제에 관하여(SCSS - 2), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@hb-developer/SCSS-2저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)