Be ready to study forever - 개발자 꿈나무

[Sass문법 정리] 3. 변수, @import 본문

Programming/CSS

[Sass문법 정리] 3. 변수, @import

루눌룹 2020. 7. 22. 23:20

4.4. 변수

4.4.1. 변수란?

저장한 특정 값을 재사용 있는 . 변수 앞에는 항상 $사인이 붙습니다

ex) $변수이름: 속성값;

SCSS예제

$color-primary: #e96900;
$url-images: "/assets/images/";
$w: 200px;

.box {
  width: $w;
  margin-left: $w;
  background: $color-primary url($url-images + "bg.jpg");
}

CSS예제

.box {
  width: 200px;
  margin-left: 200px;
  background: #e96900 url("/assets/images/bg.jpg");
}

 

4.4.2. 변수의 유효범위

변수는 선언된 중괄호{ } 안에서만 적용이 가능합니다. 변수는 또한 재할당이 가능합니다. , 변수에다 다른 변수 값을 할당할 있습니다.

예제

$red: #FF0000;
$blue: #0000FF;
$color-primary: $blue;
$color-danger: $red;
.box {
  color: $color-primary;
  background: $color-danger;
}

 

4.4.3. 변수의 전역설정 (global variable)

변수 뒤에 !global 플래그를 사용하면 해당 변수는 중괄호{ } 벗어나 해당 파일 전역에서 사용이 가능해집니다.

예제

.box1 {
  $color: #111 !global;
  background: $color;
}
.box2 {
  background: $color;
}

 

글로벌 변수와 같은 이름으로 중괄호 내에 새로운 변수를 정의한다면 overide되어 중괄호 안에 있는 값이 사용되게 됩니다.

SCSS예제

$color: #000;
.box1 {
  $color: #111 !global;
  background: $color;
}
.box2 {
  background: $color;
}
.box3 {
  $color: #222;
  background: $color;
}

 

CSS예제(컴파일 )

.box1 {
  background: #111;
}
.box2 {
  background: #111;
}
.box3 {
  background: #222;
}

 

4.4.4. !default (기본값 설정)

!default 플래그는 할당되지 않은 변수의 기본값을 설정 하게 되며 이미 정의된 변수의 값이 있다면 무시되고 기존의 값으로 대체되게 됩니다. 주로 bootstrap이나 다른 프레임워크를 사용하게 경우 override하지 않기 위해서 사용합니다.

SCSS예제

$color-primary: red;
.box {
  $color-primary: blue !default;
  background: $color-primary;
}

 

CSS예제(컴파일후)

.box {
  background: red;
}

 

4.4.5. 변수의 문자 보간

중괄호#{ } 이용해 문자열 중간에 변수 값을 삽입할 있습니다.

SCSS 예제

$family: unquote("Droid+Sans");
@import url("http://fonts.googleapis.com/css?family=#{$family}");

CSS예제(컴파일후)

@import url("http://fonts.googleapis.com/css?family=Droid+Sans");

 

4.5. @import(가져오기)

4.5.1. @import 사용법

외부에서 SCSS파일을 가져와 컴파일시 CSS단일 파일로 출력합니다. 가져온 파일에 정의된 모든 변수 또는 mixins등을 파일에서 사용 가능합니다.

SCSS에서 @import 사용하는 경우 SCSS파일을 가져오지만 아래의 경우에는 CSS파일로 컴파일된 가져오는 경우가 존재합니다.

-        파일 확장자가 .css 경우

-        파일 이름이 http:// 시작하는 주소일 경우

-        url() 함수로 import하는 경우

-        미디어쿼리가 있는경우

예제

@import "hello.css";
@import "http://hello.com/hello";
@import url(hello);
@import "hello" screen;

 

4.5.2. 여러 파일 가져오기

하나의 @import 여러 파일을 가져올 수도 있습니다.파일 이름은 , 구분합니다.

@import "header", "footer";

 

파일분할

파일 이름 앞에 _(언더스코어) 붙여(_header.scss 같이) @import 가져오면 컴파일 ~.css 파일로 컴파일하지 않습니다.

, import 기존의 파일이 중복되어 SCSS에서 CSS파일로 컴파일 되는 피하고 싶다면

import 가져온 SCSS파일 앞예 언더스코어 _ 붙이면 해당파일은 CSS파일로 컴파일 되지 않습니다.

예제

Sass-App
  # ...
  ├─scss
  │  ├─_header.scss
  │  ├─_side-menu.scss
  │  └─main.scss
  # ...
// main.scss
@import "header", "side-menu";

 

컴파일후 예제

Sass-App
  # ...
  ├─css
  │  └─main.css  # main + header + side-menu
  ├─scss
  │  ├─header.scss
  │  ├─side-menu.scss
  │  └─main.scss
  # ...

'Programming > CSS' 카테고리의 다른 글

[Sass 문법 정리] 5. @mixin, @extend  (0) 2020.07.22
[Sass문법 정리] 4. 연산  (0) 2020.07.22
[Sass문법정리] 2. 주석, 데이터타입, 중첩  (0) 2020.07.22
[Sass 문법 정리]1. Sass란?  (0) 2020.07.22
[CSS기초] 12. CSS grid  (0) 2020.07.19
Comments