Notice
Recent Posts
Recent Comments
Link
On a couch
[내일의집] scss - mixin, function, flex map 본문
01 Mixin 기본 문법
1. 선언하기
- @mixin 믹스인이름( ) { }
- 파라미터가 없다면 괄호는 안 붙여도 된다
2. 사용하기
- @include 믹스인이름( ) ;
02 Minxin 활용하기
1. 파라미터의 적절한 활용
- 어느 기능까지를 이 mixin에서 사용하고 어디서부터는 외부로 뺄 지를 잘 계산하고 리팩토링해줘야 한다.
- 파라미터 설정했는데 인수가 없을 땐 에러를 낸다. 믹스인이름(파라미터 : false)로 설정하면 파라미터가 없을 때 false가 그 자리에 들어간다.
- 이후 @if '파라미터가 false가 아닐' 때 혹은 'type-of(파라미터) == 원하는 타입'일 때만(유효성 검사) 작동하는 분기를 만들어주면 false 영향 없이 마무리할 수 있음.
- @mixin에서 @media 사용 시 { @content } 작성해 두면, @include 시 { } 안에 들어간 내용이 그 자리에 들어감.
2. 리팩토링
- 인수 안 받는 기본 기능만 만들어두고, 그 mixin을 호출하는 외부 mixin에다 파라미터를 받는 방법도 있다!
- '미디어쿼리문 자체'를 mixin으로 만들 수 있음(내용은 아님)
- 미디어쿼리문은 기니까 mixin화 해두면 include하기도 쉽고 읽기도 편해서 쓰는 것 뿐, 그 안의 내용을 불러와주는 기능은 없다.
- 미디어쿼리문과 내용을 mixin에 때려넣으려고 하면 '블록을 받지 않는다'는 오류가 뜬다. 쿼리문 블록 안에 '@content'라고 넣어주고, 그 content는 include하는 상황에서 정의해주면 됨
3. position mixin으로 만들어두기
- absolute 가로세로 센터정렬, flex 가로세로 정렬 등 여러 번 쓰고 번거로운 것들은 mixin으로 미리 만들기
- 인자로 원하는 설정을 받아 동작할 수 있도록 작성(유효성 검사 해주기!!)
- 자주 쓰는 옵션을 dafault로 설정
03. function과 map으로 더 더 리팩토링
- @function이름 { } : mixin이 여러 스타일을 반환한다면 function은 1개의 '값'만을 반환함.
- $map이름 ( ) : object와 비슷한 key-value 보따리. 변수 지정할 때처럼 $ 쓴 뒤 { }가 아니라 ( )를 사용하면 map이 된다. 값을 불러올 때는 map-get( $map이름, key값 ) 이라는 scss 내장함수를 활용!
- 이 코드에서는 'end'라고만 써도 'flex-end'를 실행시키는 함수를 만드는데 -> 모든 인수를 if 절로 검사해서 지정된 값을 내보내자니 코드가 너무 길어져서 -> map에서 처리하도록 연동시킨 것
'프론트엔드 공부 > 클론코딩 실습' 카테고리의 다른 글
[넷플] React.js 기본 (0) | 2022.03.30 |
---|---|
[내일의 집] scss - 모듈 Module (0) | 2022.03.29 |
[내일의집] Sass 활용하기 : 변수, 그리드 (0) | 2022.03.18 |
[내일의집] asset 준비 (0) | 2022.03.17 |
[내일의집] 환경 세팅 (0) | 2022.03.16 |