Skip to content

Conversation

@3rdflr
Copy link
Collaborator

@3rdflr 3rdflr commented Apr 1, 2025

요구사항

기본

  • 랜딩 페이지의 url path는 루트('/')로 설정합니다.
  • title은 "판다마켓"로 설정합니다.
  • 화면의 너비가 1920px 이상이면 하늘색 배경색은 너비를 꽉 채우도록 채워지고, 내부 요소들의 위치는 고정되고, 여백만 커지도록 합니다.
  • 화면의 너비가 1920px 보다 작아질 때, "판다마켓" 로고의 왼쪽 여백 200px"로그인" 버튼의 오른쪽 여백 200px이 유지되고, 화면의 너비가 작아질수록 두 요소간 거리가 가까워지도록 설정합니다.
  • 클릭으로 기능이 동작해야 하는 경우, 사용자가 클릭할 수 있는 요소임을 알 수 있도록 CSS 속성 cursor: pointer 로 설정합니다.
  • "판다마켓" 클릭 시 루트 페이지('/')로 이동합니다.
  • '로그인'버튼 클릭 시 로그인 페이지('/login')로 이동합니다 (빈 페이지)
  • "구경하러가기"버튼 클릭 시('/items')로 이동합니다.(빈 페이지)
  • "Privacy Policy", "FAQ"는 클릭 시 각각 Privacy 페이지('/privacy'), FAQ 페이지('/faq')로 이동합니다.(모두 빈 페이지)
  • 페이스북, 트위터, 유튜브, 인스타그램 아이콘을 클릭 시 각각의 홈페이지로 새로운 창이 열리면서 이동합니다.

심화

  • 사용자의 브라우저가 크고 작아짐에 따라 페이지의 요소간 간격, 요소의 크기, font-size 등 모든 크기와 관련된 값이 크고 작아지도록 설정해 보세요.(설정값은 자유입니다)

스크린샷

1

멘토에게

  • div 배치나 class명도 부정확한것 같고, css 속성을 너무 중복해서 많이 사용한듯 합니다...
  • 사용하는 화면이 1920px보다 작아서 화면을 축소한 상태로 작업을 해서 요구사항을 잘 지킨건지 모르겠습니다..

@3rdflr 3rdflr requested a review from addiescode-sj April 1, 2025 10:22
@3rdflr 3rdflr added the 매운맛🔥 뒤는 없습니다. 그냥 필터 없이 말해주세요. 책임은 제가 집니다. label Apr 1, 2025
Copy link
Collaborator

@addiescode-sj addiescode-sj left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

수고하셨습니다!

주요 리뷰 포인트

  • 일관된 기준으로 클래스이름 적용
  • 시맨틱 태그 사용
  • CSS 변수 추출

<main>
<div class="link">
<div class="link-img">
<div class="link-img-text">
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

전체적으로 css 클래스 네이밍이 일관적이지 않게 쓰인 느낌이 드네요 :)
여러가지 방식이 있을 수 있겠지만, 네이밍 컨벤션중에 가장 일반적으로 사용되는 BEM도 참고해보시면 좋을것같아요!

><a href="/items"><img src="img/btn_large.png" alt="btn" /></a>
</div>

<img class="link-img-panda" src="img/Img_home_top.png" alt="" />
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

귀찮더라도 img태그에는 꼭 alt를 사용해주세요! :)
웹 접근성뿐만 아니라, 이미지 로딩 실패 시 대체 텍스트를 표시하거나 검색엔진최적화에도 도움을 줄 수 있기 때문에 꼭 사용해주시는게 좋습니다.

레퍼런스로 애플 공식 웹사이트에 가서 alt텍스트를 어떻게 사용했는지 참고해보시면:

<img src="/kr/macbook-air/images/overview/design/design_hero_static__e56c1v71mr6u_large.jpg" onload="__lp(event)" alt="열려있는 MacBook Air 13 및 15의 모습. 한 대에는 디자인 작업을 진행 중인 화면이, 다른 한 대에는 이메일과 스프레드시트를 넘나들며 멀티태스킹을 하는 화면이 표시되어 있습니다">

이런식으로 alt 속성에 이미지 설명을 위해 구체적이고 명확한 설명을 제공하는 모습을 확인해보실 수 있습니다 :)

Comment on lines +39 to +41
<div class="content">
<div class="content-main">
<div class="content-box">
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

