본문 바로가기

웹언어/SASS

[SASS] 2강 SASS의 변수 - OSSAM강좌

728x90
반응형

 

 

 

 

** 영상으로 보고 싶은 분은 아래 주소를 클릭하세요.

https://youtu.be/9NttTBCu2P8

 

 

 

 

 

 

** SASS주석 처리

//CSS로 컴파일되지 않는 주석
/* CSS로 컴파일되는 주석 */

 

 

 

 

 

 

 

 

 

1. SASS에서의 변수

1) 정의 : 변수는 추후에 재사용할 값을 저장하기 위한 용도로 사용

 

2) 변수 문법

 

$변수명: 값;

 

 

3) 변수에서 사용가능한 값

  - 문자열, 숫자, 색상, 불표현식(booleans), 리스트, null

 

 

 

 

 

 

 

 

 

 

 

 

 

2. 다양한 변수를 활용

1) cmd에서 사용할 폴더를 선택(여기서는 D드라이브의 [sassTest]폴더 선택)

 

d:
cd sassTest

 

명령프롬프트(cmd)는 [윈도우로고키]+[R]

[VS CODE]의 [LIVE SASS COMPILER]를 사용하면 위 작업은 하지 않아도 된다.

 

 

 

 

 

2) [index.html]에 요소 생성 및 스타일연결

 

<!DOCTYPE html>
<html lang="ko">
    <head>
        <meta charset="UTF-8">
        <title>SASS 변수</title>
        <link rel="stylesheet" href="test.css">
    </head>
    <body>
        <h1>제목태그</h1>
        <p>문단태그</p>
        <div>구역태그</div>
    </body>
</html>

 

 

 

 

 

 

3) [test.scss]에 아래와 같은 코드 작성

 

$myFont: '맑은 고딕', sans-serif;
$myColor: pink;
$bigFontSize: 30px;
$baseFontSize: 14px;
$boxWidth: 500px;


body{
    font-family: $myFont;
    font-size: $baseFontSize;
    color: $myColor;
}
h1{
    font-size: $bigFontSize;
}
div{
    width: $boxWidth;
    background-color: $myColor;
}

 

 

 

 

 

4) watch를 통한 실시간 업데이트

- 여기선 [test.scss]를 [test.css]로 처리

 

sass --watch test.scss:test.css

[VS CODE]의 [LIVE SASS COMPILER]를 사용한다면 하단의 [Watch Sass]버튼을 클릭

 

 

 

 

 

 

5) [test.css] 확인

[test.css]에 변환이 잘 되어 있는 것을 확인

 

 

 

 

 

 

6) [index.html]을 크롬에서 확인

변환이 잘되어 있는 것을 확인

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3. 변수의 범위

- 전역변수 : 문서에 바로 작성한 변수로 모든 요소에서 사용가능

- 지역변수 : 특정 코드블록({ })에서 작성한 변수로 코드블록을 벗어나면 사용 불가능

 

 

1) [index.html]은 위와 같이 그대로 작성

<!DOCTYPE html>
<html lang="ko">
    <head>
        <meta charset="UTF-8">
        <title>SASS 변수</title>
        <link rel="stylesheet" href="test.css">
    </head>
    <body>
        <h1>제목태그</h1>
        <p>문단태그</p>
        <div>구역태그</div>
    </body>
</html>

 

 

 

 

 

 

2) [test.scss]에 변수 작성

 

/* 전역 변수 */
$myColor: red;

h1{
    /* 지역변수 - h1에만 선언한 변수 */
    $myColor: green;
    color: $myColor; /* h1의 글자색은 녹색으로 적용 */
}
p{
    color: $myColor; /* p의 글자색은 빨간색으로 적용 */
}

 

 

 

 

 

 

3) [test.css] 결과 확인

h1태그는 녹색, p태그는 빨간색으로 처리

 

크롬 미리보기 결과도 같게 처리

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4. !global 키워드를 이용

- !global키워드를 사용하면 지역변수는 무시되고 전역변수만 사용된다.

 

1) 위와 같은 코드에서 [test.scss]만 변경

 

$myColor: red;

h1{
    $myColor: green !global; /* 이부분만 변경 */
    color: $myColor; 
}
p{
    color: $myColor; 
}

 

 

 

 

 

2) [test.css] 확인

h1태그도 녹색으로 처리되어 있는 것을 확인

 

미리보기 결과도 h1,p 모두 녹색으로 글자색 처리

 

 

 

 

 

 

 

 

 

 

 

5. 지역변수 사용

1) 에러 없이 지역변수 사용([test.scss])

- 해당 코드블록 내부에서만 사용

 

