여러분이 사용하고 계신 브라우저는 HTML5를 지원하지 않기 때문에 몇몇 요소가 제대로 보이도록 JScript를 사용하고 있습니다. 하지만 여러분의 브라우저 설정에서 스크립트 기능이 꺼져있으므로, 현재 페이지를 제대로 확인하시려면 스크립트 기능을 켜주셔야 합니다. Sass - @extend 및 상속

Sass – @extend 및 상속

1개월전 작성
@extend 및 상속 Thumbnail
@extend 및 상속 Thumbnail

w3.css

공식 레퍼런스는 SCSS 문법을 기준으로 모든 문법을 설명하고 예시를 보여주므로 SCSS 문법으로 작성한 Sass를 사용하자.

@extend 지시어

@extend 지시어를 사용하면 한 선택기에서 다른 선택기로 CSS 속성 집합을 공유할 수 있다.

이 지시어는 몇 가지 작은 세부 사항만 다를 뿐 거의 동일한 스타일이 적용된 요소가 있는 경우에 유용하다.

예제

먼저 버튼에 대한 기본 스타일을 만들어보자.
이 스타일은 대부분의 버튼에 사용된다.
그 후 “Report” 버튼에 대한 스타일 하나와 “Submit” 버튼에 대한 스타일 하나를 만든다.
“Report”와 “Submit” 버튼은 모두 @extend 지시문을 통해 .button-basic 클래스에서 모든 CSS 속성을 상속한다.

.button-basic  {
border: none;
padding: 15px 30px;
text-align: center;
font-size: 16px;
cursor: pointer;
}
.button-report {
@extend .button-basic;
background-color: red;
}
.button-submit {
@extend .button-basic;
background-color: green;
color: white;
}
컴파일된 CSS
.button-basic, .button-report, .button-submit {
border: none;
padding: 15px 30px;
text-align: center;
font-size: 16px;
cursor: pointer;
}
.button-report {
background-color: red;
}
.button-submit {
background-color: green;
color: white;
}

 

@extend 지시어를 사용하면 <button class=”button-basic button-report”>Report this</button>와 같이 HTML 코드에서 요소에 대해 여러 클래스를 지정할 필요가 없다.
두 가지 스타일 세트를 얻으려면 .button-report를 지정하기만 하면 된다.

이 지시어는 Sass 코드를 매우 DRY하게 유지하는 데 도움이 된다.

참고

Mingg`s Diary
밍구
공부 목적 블로그