만약 BEM을 적용한다면,
content => main-content
content-main => main-content__item
content-box => main-content__body

이정도가 될 수 있겠네요! 어떤가요?

</div>
<div class="content-main">
<div class="content-box">
<div class="content-text reverse">
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

불필요한 div 중첩을 피하고 reverse 클래스를 추가하는 형식으로 잘 작업해주셨네요 👍

</div>
</div>
</main>
<div class="footer">
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

시맨틱 태그의 활용도를 높여보시면 좋을것 같아요! :)
<footer></footer>

</div>
</header>
<main>
<div class="link">
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

여기서도 시맨틱 태그를 사용한다면 <main>바로 아래 섹션이니 <section>을 사용하는게 더 적합하겠죠?
아래 두개 문서 참고해서 학습해보시면 좋겠네요 :)

mdn
w3schools

@@ -0,0 +1,191 @@
@import "reset.css";
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

css파일을 용도에 맞게 잘 구분해서 사용하셨네요 :) 굳굳!

height: 70;
gap: 10px;
padding-top: 9px;

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

중간에 이런 공백이 혹시 왜 필요한걸까요? 다음부터는 포맷팅도 신경써볼까요? :)

align-items: end;
width: 100%;
height: 540px;
background-color: rgba(207, 229, 255, 1);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이렇게 반복되는 값들은 코드 중복을 없애고 재사용성을 높이기위해 추출해서 css 변수로 사용하는것을 추천드려요!

:root {
  --primary-color: rgba(54, 146, 255, 1);
  --text-color: rgba(55, 65, 81, 1);
  --background-color: rgba(255, 255, 255, 1);
  --footer-bg: rgba(17, 24, 39, 1);
  --footer-text: rgba(156, 163, 175, 1);
  --content-bg: rgba(252, 252, 252, 1);
  --link-bg: rgba(207, 229, 255, 1);
  
  --container-width: 1120px;
  --content-width: 988px;
  --header-height: 70px;
  --footer-height: 160px;
  
  --spacing-xs: 9px;
  --spacing-sm: 12px;
  --spacing-md: 24px;
  --spacing-lg: 32px;
  --spacing-xl: 64px;
  
  --font-size-sm: 16px;
  --font-size-md: 18px;
  --font-size-lg: 24px;
  --font-size-xl: 40px;
}

@addiescode-sj
Copy link
Collaborator

질문에 대한 답변

div 배치나 class명도 부정확한것 같고, css 속성을 너무 중복해서 많이 사용한듯 합니다...

네, 우선 전체적으로 엘리먼트간 위계가 보이지않아 일관적이지않게 html css를 작성하시게된것같아요 :)
제가 추천드린 BEM을 학습해보시고 적용하다보면 엘리먼트의 위계를 보면서 작업하는 습관을 들일수있게되어 자연스레 개선될거예요!
추천드려봅니다.

사용하는 화면이 1920px보다 작아서 화면을 축소한 상태로 작업을 해서 요구사항을 잘 지킨건지 모르겠습니다..

화면 테스트 해보면서 몇가지 개선이 필요해보이는 이슈 골라드릴게요!

  1. 헤더 여백 적용 개선
image

div class = "market"에 space-between 속성을 써주시고, icon과 login 각각에 margin을 부여하는게 아니라 이 둘을 감싸는 market에 부여하고 화면이 줄어들때마다 자연스레 거리가 가까워지게 만들어볼까요?

  1. 전체적으로 콘텐츠 영역 최대 크기가 맞춰져있을거에요. 헤더와 푸터의 경우 가로 너비가 최대 1120px인데, 다음부터 반응형을 고려해 작업하게되신다면 화면이 커지거나 작아질때 고정된 단위로 스타일링하기보다는 상대적인 단위로 스타일링하시는게 좀더 바람직하겠죠? 예를 들어 px보다는 rem, %등을 사용하고width: 1120px이 아니라 max-width: 1120px 로 스타일링하면 좀 더 유연한 대응을 할수 있을거예요!

@addiescode-sj addiescode-sj merged commit 0b52cbb into codeit-bootcamp-frontend:Basic-최창환 Apr 4, 2025
addiescode-sj pushed a commit that referenced this pull request Apr 25, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

매운맛🔥 뒤는 없습니다. 그냥 필터 없이 말해주세요. 책임은 제가 집니다.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants