young
is this it
young
전체 방문자
오늘
어제
  • 분류 전체보기 (143)
    • 웹_프론트엔드 (1)
      • 로드맵 챌린지 (73)
      • Svelte (2)
      • React (6)
      • JavaScript (8)
      • TypeScript (2)
      • HTML+CSS (5)
    • 웹_백엔드 (0)
      • Django (0)
    • 빅데이터 (33)
      • R (30)
      • Python (2)
    • 기타 (11)
      • git (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • ggplot
  • 인증
  • css후처리기
  • 태스크러너
  • 공개키
  • 웹보안
  • ssl
  • ggmap()
  • 대칭키
  • owasp
  • rstudio지도정보
  • bem
  • Regex
  • 암호화
  • form
  • 구글맵api
  • vcs
  • css네이밍
  • 버전관리
  • 보안취약점

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
young

is this it

CSS 전처리기 - Sass (SCSS)
카테고리 없음

CSS 전처리기 - Sass (SCSS)

2022. 1. 21. 08:43
반응형

CSS 전처리기란?

웹 페이지가 점점 커지면 정의하는 스타일도 많아지게 되고, 선택자를 불필요하게 과다 사용하게 되는 등 코드가 지저분해질 수 있다. 유지보수 측면에서도 까다로워진다. 이 때문에 나타난 것이 CSS 전처리기다. CSS 전처리기는 전처리기 자신만의 특별한 syntax를 갖고 CSS를 생성하도록 하는 프로그램이다. 주요 CSS 전처리기로 다음의 프레임워크들이 있다.

  • Sass
  • LESS
  • Stylus
  • PostCSS

이 프레임워크들은 각각 비슷하면서도 다른 구문과 기능들을 포함하고 있따. 연산, 중첩, 상속과 같은 기능 들을 사용할 수 있어 CSS 구조의 가독성을 높이고, 유지보수가 편리해지도록 한다.

 

Sass (Syntatically Awesome Style Sheets)

Sass는 2006년에 등장하여 현재 가장 대표적인 CSS 전처리기로 자리잡았다. Sass는 코드를 작성할 때 중괄호( {} )가 아닌 들여쓰기로 구문을 감지하며, 세미콜론( ; )도 사용하지 않는다. 이후 Sass를 개발하는 사람들은 Sassy CSS를 의미하는 SCSS를 SASS 세번째 버전에서 추가하게 된다. 즉, CSS와 거의 비슷한 문법으로 Sass를 지원한다는 것이다. SCSS는 CSS와 동일하게 중괄호나 세미콜론을 사용한다. SCSS는 SASS의 모든 기능을 지원하면서 CSS 구문과 완전히 호환되도록 만들었다.

// Sass - 중괄호와 세미콜론을 쓰지 않음.
.wrapper
  width: 100px
  height: 200px
  .content
    color: white
    float: left
    
// SCSS
.wrapper {
    width: 100px;
    height: 200px;
    .content {
        color: white;
        float: left;
    }
}

 

Nesting 구조

부모 요소를 반복적으로 기술하지 않고 nesting 구조로 작성할 수 있다. 유지보수하기 간편해진다.

// CSS
.wrapper div span {
	background-color: red;
}

// SCSS
.wrapper {
	width: 100%;
	div {
   		height: 200px;
        	span {
            	background-color: red;
        }
    }
}

 

$ 변수

$변수를 사용하여 공통된 속성을 재활용 할 수 있다.

$color--red: red;
.content{
    color: $color--red;
    
    .title{
        color: $color--red
		width: 12px;
    }
}

 

@mixin

@mixin은 공통된 속성을 그룹으로 묶어 통째로 재사용할 수 있다.

@mixin box-style{
    width: 100px;
    height: 50px;
    background-color: red;
}
.section{
    position: absolute;
    top: 0;
    .box{
        @include box-style;
    }
}

 

@import 

다른 scss 파일을 호출하여 재사용할 수 있다.

@import 'footer.scss'
@import 'footer' // 확장자 생략 가능

 

@if

분기 처리가 가능하다.

$num: two;  // %변수 사용

// 분기 처리 - @if @else if @else
div {
  @if $num == one {
    color: blue;
  } @else if $num == two {
    color: red;
  } @else {
    color: black;
  }
}

div {
    color: red;
}

 

@for

반복문.

@for $i from 1 through 3 {
  .item-#{$i} { 
    width: 2em * $i; 
  }
}

 

 

Sass 공식 웹 사이트

https://sass-lang.com/

 

Sass: Syntactically Awesome Style Sheets

Sass is the most mature, stable, and powerful professional grade CSS extension language in the world.

sass-lang.com

 

 

 

 

반응형
    young
    young

    티스토리툴바