<div class="list-item">
<div class="list-half list-half-top shop-border">
<div class="list-half-header list-half-bg">
<div class="half-overlay">
</div>
<h3 class="shop-title-border">백화점 상품 그대로</h3>
</div>
<ul class="contents-lists content-lists-3">
<li>
<img src="https://via.placeholder.com/102px*100px">
<h3>생활공작서 과탄산소다</h3>
<span>1.5kg x 4</span>
</li>
<li>
<img src="https://via.placeholder.com/102px*100px">
<h3>생활공작서 과탄산소다</h3>
<span>1.5kg x 4</span>
</li>
<li>
<img src="https://via.placeholder.com/102px*100px">
<h3>생활공작서 과탄산소다</h3>
<span>1.5kg x 4</span>
</li>
</ul>
</div>
<div class="list-half list-half-bottom shop-border">
<div class="list-half-header">
<span class="headline">hot deal</span>
<h3>백화점 상품 그대로</h3>
</div>
<ul class="contents-lists content-lists-2">
<li>
<div class="content-image-wrap">
<img src="https://via.placeholder.com/130px*90px">
<span class="discount">50%</span>
</div>
<h3>부드럽게 감기는 말랑말랑 파우치 이불</h3>
<span class="price"><em>21,900</em>원</span>
</li>
<li>
<div class="content-image-wrap">
<img src="https://via.placeholder.com/130px*90px">
<span class="discount">50%</span>
</div>
<h3>부드럽게 감기는 말랑말랑 파우치 이불</h3>
<span class="price"><em>21,900</em>원</span>
<!-- em 태그는 폰트의 스타일이 기본적으로 이탤릭체이다 -->
</li>
</ul>
</div>
</div>
- list-half-bottom/ list-half-top을 이용해 두파트로 나누고 각각의 내부 디자인을 한다.
#shop-main .list-item .list-half-top {
position: absolute;
left: 0;
top: 0;}
#shop-main .list-item .list-half-bottom {
position: absolute;
left: 0;
bottom: 0;}
- 하나의 박스를 두개로 나누어줌
#shop-main .list-item .list-half .list-half-header {
position: relative;
width: 100%;
height: 62px;
background-color: #ffffff;
border-bottom: solid 1px #e7e7e7;
text-align: center;
padding-top: 10px;}
- 각각 박스의 헤더의 특징을 부여
#shop-main .list-item .list-half .list-half-header .headline {
display: inline-block;
border: solid 1px #000000;
padding: 2px 4px;
margin-bottom: 5px;}
- 핫딜의 특징 적용
#shop-main .list-item .list-half .list-half-header h3 {
font-size: 14px;}
#shop-main .list-item .list-half .list-half-header .half-overlay {
position: absolute;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.5);}
- 포지션을 이용하여 그린 영역에 오버레이를 깔아줌
#shop-main .list-item .list-half .list-half-header.list-half-bg {
background-color: green;
padding-top: 0;
/*list-half-bg 패딩 적용 x*/
border-bottom: solid 1px #ffffff;
/*bg에는 흰색 줄을 부여*/ }
#shop-main .list-item .list-half .list-half-header.list-half-bg .shop-title-border {
position: relative;
display: inline-block;
border: solid 1px #ffffff;
color: #ffffff;
top: 50%;
transform: translateY(-50%);}
- bg 부분의 타이틀 영역을 지정
#shop-main .list-item .list-half .contents-lists {
overflow: hidden;}
#shop-main .list-item .list-half .contents- lists.content-lists-3 li {
float: left;
width: 33.33%;
height: 177px;
border-right: solid 1px #f0f0f0;
text-align: center;}
- 내부 컨텐츠의 배치와 설정을 한다.
#shop-main .list-item .list-half .contents-lists.content-lists-3 li:last-child {
border-right: none;}
#shop-main .list-item .list-half .contents-lists.content-lists-3 li img {
width: 100%;
height: 100px;
margin-bottom: 5px;}
- 이미지 설정
#shop-main .list-item .list-half .contents-lists.content-lists-3 li h3 {
font-size: 13px;
margin-bottom: 5px;}
#shop-main .list-item .list-half .contents-lists.content-lists-3 li span {
font-size: 12px;}
#shop-main .list-item .list-half .contents-lists.content-lists-2 {
display: flex;
flex-wrap: wrap;
justify-content: center;
padding-top: 11px;}
- 하단 컨텐츠의 위치 설정
#shop-main .list-item .list-half .contents-lists.content-lists-2 li {
width: 130px;
height: 150px;
margin-right: 8px;}
#shop-main .list-item .list-half .contents-lists.content-lists-2 li:last-child {
margin-right: 0;}
#shop-main .list-item .list-half .contents-lists.content-lists-2 li .content-image-wrap {
position: relative;
width: 130px;
height: 90px;}
#shop-main .list-item .list-half .contents-lists.content-lists-2 li .content-image-wrap img {
position: absolute;
width: 100%;
height: 100%;}
#shop-main .list-item .list-half .contents-lists.content-lists-2 li .content-image-wrap .discount {
position: absolute;
display: block;
width: 42px;
height: 42px;
background-color: orange;
border-radius: 50%;
font-size: 14px;
color: #ffffff;
line-height: 42px;
text-align: center;
top: 6px;
right: 5px;
- 위치 설정
}
- 포지션을 주어 할인이 올라오게 하고 설정을 준다.
#shop-main .list-item .list-half .contents-lists.content-lists-2 li h3 {
font-size: 13px;}
#shop-main .list-item .list-half .contents-lists.content-lists-2 li .price {
color: #62a7ee;
font-size: 12px;}
#shop-main .list-item .list-half .contents-lists.content-lists-2 li .price em {
font-size: 14px;
font-weight: 700;
font-style: normal;}
<div class="list-item">
<div class="list-half shop-border">
<div class="list-half-header">
<span class="headline">NEWS</span>
<h3>백화점 상품 그대로</h3>
</div>
<ul class="contents-lists content-lists-2">
<li>
<div class="content-image-wrap">
<img src="https://via.placeholder.com/130px*90px">
<span class="discount">50%</span>
</div>
<h3>부드럽게 감기는 말랑말랑 파우치 이불</h3>
<span class="price"><em>21,900</em>원</span>
</li>
<li>
<div class="content-image-wrap">
<img src="https://via.placeholder.com/130px*90px">
<span class="discount">50%</span>
</div>
<h3>부드럽게 감기는 말랑말랑 파우치 이불</h3>
<span class="price"><em>21,900</em>원</span>
</li>
</ul>
</div>
<!-- 위에서 만든 형태를 가져와 그대로 사용 후 그에 맞게 수정을 한다. bottom 제거 -->
<ul class="list-row-3">
<li>
<div class="list-image-wrap shop-border">
<img src="https://via.placeholder.com/90px*60px">
</div>
- border를 주기위해 div로 묶음
<div class="list-row-info">
<span>멜론 티켓</span>
<h3>흥행 돌풍 마마 돈크라이</h3>
</div>
</li>
<li>
<div class="list-image-wrap shop-border">
<img src="https://via.placeholder.com/90px*60px">
</div>
<div class="list-row-info">
<span>멜론 티켓</span>
<h3>흥행 돌풍 마마 돈크라이</h3>
</div>
</li>
<li>
<div class="list-image-wrap shop-border">
<img src="https://via.placeholder.com/90px*60px">
</div>
<div class="list-row-info">
<span>멜론 티켓</span>
<h3>흥행 돌풍 마마 돈크라이</h3>
</div>
</li>
</ul>
</div>
#shop-main .list-item .list-row-3 {
background-color: #ffffff;
border-top: none;}
#shop-main .list-item .list-row-3 li {
display: flex;
flex-direction: row;
flex-wrap: wrap;
align-items: center;
border-bottom: solid 1px #f0f0f0;
padding: 14px 19px 11px 19px;}
- 사진과 내용을 x축으로 배치
#shop-main .list-item .list-row-3 li:last-child {
border-bottom: none;}
#shop-main .list-item .list-row-3 li .list-image-wrap {
width: 90px;
height: 60px;
margin-right: 10px;}
- 마진을 주어 사진과 글자의 간격을 벌림
#shop-main .list-item .list-row-3 li .list-image-wrap img {
width: 100%;
height: 100%;}
#shop-main .list-item .list-row-3 li .list-row-info span {
font-size: 12px;}
#shop-main .list-item .list-row-3 li .list-row-info h3 {
font-size: 13px;}
<div class="brand-wrap shop-border">
<ul class="brand-lists">
<li><img src="https://via.placeholder.com/64px*64px"></li>
<li><img src="https://via.placeholder.com/64px*64px"></li>
<li><img src="https://via.placeholder.com/64px*64px"></li>
<li><img src="https://via.placeholder.com/64px*64px"></li>
<li><img src="https://via.placeholder.com/64px*64px"></li>
<li><img src="https://via.placeholder.com/64px*64px"></li>
<li><img src="https://via.placeholder.com/64px*64px"></li>
<li><img src="https://via.placeholder.com/64px*64px"></li>
<li><img src="https://via.placeholder.com/64px*64px"></li>
</ul>
</div>
#shop-main .brand-wrap {
background-color: #ffffff;}
- 전체적인 배경을 넣어준다
#shop-main .brand-wrap .brand-lists {
padding: 18px 18px;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
align-items: center;}
- 브랜드들을 x축으로 배치
#shop-main .brand-wrap .brand-lists li {
width: 64px;
height: 64px;}
#shop-main .brand-wrap .brand-lists li img {
width: 100%;
height: 100%;}
<footer id="shop-footer">
<div class="shop-container">
<!-- 중앙으로 맞춰주기 위해 사용 -->
<div class="policy-wrap">
<span>네이버 이용약관</span>
<span>네이버페이 이용약관</span>
<span>개인정보처리방침</span>
<span>법적고지 및 주의사항</span>
<span>이용안내</span>
<span>네이버 이용약관</span>
<span>네이버 이용약관</span>
<span>네이버 이용약관</span>
<span>네이버 이용약관</span>
<span>네이버 이용약관</span>
</div>
<p>네이버는 통신판매 당사자가 아닙니다. 거래에 관한 의무와 책임은 판매자에게 있습니다.</p>
</footer>
#shop-footer {
padding-bottom: 27px;
text-align: center;}
- 바닥 공간띄워주고 가운데 정렬
#shop-footer .policy-wrap {
border-top: solid 2px #000000;
padding-top: 27px;
margin-bottom: 11px;}
#shop-footer .policy-wrap span {
font-size: 12px;}
#shop-footer .policy-wrap span:first-child:before {
content: initial;}
- 맨 앞 스팬은 작대기 안줌
#shop-footer .policy-wrap span:before {
content: "";
display: inline-block;
width: 1px;
height: 11px;
margin: 0 8px;
background-color: #d7d7d7;
vertical-align: -1;}
- 스팬 사이 사이 작대기 부여
#shop-footer p {
font-size: 12px;
color: #888;
margin-bottom: 11px;}
어제의 연장선이라서 큰 어려움은 없었다.
연습계속하기
정해긴 기한 내 진도를 다 빼지 못하는 것이 아쉽다.