
스타일 컴포넌트와 미디어쿼리를 이용하여 반응형 navbar 구현
미디어쿼리 Breakpoint 768px 사용



x, false경우 =(bar icon) 보여줌 const [clicked, setClicked] = useState(false);
const onClick = () => setClicked(!clicked);
<MenuToggle onClick={onClick}>
<FontAwesomeIcon icon={clicked ? faXmark : faBars} />
</MenuToggle>
clicked가 true일 때, display : block으로 화면 노출clicked가 false일 때, display : none으로 화면 숨김// clicked state 사용
const Links = styled.ul`
display : flex;
justify-content: space-between;
// 768px 이하에서 세로정렬
@media screen and (max-width : 768px){
flex-direction: column;
align-items : flex-start;
//props.toggle = clicked
${ props => {
if( props.toggle ){
return`
display: block;
`
} else {
return`
display : none;
`
}
}}
}
`
//스타일컴포넌트 사용시 props전달
<Links toggle={clicked}/>
- 화면 너비 줄어들때, navbar 로고 움직이지 않도록 수정하기 06.17 수정완료

width가 줄어들 때, navbar 정렬이 반박자(?) 느린 문제점이 있었다. 이것 저것 시도해보았으나,, 결과는 같음 🥺 결론은 width의 문제였다!! 계속 보다보니,, nav바 배경의 움직임 자체가 반응이 느렸다. 반면 아래 headercontents( 밝은회색 배경 )은 화면의 움직임과 동일하게 움직이는 것을 보고 비교해보니 navbar width : 100vw / headercontents : 100%으로 되어있었다. navbar의 width를 100%로 수정해주니 깔끔하게 해결!
100% = 100vw 같은 개념으로 생각했는데, 나 자신 반성하며,, 단위 개념 다시 공부하기ㅠㅠ

https://github.com/brightyoung219/apple-web-clone/blob/main/src/components/Navbar/Nav.js
🔎 참고