CSS 전처리 프로세서
- CSS에 아직 없는 기능을 지원하기 위해 사용하는 프로세서이다.
npm add -D sass
를 입력하여 SASS를 설치한다.style.css
를 style.scss
로 수정한다. SCSS 변수는 이렇게 사용한다. : $bgColor : red
CSS 변수는 이렇게 사용한다. : --bgColor : red
터미널을 열어 npm run dev
를 통해 개발 화면을 볼 수 있고, 배포 시에는 실행 종료 후 npm run build
를 사용하면 된다.
ul {
list-style-type: none;
padding: 0;
display: flex;
gap: 10px;
li {
background-color: tomato;
color: white;
padding: 5px 10px;
border-radius: 7px;
&:hover {
opacity: 0.8;
a {
color: gray;
}
}
&
를 통해 표현할 수 있다.li : hover{}
-> &:hover{}
%
뒤에 공통 코드를 작성한다.%alert {
margin: 10px;
padding: 10px 20px;
border-radius: 10px;
border: 1px dashed black;
}
@extend %공통코드
를 작성해 넣는다. .success {
@extend %alert;
background-color: green;
}
@mixin
뒤에 함수 형태의 코드를 만든다.@mixin alert($bgColor, $borderColor) {
// 변수는 '$변수'로 표현하고 ','로 구분한다.
background-color: $bgColor;
margin: 10px;
padding: 10px 20px;
border-radius: 10px;
border: 1px dashed black;
border: 1px dashed $borderColor;
}
@extend
대신 @include
를 사용하고, 원하는 변수를 전달한다..success {
@include alert(green, blue);
}
@include
를 포함한 행에 추가 코드를 작성한다..success {
@include alert(green, blue);{
color : green;
}
이를 받는 @mixin
개체에는 @content;
를 추가해준다.
이걸 통해 다양한 반응형 디자인을 만들어보자.
우선 화면 크기 변수를 지정해준다.
$breakpoint-sm: 480px;
$breakpoint-md: 768px;
$breakpoint-lg: 1024px;
$breakpoint-xl: 1200px;
@mixin
을 만들고, 화면 크기를 감지할 수 있는 @media
query를 만든다. 이때, @content;
를 넣는 걸 잊지 말자.@mixin smallDevice {
@media screen and (min-width: $breakpoint-sm) {
@content;
}
}
@include
값을 지정해주면 완성 ~ @include smallDevice {
background-color: blue;
}
이제 다음 코스부터 예쁜 디자인들을 따라서 만들어 볼 예정이다. 기대된다 ~