SCSS

hodu·2023년 4월 18일
0
post-thumbnail

SCSS란, SASS라는 전처러기를 사용하여 더 효과적으로 CSS를 사용하는 것이다.

중첩(Nesting)

Sass는 중첩 기능을 사용할 수 있습니다.
상위 선택자의 반복을 피하고 좀 더 편리하게 복잡한 구조를 작성할 수 있습니다.

SCSS:

.section {
  width: 100%;
  .list {
    padding: 20px;
    li {
      float: left;
    }
  }
}

Compiled to:

.section {
  width: 100%;
}
.section .list {
  padding: 20px;
}
.section .list li {
  float: left;
}

Ampersand (상위 선택자 참조)

중첩 안에서 & 키워드는 상위(부모) 선택자를 참조하여 치환합니다.

SCSS:

.btn {
  position: absolute;
  &.active {
    color: red;
  }
}

.list {
  li {
    &:last-child {
      margin-right: 0;
    }
  }
}

Compiled to:

.btn {
  position: absolute;
}
.btn.active {
  color: red;
}
.list li:last-child {
  margin-right: 0;
}

& 키워드가 참조한 상위 선택자로 치환되는 것이기 때문에 다음과 같이 응용할 수도 있습니다.

SCSS:

.fs {
  &-small { font-size: 12px; }
  &-medium { font-size: 14px; }
  &-large { font-size: 16px; }
}

Compiled to:

.fs-small {
  font-size: 12px;
}
.fs-medium {
  font-size: 14px;
}
.fs-large {
  font-size: 16px;
}

중첩된 속성

font-, margin- 등과 같이 동일한 네임 스페이스를 가지는 속성들을 다음과 같이 사용할 수 있습니다.

SCSS:


.box {
  font: {
    weight: bold;
    size: 10px;
    family: sans-serif;
  };
  margin: {
    top: 10px;
    left: 20px;
  };
  padding: {
    bottom: 40px;
    right: 30px;
  };
}

Compiled to:

.box {
  font-weight: bold;
  font-size: 10px;
  font-family: sans-serif;
  margin-top: 10px;
  margin-left: 20px;
  padding-bottom: 40px;
  padding-right: 30px;
}

마무리

프로젝트에서 현재 SCSS를 사용하고 있는데 위 내용을 제일 많이 사용하여서 복습으로 적었다.

profile
잘부탁드립니다.

7개의 댓글

comment-user-thumbnail
2023년 4월 22일

딱 필요했던 개념입니다...! 중첩에 오타 있어용 ~

1개의 답글
comment-user-thumbnail
2023년 4월 23일

자주 쓰면서도 명칭을 몰랐는데 ampersand라고 부르는군요! 덕분에 용어 배우고 갑니다 :)

답글 달기
comment-user-thumbnail
2023년 4월 23일

저도 이번에 처음 써보는데 생각보다 편하더라구여 ㅎ

답글 달기
comment-user-thumbnail
2023년 4월 23일

변수로 쓸 수 있는게 너무 좋죠ㅎㅎㅎ

답글 달기
comment-user-thumbnail
2023년 4월 24일

오오 복습하고 갑니다!!

답글 달기
comment-user-thumbnail
2023년 4월 24일

scss 저도 이번에 처음 봤는뎅 쓰는 곳도 많고 좋더라구요/..! 좋은 정보 감사합니다 ㅎㅎ

답글 달기