주석
/* 주석입니다 */
중첩
.parent {
color: red;
.child {
background-color: blue;
}
}
상위 선택자 참조 "&"
.parent {
/* 여기서 &는 .parent 를 가리킴 */
}
상위 선택자 무시 "@at-root"
.parent {
$w: 100px;
@at-root .parent2 {
...
}
}
상위 선택자에 선언된 값은 쓰고싶은데 .parent의 자식은 아닐 때 사용한다.
변수
$변수명: 값;
/*ex*/
$red: #ff0000;
$header-color: $red;
여타 프로그래밍 언어와 동일하게 중괄호 내에서 선언 시 그 밖에서는 사용 불가.
글로벌 변수 !global
$변수명: 값 !global;
있으면 그대로 없으면 새 걸로 !default
$my-color: red;
$my-color: blue !default; /* $my-color is red */
변수 할당 {}
$my-color: red;
.{$my-color}-header { /* .red-header class */
}
import
일반 css 파일: 확장자 반드시 지정
scss 파일: import할 파일 이름 앞에 언더바(_)를 붙인 뒤 (_header.scss) 메인에서 import.
@import "header";
★ @mixin
스타일 재사용을 위한 기능.
@mixin orange-box {
width: 100px;
height: 100px;
color: white;
font: {
size: 2rem;
weight: bold;
}
background-color: orange;
}
.box {
@include orange-box();
}
box class 속성 안에 orange-box에 선언한 속성이 그대로 들어간다.
다음과 같이 별도의 파라미터를 받아 적용할 수도 있다.
colon(:)을 통해 default parameter를 적용할 수도 있다.
@mixin color-box($color: orange) {
width: 100px;
height: 100px;
color: white;
font: {
size: 2rem;
weight: bold;
}
background-color: $color;
}
.blue-box {
@include color-box(blue);
}
.orange-box {
@include color-box();
}
@function (함수)
style을 반환하는 mixin과 달리, value를 반환한다.
또한 mixin과 달리 @import를 명시하지 않고 그냥 사용한다.
@function get-size($size: 2rem) {
@return ($size*3)/2;
}
.box {
@include color-box();
font-size: get-size();
}
box class의 font-size는 (2*3)/2 rem인 3rem으로 나온다.
if (조건 함수)
@mixin set-color($w: 100px) {
background-color: if($w > 100px, orange, blue);
}
@if (조건문)
$is-mobile: true; // boolean 자료형도 사용 가능
.box {
@if $is-mobile {
// 모바일 화면에 대한 처리
}
@else {
// 데스크탑 화면에 대한 처리
}
}
@for (반복문)
주로 nth-child와 함께 사용된다.
@for $i from 1 through 5 {
.box:nth-child($i) {
color: red;
}
}