학습
CSS CSS 전처리기 (Sass/LESS)
CSS CSS 전처리기 (Sass/LESS) — 중급
CSS 전처리기 (Sass/LESS)
1. 도입 (왜 배워야 하는가)
CSS 전처리기는 웹 개발 시 효율성을 극대화하는 도구입니다. 실제로 Sass나 LESS와 같은 전처리기를 사용하면 코드의 가독성을 높이고, 중복을 줄이는 데 큰 도움이 됩니다. 예를 들어, 대규모 웹사이트에서는 CSS 파일이 수천 줄에 이를 수 있으며, 이때 전처리기를 사용하지 않으면 반복적인 스타일 정의로 인해 유지보수가 매우 어려워집니다. 전처리기를 사용하지 않는다면, 코드를 수정할 때마다 모든 관련 CSS를 찾아 수정해야 하므로 시간과 노력이 많이 소모될 수 있습니다.
2. 핵심 개념 설명
Sass와 LESS
- Sass (Syntactically Awesome Style Sheets): CSS의 확장 언어로, 변수, 중첩, 믹스인 등을 지원해 코드의 재사용성을 높여줍니다.
- LESS: Sass와 비슷하게 CSS를 확장하는 언어로, 변수와 믹스인 기능이 있습니다. LESS는 JavaScript로 작성된 컴파일러를 사용합니다.
관련 용어
| 용어 | 설명 |
|---|---|
| 변수 | 스타일 속성을 재사용할 수 있게 해주는 요소 |
| 믹스인 | 여러 CSS 선언을 그룹화하여 재사용할 수 있는 기능 |
| 중첩 | CSS 선택자를 중첩하여 더 간결하게 작성할 수 있는 방법 |
3. 기본 코드 예제
Sass 코드 예제
$primary-color: #3498db; // 변수 정의
.button {
background-color: $primary-color; // 변수 사용
color: white;
&:hover { // 중첩 사용
background-color: darken($primary-color, 10%); // 색상 함수 사용
}
}
.button {
background-color: #3498db;
color: white;
}
.button:hover {
background-color: #2980b9; / darken 함수로 색상 조정 /
}
- $primary-color라는 변수를 정의합니다.
- .button 클래스에서 해당 변수를 사용하여 배경색을 지정합니다.
- &:hover로 마우스 오버 시의 스타일을 중첩하여 정의합니다.
- darken 함수로 색상을 어둡게 조정합니다.
LESS 코드 예제
@primary-color: #3498db; // 변수 정의
.button {
background-color: @primary-color; // 변수 사용
color: white;
&:hover {
background-color: darken(@primary-color, 10%); // 색상 함수 사용
}
}
.button {
background-color: #3498db;
color: white;
}
.button:hover {
background-color: #2980b9; / darken 함수로 색상 조정 /
}
- @primary-color라는 변수를 정의합니다.
- .button 클래스에서 해당 변수를 사용하여 배경색을 지정합니다.
- &:hover로 마우스 오버 시의 스타일을 중첩하여 정의합니다.
- darken 함수로 색상을 어둡게 조정합니다.
4. 실전 활용 예제
1) 쇼핑몰의 장바구니 버튼
$button-color: #e74c3c;
$hover-color: darken($button-color, 10%);
.cart-button {
background-color: $button-color;
color: white;
padding: 10px 20px;
border: none;
border-radius: 5px;
&:hover {
background-color: $hover-color;
}
}
2) 반응형 네비게이션 바
$nav-bg-color: #2c3e50;
.navbar {
background-color: $nav-bg-color;
display: flex;
justify-content: space-around;
a {
color: white;
text-decoration: none;
&:hover {
text-decoration: underline;
}
}
}
5. 흔한 실수와 주의사항
실수 1: 변수 이름 오타
$primary-colour: #3498db; // 오타
.button {
background-color: $primary-color; // 정의되지 않은 변수 사용
}
$primary-color: #3498db; // 올바른 변수 이름
실수 2: 중첩 깊이 과다
.navbar {
.dropdown {
.item {
// 스타일 정의
}
}
}
.navbar {
.dropdown {
// 스타일 정의
}
}