- 패스트캠퍼스 온라인 강의
- 유튜브 생활코딩
- heropy.blog - Sass(SCSS) 완전 정복!
css를 더욱 더 쉽게 작성하고 싶은데 브라우저상에서는 css만 돌아가기 때문에 전처리기가 필요
여러 전처리기 중 Sass가 많이 쓰임
오래돼고 성숙도 높음. 보수적인 작업물에 추천
내용은 동일하나 작성하는 문법(중괄호/세미콜론)에 약간 차이가 있음.
믹스인(재사용 기능) 지시어 차이
node.js / npm사용환경 세팅 해두어야 사용 가능
단순히 SCSS 연습이 필요한 거라면 사스마이스터나 코드펜 이용하는 게 더 편한 것 같아요 😂
생활코딩 참조 이해 안되면 강의 참고하세요~
Node.js - 설치 - 생활코딩
node.js 홈페이지로 가서 node.js 설치
node.js 홈페이지
다운로드 받은 실행파일을 눌러 설치
윈도우 + R 키를 눌러 실행 창을 열고 cmd입력후 확인버튼 누르기
cmd 창에서 명령어를 이용해 내가 원하는 폴더로 이동
ex) cd C:\Users\USER\Desktop\scss
node
를 치면
Welcome to Node.js v12.18.2.
등의 node.js 현재 버전을 알려주는데 설치가 된 것을 확인 가능
ctrl+C를 누르면 node를 끝내고 cmd로 나올 수 있다.
Visual Studio Code
위 사이트에서 다운로드 받아서 설치
※한글로 변경하려면 다음 사이트 참조해서 변경 가능
폴더 만들고 file -> open folder
npm install -D parcel-bundler
입력index.html파일과 scss 파일 작성
html 파일 헤더에 <link rel="stylesheet" href="main.scss">
scss 파일을 다음과 같이 링크로 걸어줌
터미널 창에서 npx parcel index.html
입력하면 바로 아랫줄에 Server running at http://localhost:1234
다음과 같이 나올텐데 웹브라우저 주소표시줄에 위 주소를 입력해서 작성한 내용이 나오면 성공
~이렇게 하면 설치는 끝~
GitHub에 연결시켜서 자동으로 페이지가 나오게끔 만들어놓긴 했으나, 연습에서 쓰기엔 귀찮은 부분이 있어(파일이 없으면 parcel에서 오류가 나서 제대로 동작이 안된다던가, 컴파일 하고 결과물 확인이 불편하다던가...) 이하는 코드펜으로 진행하겠읍니다.
(a,b,c)/a b
괄호가 있거나 없다&
상위 선택자 참조 익숙해지면 아주 편리한 방법! 가상 클래스 선택자 선택시에도, 이름이 비슷한 클래스에 이용 가능배우긴 하는데 이걸 어떻게 써먹어야할 지 잘 모르겠네.
변수를 어떨 때 지정해야 요긴하게 쓸 수 있을까?
$변수이름 : 속성값;
!global
플래그 이용하여 유효범위를 넘어서서 전역 변수로 지정 가능 기존 전역 변수를 새로운 값으로 할당할 때 이용 가능!default
플래그 사용, 할당되어 있는 변수가 있다면 적용되지 않음. 부트스트랩같은 라이브러리에서 사용자 작성 변수를 라이브러리 보다 우선순위로 만들어주기 위해서 사용됨.#{변수 사용가능 영역}
따옴표 안에서 변수사용하고 싶을때@import "header", "footer";
상대경로 .scss 확장자 생략_header.scss
-> header.css
컴파일 하지 않으므로 연결할 scss에 @import를 이용해 다른 scss를 모두 모은 후 다른 파일은 css로 컴파일 되지 않게10px*10px
->error 10px*10
-> 100px/
기호가 나누기 기호가 아니라 css 구분기호로 오인될 가능성 있음+
기호 이용#123456 + #123456
헥스코드 2자리씩 끊어서 서로 더해짐opacify(색상값, 숫자만큼 불투명하게);
, transparentize(색상값, 숫자만큼 투명하게);
@if not($w > 50px) { 적용하고 싶은 결과 }
정의 그룹을 작성해놓고(믹스인) 정의해놓은 그룹을 불러오는 것(인클루드)을 의미
SCSS와 SASS 문법이 많이 다르네
@mixin size ($w:100px, $h:100px) {
//$w:100px $h:100px 매개변수 기본값 지정 지정할 필요가 없으면 소괄호 없어도 무방
width: $w;
height:$h;
&::after {
conent:"";
//인클루드 될 상위 요소 참조도 가능
}
span.icon {
color:red;
// 인클루드 되는 곳의 자식 요소 제어 가능
}
}
.box1 {
@include size(100px, 100px);
}
.box2 {
@include size;
}//1과 2 동일한 결과
.box3 {
@include size(100px, 200px);
}
.box4 {
@include size($h:200px);
//매개변수와 인수는 순서대로 짝지어져있기 때문에
//인수를 하나만 쓰고 싶다면 매개변수의 이름을 앞에 명시한다 (키워드 인수)
} //3과 4 동일한 결과
동일한 내용을 불러오지만 매개변수(parameters)와 전달인수(인자 arguments)를 이용해 필요에 따라 수치를 바꾸는 것도 가능
@mixin var ($w, $h, $bg ) {
width:$w;
height:$h;
background:$bg;
}
.box {
@include var (1,2,3,4,5,6); //순서대로 w, h, bg, bg, bg, bg
}