엔디프의 웹표준 커버스토리
SASS 문법 사용해보기 본문
SCSS를 사용하는 방법을 알아볼게요
SCSS는 변수와 믹스인, 익스텐드 와 함수의 기능으로 이루어져 있습니다.
그럼 하나씩 알아보도록 할게요.
변수
SCSS에서 변수는 자바스크립트에서의 변수의 개념보다 실수의 개념에 가깝습니다.
- $sz100 : 100%;
- $default_sz : 0;
- $default_szpx : 1px;
- $base_color : #555;
- $base_bgcolor : #fff;
- $base_font : '돋움', dotum,'Helvetica', sans-serif;
- $font_type1 : 'arial';
- $hide : none;
- $hidden : hidden;
- $normal : noraml;
$구문을 사용하여 값을 변수에 담을 수 있습니다.
부트스트랩의 SCSS 변수를 보면 상당히 많은 변수를 체계적으로 정리 해놓은 것을 볼 수 있습니다.
제가 쓰는 변수를 보여드릴게요
SCSS를 구조화 하는 작업이 디테일 해질수록 더 많은 변수를 정의 할 수 있고 필요에 따라 바뀔 수 있지만, 좀더 개발 작업이 편하다는 것을 느낄 수 있을거에요~
믹스인
SCSS에는 MIXIN 기능이 있어서 코드를 섞는 것이 가능합니다.
예제를 볼게요
MIXIN
- @mixin default_boxsize {outline:none; -webkit-box-sizing:border-box; -moz-box-sizing:border-box; box-sizing:border-box}
SCSS에 적용
- .btn_menu {
- @include default_boxsize;
- }
CSS 컴파일 결과
- .btn_menu {outline: none; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box;}
이런식으로 CSS로 컴파일 되는 것을 확인 할 수 있어요
다음은 믹스인 중에서도 조건문을 활용하는 예제를 보도록 할게요
MIXIN
- @mixin rounded_corner($arc:true, $top_left:true, $top_right:true, $bottom_left:true, $bottom_right:true) {
- @if $arc {
- -moz-border-radius: $arc;
- -webkit-border-radius: $arc;
- border-radius: $arc;
- }
- @if $top_left {
- -moz-border-top-left-radius: $top_left;
- -webkit-border-top-left-radius: $top_left;
- border-top-left-radius: $top_left;
- }
- @if $top_right {
- -moz-border-top-right-radius: $top_right;
- -webkit-border-top-right-radius: $top_right;
- border-top-right-radius: $top_right;
- }
- @if $bottom_left {
- -moz-border-bottom-left-radius: $bottom_left;
- -webkit-border-bottom-left-radius: $bottom_left;
- border-bottom-left-radius: $bottom_left;
- }
- @if $bottom_right {
- -moz-border-bottom-right-radius: $bottom_right;
- -webkit-border-bottom-right-radius: $bottom_right;
- border-bottom-right-radius: $bottom_right;
- }
- }
SCSS에 적용
- ul.tabbox li {@include rounded_corner(false, 5px, 5px, false, false);}
CSS 컴파일 결과
- ul.tabbox li {-moz-border-top-left-radius: 5px; -webkit-border-top-left-radius: 5px; border-top-left-radius: 5px; -moz-border-top-right-radius: 5px;
- -webkit-border-top-right-radius: 5px; border-top-right-radius: 5px; }
MIXIN 에 인자값을 넣어주고 해당 인자값에 조건문을 걸어 필요에 따라 조절 되는 border값을 확인 할 수 있어요.
다음은 함수에 대해서 알아보도록 할게요.
함수
SCSS에서는 문법에 맞게 함수를 활용 할 수 있어요. 다음 예제는 함수를 통해 폰트를 정의합니다.
함수
- // 폰트 자동 환산 함수적용
- // $size를 매개변수로 기본 픽셀은 값에 맞게 rem 단위로 환산
- @function calculateRem($size) {
- $remSize: $size /16px;
- @return $remSize * 1rem;
- }
믹스인 적용
- @mixin font-size($size) {font-size:calculateRem($size)}
SCSS 문법에 적용
- @include font-size(16px);
CSS 컴파일 결과
- {font-size:1rem;}
이상 4가지 기능에 대해서 간단하게 설명 드렸어요
SCSS는 정말 멋진 언어 입니다.
어떤 프로젝트를 진행 하면서 SCSS는 업무 협의와 성과에 큰 역할 을 할것입니다.
'CSS연구소' 카테고리의 다른 글
SASS를 알아봅시다. (1) | 2016.01.21 |
---|---|
블록요소와 인라인요소 (0) | 2016.01.21 |
라디오버튼 디자인방법 (0) | 2015.01.27 |
REM 과 EM 의 차이점에 대해서 알아봅시다 (1) | 2015.01.11 |
placeholder 기능에 대한 고찰 (0) | 2014.08.12 |
Comments