지금와서 회고를 작성할 수 있었던 이유는 제가 고민하고 실패했던 것들을 git PR에 모두 남겼두었기 때문입니다. 지금도 다시금 읽으면서 많은 공부가 되는거 같습니다
Frontend Mentor는 프론트엔드 개발자들이 프로젝트를 경험하고, 역량을 향상시킬 수 있는 온라인 학습 사이트입니다.
다양한 주제의 챌린지가 제공되며, 유료 결제시 피그마 파일도 받아볼 수 있습니다. 결제를 하지 않더라도 이미지 파일, 스타일 가이드, 컨텐츠 등이 포함되어 있어서 개발하는데는 문제가 없습니다.
저 같이 프론트엔드를 시작하는 단계의 사람들에게 다영한 경험을 할 수 있게해주어 매우 유용한 사이트라고 생각합니다
저는 가난한 취준생이기에 무료로 제공되는 이미지 파일, 스타일 가이드, 컨텐츠를 바탕으로 챌린지에 도전했습니다.
재밌는 점은 내가 구현한 결과물을 남들이 볼 수 있게 올려줍니다.
선정 이유는 사실 큰 이유는 없습니다 ㅎㅎ
처음이기에 가장 쉬운걸 해보자라고 생각했는데, 마침 프론트엔드 맨토 사이트에 필터기능이 존재하여 Free와 Newbie로 필터하여 가장 먼저 나오는 챌린지인 Product preview card component 도전하였습니다.
hover시 버튼 배경 color 어둡게 설정하기
filter: brightness(75%)
를 적용하여 어두워지게 하였더니, 안에 Text도 어두워져서 실패가운데 정렬 방식
place-content
을 사용하면 justify-content
, align-items
를 동시에 설정 가능 display: flex;
place-content: center;
상품이미지 picture tag 사용 (div backgorund-image
VS img
VS picture
)
backgorund-image
:
backgorund-image
는 상품이미지 설정에 적합하지 않습니다. img
tag와 반응형을 위한 srcset
속성:
srcset
이라는 속성이 있습니다. 동일한 이미지를 기기 크기에 따라 해상도 다른 이미지로 전환할때 사용됩니다. <img srcset="이미지경로.jpg 원본크기w,
sizes="(미디어조건) 최적크기(%단위 사용불가),
src="기본이미지.jpg" alt="설명" />
<img srcset="product-480w.jpg 480w,
product-800w.jpg 800w"
sizes="(max-width: 480px) 440px,
(max-width: 800px) 777px,"
src="product.jpg" alt="상품이미지" />
그렇다면 왜 picture
로 선택했는가?
img
의 srcset
을 이용하면 화면 크기에 따른 이미지 제공이 가능합니다.srcset
과 size
는 일반적으로 동일한 이미지를 최적화된 사이즈로 제공
, 저밀도/고밀도로 해상도 전환
하기 위해 사용합니다.picture
은 아트 디렉션(art direction)
문제를 해결하기 위해 일반적으로 사용합니다. 간단하게 풀어서 말하면 가로/세로의 길이가 다른 이미지가 필요할때 사용합니다.picture
을 사용하여 해결이 가능합니다 <picture>
<source media="(max-width: 767px)" srcset="./images/image-product-mobile.jpg" >
<img src="./images/image-product-desktop.jpg" alt="product image">
</picture>
그래서 최종적으로 picture
를 선택하게 되었습니다.
위 주제와 조금 다른 이야기지만 성능 관점에서 backgorund-image
로 여러 개의 큰 이미지를 로드하면 CSS가 구문 분석하는데 시간이 더 오래 걸리기 때문에 전체 사이트 속도가 느려집니다.
그러나 img태그를 사용하면 HTML이 구문 분석될 때 각각의 이미지 요청이 독립적으로 수행되기 때문에 모든 콘텐츠가 한 번에 준비될 때까지 기다리지 않고 위에서 아래로 콘텐츠를 더 빨리 개별적으로 볼 수 있게 됩니다.
참고