[ 과제1 ] HTML, CSS를 이용해서 넷플릭스 사이트 만들기

김민지·2024년 9월 12일

과제 설명

요구 사항

  1. Flex Box or Grid Box 사용해서 영화 나열하기
  2. 영화에 마우스로 hover하면 영화 이미지의 사이즈 키우기

폴더 계층

사용 이미지 출처

  1. 배경 이미지 netflix_bg.jpg 와 넷플릭스 로고 이미지 netflix_logo.png : June님의 티스토리에서 제공하신 이미지 다운 링크를 참고함
  2. 각 영화 이미지 flex_img1.png ~ flex_img6.png : 넷플릭스 사이트에서 직접 캡처해서 불러옴

제출 소스코드 링크

코드 설명

HTMLCSS만을 사용해서 복잡한 부분은 제외하고 과제의 요구사항에 부합하는 부분만을 넣어서 정말 간단히 만든 mock site :>

공부한 내용 & 더 찾아볼 내용

  1. header layout: header_div 내의 img를 중앙에, button 우측에 아래 화면과 같이 배치하고자 했으나 flex-box 로 아래와 같이 배치하지 못해서 결국 필요없는 div를 하나 더 추가하고 justify-content: space-between; 방식으로 layout을 완성함 → 결과적으로는 동일하지만 더 나은 방식이 있을 것 같음
<!-- html -->
<div class="header_div">
	<div class="fake_div"></div> <!--not so proud of this solution..-->
	<img src="./img/netflix_logo.png" alt="Logo" class="netflix_logo"/>
	<button class="sign_up_button">Sign In</button>
</div>
/* css */
.header_div {
    display: flex;
    flex-direction: row;
    align-items: center;
    padding: 20px;
    justify-content: space-between;
    align-items: center;
}

.fake_div {
    padding: 5px;
    padding-left: 15px;
    padding-right: 15px;
}

.netflix_logo {
    width: 140px;
    cursor: pointer;
}

.sign_up_button {
    border: none;
    background-color:  #E50914;
    padding: 5px;
    padding-left: 15px;
    padding-right: 15px;
    color: white;
    border-radius: 5px;
}
  1. 배경화면에 netflix_bg.jpg 삽입
<!-- html -->
<body>
    <div class="background">
    <!-- ... -->
	</div>
</body>
/* css */
.background {
    height: 100vh; 
    width: 100%;
    
    background: 
        radial-gradient(
            circle, 
            rgba(0, 0, 0, 0.3) 0%, /* 가운데 투명 */
            rgba(0, 0, 0, 0.8) 70% /* 바깥쪽은 어두움 */
        ), 
        url('../img/netflix_bg.jpg');
    
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;

    box-shadow: inset 0 0 50px rgba(0, 0, 0, 0.5);
}
  • 100% vs 100vh : 100%는 부모요소의 100%이므로 화면의 100%를 차지하리라는 보장은 없으나, 100vh로 설정할 경우 부모요소의 크기와 무관히 화면의 전체 높이 height 를 차지하도록 설정됨
  1. 영화에 마우스로 hover하면 영화 이미지의 사이즈 키우기 구현
<!-- html -->
<div class="flexbox_divs">
	<p class="list_title">Today's Top Picks for You</p>
	<div class="recommend_list">
		<div class="video">
			<img src="./img/flex_img1.png"/>
		</div>
      	<!-- ... -->
		<div class="video">
        	<img src="./img/flex_img6.png"/>
        </div>
        <button class="next_button"> > </button>
    </div>
</div>
/* css */
.video {
    position: relative;
    cursor: pointer;
    width: 230px;
    margin-left: 10px;
    border-radius: 5px;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.video:hover {
    transform: scale(1.05);
    box-shadow: 0px 10px 20px rgba(0, 0, 0, 0.8);
}

0개의 댓글