$myColor: red;

h1{
    $bgColor: yellow; /* 지역변수 */
    color: $myColor; 
    background-color: $bgColor;
}
p{
    color: $myColor; 
}

 

 

 

 

 

2) 다른 코드블록에서 지역변수 사용시 에러

 

$myColor: red;

h1{
    $bgColor: yellow; /* 지역변수 */
    color: $myColor; 
    background-color: $bgColor;
}
p{
    color: $myColor; 
    background-color: $bgColor; /* 다른 코드블록에서 사용 */
}

 

test.css파일이 오류난 결과

 

 

 

 

 

3) !global키워드를 사용하면 오류가 나지 않음

 

$myColor: red;

h1{
    $bgColor: yellow !global; /* 지역변수를 전역변수로 처리 */
    color: $myColor; 
    background-color: $bgColor;
}
p{
    color: $myColor; 
    background-color: $bgColor;
}

 

오류없이 잘 변경되는 것을 확인

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6. #{ } 

- 위의 키워드를 사용하여 변수를 문자열로 보관하여 코드의 어디든지 사용가능합니다.

 

## 문법

#{$변수명}

 

 

## 예시

$basicFont: unquote('Noto Sans KR');

@import url('https://fonts.googleapis.com/css2?family=#{$basicFont}&display=swap');

- 위는 한가지 예시를 든 것 뿐입니다.

- @for에서도 많이 이용됩니다.

- unquote()는 sass의 내장함수로 문자에서 따옴표를 제거하는 함수입니다. 

 

** 영상으로 보고 싶은 분은 아래 주소를 클릭하세요!

https://youtu.be/jDR0o24uowU

 

 

 

 

 

 

 

 

 

 

 

 

 

7. 변수에 담을 수 있는 데이터 종류(Data Types)

데이터 설명 예시
Numbers 숫자 0, 1, .25, 20px, 2em, ....
Strings 문자 relative, italic, "images/test.jpg", "궁서", ...
Colors 색상 표현 red, green, #FF0000, rgba(0,0,0,0.7), ...
Booleans 논리 true, false
Nulls 비어있음, 아무것도 없음 null
Lists 목록(JS의 배열과 같음) (html, css, js) 혹은 html, css, js 혹은 html css js
Maps 목록(JS의 객체와 같음) (markup: html, style: css, interactive: js)

- 숫자는 단위를 사용해도 되고, 작성하지 않아도 됩니다.

- 문자열을 따옴표가 있을 수도 있고, 없을 수도 있습니다.

- Nulls는  null 을 작성하지 않으면 컴파일되지 않습니다. 

- Lists는 소괄호()를 작성할 수 도, 하지 않을 수도 있습니다.

- Maps는 소괄호()를 꼭 작성해야하고,  key: value 형태로 작성해야 합니다.

- Lists와 Maps는 추후에 반복문 쪽을 배울 때 더 자세히 배우도록 하겠습니다. 

** 영상으로 보고 싶은 분은 아래 주소를 클릭해주세요.

https://youtu.be/Ro5zz18c-Uw

 

 

 

 

 

 

 

 

 

 

 

 

 

8. 연산(Operations)

- Sass는 기본적인 연산기능을 지원합니다.

- 상황에 맞게 크기를 계산하거나, 정해진 값으로 연산할 때 유용합니다.

 

 

 

1) 산술 연산자

종류 설명
+ 더하기 연산자
- 빼기 연산자
* 곱하기 연산자 - 한쪽이 반드시 숫자
/ 나누기 연산자 - 오른쪽 값이 반드시 숫자
조건이 잘 안맞으면 연산자 잘 안될 수 있음
& 나머지 연산자

- 연산시 같은 단위를 사용해야 합니다.

- 단위가 다른 경우는  calc() 함수를 사용하세요.

 

 

 

2) 비교연산자

종류 설명
> 크다(초과)
>= 크거나 같다(이상)
< 작다(미만)
<= 작거나 같다(이하)
== 같다(항등)
!= 같지 않다(부등)

 

 

 

 

 

3) 논리연산자

종류 설명
and 조건이 여러 개인 경우 모든 조건이 맞아야 true를 반환, JS의 &&와 같음
or 조건이 여러 개인 경우 하나라도 맞으면 true를 반환, JS의 ||와 같음
nor true면 false를 반환, false면 true를 반환, JS의 !와 같음

- JS에서 사용되는 연산자와 다르다는 점, 잘 기억해주세요.

- 엑셀을 써보신 분들은 익숙할 수 있습니다. 

 

 

 

 

 

 

 

 

728x90
반응형