반응형으로 화면을 만들고 있는데 화면크기가 767px이하일 때 3번째 있는 자식이 첫 번째로 와야하는 화면을 만들어야 했다.
이걸 css를 통해서 구현을 해보자.
React와 styled-component를 사용하였다.
코드
컴포넌트부분
const Header = () => {
const navigate = useNavigate();
return (
<HeaderWrapperS>
<HeaderS>
<li
className='work header'
onClick={() => {
navigate('/work');
}}
>
work
</li>
<li className='vntrs header'>VNTRS</li>
<li
className='url header '
id='header-center'
onClick={() => {
navigate('/');
}}
>
WILLACREATIVE.COM
</li>
<li className='content header'>CONTENT</li>
<li className='info header'>INFO</li>
</HeaderS>
</HeaderWrapperS>
);
};
css부분 (order있는 부분만 가져왔다.)
.work {
order: 1;
}
.vntrs {
order: 2;
}
.url {
order: 3;
}
.content {
order: 4;
}
.info {
order: 5;
}
@media screen and (max-width: 767px) {
#header-center {
order: 0;
}
}
order를 사용해서 구현을 하였다.
order는 요소의 배치순서를 정하는 css인데 @media를 통해서 767px보다 화면이 작을 경우에 url클래스가 order가 0으로 되서 가장 첫 번째에 오도록 만들었다.
참고사이트
order - CSS: Cascading Style Sheets | MDN
order CSS 속성은 플렉스 또는 그리드 컨테이너 안에서 현재 요소의 배치 순서를 지정합니다. 컨테이너 아이템의 정렬 순서는 오름차순 order 값이고, 같은 값일 경우 소스 코드의 순서대로 정렬됩
developer.mozilla.org
[CSS] 📚 미디어 쿼리 - 반응형 레이아웃
미디어 쿼리(Media Query) 란? 미디어 쿼리는 CSS에서 어떤 스타일을 선택적으로 적용하고 싶을 때 사용한다. @media 키워드로 시작하는 미디어 쿼리의 문법 구조는 아래와 같다. @media (조건) { 스타일 }
inpa.tistory.com
'개발 > 개발일지' 카테고리의 다른 글
한 박스에서 이미지와 비디오 엘리먼트 서서히 변하게하기 (0) | 2024.01.22 |
---|---|
무한 슬라이드 구현 (with React, TypeScript, styled-component) (0) | 2023.11.17 |
마우스 커서 div박스로 만들기 (0) | 2023.10.20 |
before after 사용해서 줄 긋기 (0) | 2023.10.11 |
모달 만들기 (0) | 2023.08.30 |
댓글