개발 도구 (Development Tools)/HTML & CSS

Sass(SCSS) 설치와 기본적인 사용방법

BiCute 2022. 5. 6. 10:00
반응형

 

 

#1 설치

  다양한 설치 방법과 컴파일러가 존재하지만 VSCode를 사용하고 있다면, 

  확장 마켓플레이스에서 'Live Sass Compiler'를 검색하여 설치만 하면 모든 준비 과정은 끝입니다.

  * 각종 블로그에서 node.js설치부터 시작해서 이것저것 너무 건들여대는 설명이 많아서 이 글 적어봄.

 

 

#2 사용방법

  (1) CSS 파일을 사용하는것과 큰 차이는 없습니다.

  (2) 새로운 파일의 확장자를 *.scss로 생성하여 코드를 작성.

  (3) 웹 브라우저는 html, css, js만 읽을수 있기 때문에 scss로 작성된 파일은 웹 브라우저가 읽을수 있도록 변환(Compile)해줄 필요가 있습니다.

  (4) 컴파일을 하는 방법은 화면 하단의 Watch Sass 버튼을 클릭하면 끝.

  *만일 하단 바가 안보이면 '보기(View) > 모양(Apperance) - 상태 표시줄 표시(Status bar)'를 클릭하여 보이게 할 수 있음

 

  (5) style.css와 style.css.map 파일이 생성되는데, 이 css 파일을 html 문서에 링크 걸어주면 됩니다.

  * style.css.map은 디버깅시 파일위치를 역행하여 찾아주는 분석용

  아래쪽에 Watching...이 표시되고 있다면 scss 파일을 저장하면 변동 사항이 자동으로 css파일에 반영됩니다.

 

 

#3 문법

1) 변수(Variables)

  '$변수이름'을 사용하여 특정값을 미리 저장해놓을 수 있습니다.

 

기본형

$변수이름: 속성값;

예)

$main-color: #180204; 
$main-font-size: 16px;

.header {
	color: $main-color;
	font-size: $main-font-size + 4px;
}

.footer {
	font-size: $main-font-size - 4px;
}

 

 

2) 중첩(Nesting)

  css에서는 관련있는 클래스명들을 이용할때 ~ 안에있는 ~에게 스타일을 부여하는 식으로 작성을 하게되는데, 

  상위 선택자의 중첩을 피하며 더욱 편리하게 작성할 수 있습니다.

  이 방법은 관련있는 class들을 묶어줄때 좋으며 프로젝트가 크면 클수록 서로간의 소속을 쉽게 판별할 수 있어 더욱 큰 장점을 보입니다.

 

css로 작성할 경우

.header {
    font-size: 16px;
  }

.header .list {
    font-size: 14px;
  }

.header .list h2 { 
    font-size: 21px;
  }

scss로 작성할 경우

.header {
  font-size: 16px;
  .list { 
    font-size: 14px;
    h2 {
      font-size: 21px;
    }
  }
}

 

 

3) 확장(Extend)

  특정 선택자의 모든 스타일을 이어 받을 때 사용.

 

기본형

@extend 선택자;

 

예) 

.btn {
  width: 100px;
  height: 50px;
  border: 1px solid black;
}

.btn-red {
  @extend .btn;
  background-color: red;
}

위 파일은 아래와 같이 컴파일 됩니다.

.btn, .btn-red {
  width: 100px;
  height: 50px;
  border: 1px solid black;
}

.btn-red {
  background-color: red;
}

%btn 처럼 %를 이용하여 임시 클래스를 생성하는 방법도 있음.

* 임시 클래스의 특징: 단독으로 컴파일 되지 않음

 

 

4) 재사용(mixin과 include)

  @mixin을  사용하여 재사용하는 스타일들을 선언.

  @include를 사용하여 작성된 스타일 규칙을 포함.

 

예)

@mixin list{
  margin: 0;
  padding: 0;
  list-style: none;
}

nav {
  @include list;
}

section {
  @include list;
  
  li { 
    background-color: gray;
  }
}

위 파일은 아래와 같이 컴파일 됩니다.

nav {
  margin: 0;
  padding: 0;
  list-style: none;
}

section {
  margin: 0;
  padding: 0;
  list-style: none;
}

section li {
  background-color: gray;
}

 

 

5) 함수(Function)

  mixin 문은 매개변수를 이용하여 함수처럼 사용할 수도 있습니다.

 

기본형

더보기

@mixin 믹스인명($매개변수) {

  스타일...

}

 

예)

@mixin myfont($a){
  font-size: $a;
  letter-spacing: -2px;
}

content {
  @include myfont(24px);
}

위 파일은 아래와 같이 컴파일 됩니다.

  * 매개변수 자리가 입력된 값으로 입력이 됩니다

content {
  font-size: 24px;
  letter-spacing: -2px;
}

 

이 외에도 &를 이용해 바로 상위 선택자를 선택한다거나 조건문(if), 반복문(for) 등을 통해 다양한 기능을 사용할 수 있습니다.

 

 

#4 Sass와 SCSS의 차이점

  SCSS는 Sass 의 버전3에서 새롭게 등장.

  가장 큰 차이는 {}(중괄호)와 ;(세미콜론)을 유무이다.

 

  Sass는 들여쓰기로 유효범위를 구분, SCSS는 {}로 유효범위를 구분한다.

 

Sass 예)

.circle
  $size: 100px
  width: $size
  height: $size
  border-radius: $size * 0.5

SCSS 예)

.circle {
  $size: 100px;
  width: $size;
  height: $size:
  border-radius: $size * 0.5;
}

 

 

기능을 재사용 하는 경우에는 Sass는 =로 선언하고 +로 적용시키고, SCSS는 @mixin으로 선언하고 @include로 적용시킨다.

 

 

 

반응형