일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 함수형프로그래밍
- 리액트
- vite
- CustomHook
- 화살표2개
- 부모요소의 패딩 무시
- 부모패딩
- 조건부스타일
- Carousel
- useQueryClient
- twoarrow
- ignore padding
- es6
- react
- transition
- DOM
- ㅡ
- ?? #null병합연산자
- accordian
- parent padding
- 문제해결
- BFC
- createPortal
- debouncing
- 서초구보건소 #무료CPR교육
- QueryClient
- tailwindCSS
- BlockFormattingContext
- 제어컴포넌트
- alias설정
Archives
- Today
- Total
프론트엔드 첫걸음
Styled Component 심화 1 - Component Selector 본문
https://styled-components.com/docs/advanced#referring-to-other-components
See the Pen Untitled by JEONG (@cona) on CodePen.
const Remove = styled.div`
display: flex;
align-items: center;
justify-content: center;
color: #dee2e6;
font-size: 24px;
cursor: pointer;
display: none;
`;
const Link = styled.a`
display: flex;
align-items: center;
padding: 5px 10px;
background: papayawhip;
color: palevioletred;
//Link hover 할때 하위컴포넌트인 Remove 나타나게 함
&:hover {
${Remove} {
display: block;
}
}
`;
const Icon = styled.svg`
flex: none;
transition: fill 0.25s;
width: 48px;
height: 48px;
//상위 컴포넌트인 Link hover 할때 Icon 의 fill 변화
${Link}:hover & {
fill: rebeccapurple;
}
`;
const Label = styled.p`
display: flex;
align-items: center;
line-height: 1.2;
&::before {
content: '◀';
margin: 0 10px;
}
`;
const Test = () => {
return (
<Link href='#'>
<Icon viewBox='0 0 20 20'>
<path d='M10 15h8c1 0 2-1 2-2V3c0-1-1-2-2-2H2C1 1 0 2 0 3v10c0 1 1 2 2 2h4v4l4-4zM5 7h2v2H5V7zm4 0h2v2H9V7zm4 0h2v2h-2V7z' />
</Icon>
<Label>Hovering my parent changes my style!</Label>
<Remove>TEST</Remove>
</Link>
);
};
Styled Component는 상위의 컴포넌트의 조건에 따라 자신의 css를 바꿀 수 있고
${Link}:hover & {
fill: rebeccapurple;
}
자신의 조건에 따라 하위 컴포넌트의 css를 바꿀 수 있다.
&:hover {
${Remove} {
display: block;
}
}
'개발 공부 > React' 카테고리의 다른 글
Todo App 성능개선 (React.memo + 함수형 setState) (0) | 2022.08.28 |
---|---|
Redux (0) | 2022.08.23 |
Form 제출 시 input값 가져오는 두가지 방법 (0) | 2022.08.14 |
함수형 컴포넌트를 클래스 컴포넌트로 바꾸기 2 - useEffect를 componentDidUpdate로 (0) | 2022.08.05 |
클래스 컴포넌트 Lifecycle (0) | 2022.08.05 |