-
Sass(Scss)로 css를 간편하게 만들자front-end/HTMI CSS 2023. 8. 1. 22:10728x90
1. 환경 설정
- VScode 에디터를 실행한다.
- extension 메뉴를 눌러서 live sass compile를 설치한다.
- (파일명). scss으로 만들어서 사용한다.
- test.scss 파일에 내용을 작성 후 저장을 한다.
- css 파일에 설정한 값이 저장된 내용이 만들어진다.
- 이 파일을 HTML에 링크를 걸어서 사용하면 됩니다.
- 이 파일을 HTML에 링크를 걸어서 사용하면 됩니다.
- map 파일의 용도는 구글 크롬에서 찾기 쉽게 만드는 용도다.
- Sass파일과 Scss파일의 차이점
// Sass 방식 .background color : red // Scss 방식 .background { color : red }
2. Sass(Scss) 문법 특징
- 값을 저장을 하고 쓸 수 있다.
- $변수명 : 컬러, 폰트사이즈, 높이, 길이 등등
- 한글이 잘 적용이 된다.
- 사칙 연산도 가능하다.
- 다만 같은 단위 끼리 사용을 해야 된다 ex) px는 px, %는 %...
/* test.scss 파일에 작성을 합니다. */ $메인칼라 : #2a4cb2; $기본사이즈 : 16px; .main_box{ width: 100%; color: $메인칼라; font-size: ($기본사이즈 + 2px); } .sub_box { background-color: $메인칼라; font-size: ($기본사이즈 - 2px); }
- Nesting 문법
- css의 실렉터 문장을 쉽게 사용이 가능하다.
- hover도 사용이 가능하다.
.main_bg { h3 { font-size: $기본사이즈; } button { color: $서브칼라; &:hover { color : $메인칼라; } } }
- @extend 문법
- 존재하는 클래스를 확장하는 문법이다.
- 존재하는 속성을 쉽게 사용이 가능하다.
- @extend (변수명)으로 임시클래스, 혹은 클래스를 속성을 그대로 가져올 수 있다.
- %(변수명)으로 임시클래스로 단독으로 컴파일되지 않는 특징이 있다.
%btn { width: 100px; height: 100px; padding: 20px; } .btn-green { @extend %btn; color: green; } .btn-red { @extend %btn; color: red; }
- @mixin 문법
- 여러 줄의 스타일을 간단하게 사용이 가능하다.
- 이름( ){ }으로 생성해서 사용한다.
- @include 이름으로 사용한다.
- extend 대비 다른 값을 넣는 것이 가능하다.
- 버튼($색상){ color : $색상} = @include 버튼(red) 하면 빨간색으로 컬러값이 적용이 된다.
@mixin 폰트스타일($크기,$간격){ font-size: $크기; letter-spacing: $간격; } h2{ @include 폰트스타일(40px, 1px) } h3{ @include 폰트스타일(30px, 2px) } h4{ @include 폰트스타일(20px, 0px) }
- @use 그리고 _파일
- 다른 Scss를 파일의 내용을 그대로 사용이 가능하다.
- _를 붙을 경우 css와 map이 생성하지 않는다.
- 자주 사용하는 Scss 스타일을 만들어두면 필요할 때마다 @use로 사용하면 되기 때문에
- 자주 사용하는 Scss 스타일을 만들어두면 필요할 때마다 @use로 사용하면 되기 때문에
- $변수 그리고 @mixin도 그대로 사용이 가능하다.
- 다만 사용하는 @use로 가져온 scss 파일명.$변수, 파일명. mixin버튼(); 으로 사용해야 된다.
@use '귀찮은요소정리.scss'; @use '_자주사용.scss'; 자주사용.$변수명; /* 다른 파일의 변수쓰는법 */ @include 자주사용.mixin버튼(); /* 다른 파일의 mixin쓰는법 */
728x90'front-end > HTMI CSS' 카테고리의 다른 글
transform & animation 쓰는 이유 (0) 2023.08.06 HTML video 태그 속성(비디오 배경 사용 방법) (0) 2023.08.03 CSS Transition 속성 (0) 2023.06.30 반응형 웹 레이아웃 만들기 (0) 2023.06.26 HTML head 태그(사이트 제목, open graph 등등) (0) 2023.06.25