기록
0503: styled-components 공부 본문
1. css in js (styled-components) - 반응형
www.youtube.com/watch?v=s-_8wRbuPSM&list=WL&index=5
styled-components를 통해 반응형 네비게이션바를 만들 예정.
npx create-react-app
yarn add styeld-components
768 미만일 때,
width: 100%; 로 해야 원하는 모습이 됨
const Menu = styled.div`
display: flex;
justify-content: space-between;
align-items: center;
position: relative;
@media (max-width: 768px) {
overflow: hidden;
flex-direction: column;
width: 100%;
max-height: ${({ isOpen }) => (isOpen ? '300px' : 0)};
transition: max-height 0.3s ease-in;
}
`;
그리고 Menu가 받아온 isOpen의 상태에 따라서 높이를 다르게 그리는 코드.
그 isOpen의 상태는 햄버거버튼이 결정한다!
인라인이벤트로 설정해놨음.
const Navbar = () => {
const [isOpen, setIsOpen] = useState(false);
return (
<Nav>
<Logo href="/">HOME</Logo>
<Hamburger onClick={() => setIsOpen(!isOpen)}>
<span />
<span />
<span />
</Hamburger>
<Menu isOpen={isOpen}>
<MenuLink href="/">Work</MenuLink>
<MenuLink href="/">About</MenuLink>
<MenuLink href="/">Careers</MenuLink>
<MenuLink href="/">Contact</MenuLink>
</Menu>
</Nav>
);
};
간단한 코드지만, 이런 방식으로 css in js를 설정할 수 있다.
'TIL*' 카테고리의 다른 글
0529,30 디지털 필사,, (0) | 2021.05.31 |
---|---|
0504: 복습, thunk 등 공부 (0) | 2021.05.04 |
0423: api 수정 (0) | 2021.04.23 |
0422: redux toolkit (0) | 2021.04.22 |
0420: 검색한 결과 화면에 그리기 (0) | 2021.04.21 |
Comments