Notice
Recent Posts
Recent Comments
Link
On a couch
[내일의 집] scss - 모듈 Module 본문
1. Placeholder
- 무엇 : mixin과 비슷한 용도이지만, 전역에서 아무때나 불러내는 mixin과 다르게
- (1)요소들의 공통 스타일을 선언해두고 각 요소에 삽입해 상속받는 식으로 사용
- (2)css로 들어갈 때 공통 스타일만 따로 묶여서 들어감 (mixin처럼 각 요소 밑에 매번 적히지 x)
- (3) 인자를 받을 수 없음
- 문법
- 선언 : %이름 { //공통스타일// }
- 호출 : .요소 { @extend %이름; }
2. 자주 사용하는 components를 module로 만들기
- 기본
- 분류별로 공통점을 먼저 파악해서 placeholder를 만들고, 특수하게 적용되어야 하는 style을 밑에 각각 선언
- inline요소들은 스타일이 깨지기 쉬우므로 적용하기 전 일단 display: block;으로 설정하기.
- tags: 글씨 길이에 따라 유연하게 늘어나야 하므로 block이나 flex보다는 inline-block, inline-flexbox와 padding 활용
- 별점: icon font를 이용해 별 다섯 개를 하나의 div로 묶고, 모두 적용되는 style과 별 각각이 .is-active일 때의 style 만들어주기
- 프로필사진
- img에 스타일을 줄 때는 뭐든 상위에 감싸는 요소를 두도록 하자. 예민해서 어떻게 틀어질 지 모르기 때문. 공식적으로는 inline이지만 inline-block처럼 행동함.
- 상위 block에서 형태를 정한 뒤 overflow: hidden 으로 삐져나온 부분 숨긴 뒤, img에서 object-fit: cover 로 채우면 background-image 설정한 것과 같은 효과.
- 가격: 가격처럼 특수한 텍스트들은 미리 constants로 선언한 폰트 규격과 안 맞을 수 있음. 꼼꼼히 체크해 특이사항은 placeholder 밖에서 선언하기
- 버튼
- 보통 style / size / states(normal, hover, active, disabled) 에 따라서 바뀌므로 전부 체크해야 한다. 시안에서 버튼을 변화시키는 요인(연관된 요인)이 무엇인지 파악해 구분하고, style에 관한 placeholder를 선언할 때는 딱 style에 관해서만 넣기
- 버튼계의 김나박이: 스타일에 따라 fill, outlined, ghost 가 이름으로 자주 쓰임
- 상태에 따른 변화 : 스타일에 많이 의존하므로 스타일 placeholder에 가상선택자로( &:hover ) 지정. hover와 disabled 중복되어 하나가 덮어씌워지지 않도록 주의.
- +@ transition : background-color 200ms ease-in-out;
- 폼(input, select)
- select 더보기 아이콘 설정
- user agent stylesheet가 기본적으로 appearance 속성을 넣어 둠. none으로 초기화.
- 아이콘폰트로 버튼 만든 뒤 position:absolute로 select상자 내부에 위치.
- pointer-events : none; 설정하면 클릭 시 select 옵션창 안 열리는 현상 제거 가능.
- select 항목 이름이 길 때
- 이름이 더보기 아이콘 영역까지 침범하지 않도록 padding-right
- 이름이 똑 잘리지 않도록 text-overflow: ellipsis; 적용. (...으로 표기)
- select 선택순서 표기 (active) : js에서 선택이 필요한 사항을 순서대로 강조할 수 있도록 강조 style을 만들어 놓자
- input: &::placeholder로 내부 텍스트에 스타일 적용 가능
- select 더보기 아이콘 설정
- 페이지네이션
- 각 버튼별 공통 %placeholder 스타일 만들기. 앞으로/뒤로 버튼은 없을 수 있다는 것 고려하기.
- 버튼 display는 숫자가 커질 것을 고려해 inline-flexbox와 min-width의 조합 사용
- 각 숫자들끼리 flexbox, 앞으로/뒤로 버튼과도 다시 flexbox
'프론트엔드 공부 > 클론코딩 실습' 카테고리의 다른 글
[넷플] React 1. STATE (0) | 2022.03.31 |
---|---|
[넷플] React.js 기본 (0) | 2022.03.30 |
[내일의집] scss - mixin, function, flex map (0) | 2022.03.21 |
[내일의집] Sass 활용하기 : 변수, 그리드 (0) | 2022.03.18 |
[내일의집] asset 준비 (0) | 2022.03.17 |