주석
/* 주석입니다 */
중첩
.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; } }