HMTL & CSS

썸네일 이미지 목록 - 2

동띠기 2020. 8. 24. 18:16
728x90

기존에 작성하였던 썸네일 이미지 목록에서 순번과 상승 / 찜을 추가해보겠습니다.

 

완료 이미지는 아래와 같습니다 .

 

순번을 넣고 상승 / 하향 / 유지 / 찜목록 등을 추가하겠습니다.

기존 코드에서 추가하는 코드로 진행하였습니다. 

 

html

 

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <link rel="stylesheet" href="12. 0821-imglist.css">
    <title>이미지 리스트</title>
</head>
<body>
    <div class="wrap">
        <div class="img-wrap">
            <h2 class="title">TOP100</h2>
            <div class="main-img-list-wrap">
                <div class="main-right-text">8.21 오전 9시 ~ 오전 10시 기준 (재생수, 재생시간, 좋아요)</div>
                
                <ul class="main-img">
                    <li class="main-img-list">
                        <a href="#none" class="main-link">
                            <div class="main-img-box">
                                <img src="thumb_image_large.jpg" alt="산악스키">
                            </div>
                            <div class="main-text-box">
                                <div class="title_area rank_up t_a_1">
                                    <span class="img-category">산악스키</span>
                                    <p class="img-title">오스트리아 최대의 산악스키 연맹, 산악스키 아마데! 5개 지역에 걸쳐있고, 총 25여개의 슬로프 길이</p>
                                </div>
                                <span class="like">♡ 99,999</span>
                            </div>
                        </a>
                    </li>
                    <li class="main-img-list">
                        <a href="#none" class="main-link">
                            <div class="main-img-box">
                                <img src="thumb_image_large.jpg" alt="산악스키">
                            </div>
                            <div class="main-text-box">
                                <div class="title_area rank_down t_a_2">
                                    <span class="img-category">산악스키</span>
                                    <p class="img-title">오스트리아 최대의 산악스키 연맹, 산악스키 아마데! 5개 지역에 걸쳐있고, 총 25여개의 슬로프 길이</p>
                                </div>
                                <span class="like">♡ 99,999</span>
                            </div>
                        </a>
                    </li>
                    <li class="main-img-list">
                        <a href="#none" class="main-link">
                            <div class="main-img-box">
                                <img src="thumb_image_large.jpg" alt="산악스키">
                            </div>
                            <div class="main-text-box">
                                <div class="title_area rank_keep t_a_3">
                                    <span class="img-category">산악스키</span>
                                    <p class="img-title">오스트리아 최대의 산악스키 연맹, 산악스키 아마데! 5개 지역에 걸쳐있고, 총 25여개의 슬로프 길이</p>
                                </div>
                                <span class="like">♡ 99,999</span>
                            </div>
                        </a>
                    </li>
                </ul>
            </div>
            <div class="sub-img-wrap">
                <ul class="sub-img">
                    <li class="sub-img-list">
                        <a href="#none" class="sub-link">
                            <div class="sub-img-box">
                                <img src="thumb_image.jpg" alt="">
                                <span class="play_time">99:99</span>
                                <div class="replay">
                                    <img src="later_watch.png" alt="">
                                </div>
                            </div>
                            <div class="sub-text-box">
                                <div class="sub_area rank_up s_a one">
                                    <p>국제육상경기연맹으로부터 라벨을 부여받은 국내의 단 두 개의 마라톤 대회 중 실버라벨을 5년 연속 유지하고 있는 대구국제마라톤대회!</p>
                                    <span class="sub-img-category">마라톤</span>
                                </div>
                                <span class="like">♡ 99,999</span>
                            </div>
                        </a>
                    </li>
                    <li class="sub-img-list">
                        <a href="#none" class="sub-link">
                            <div class="sub-img-box">
                                <img src="thumb_image.jpg" alt="">
                                <span class="play_time">99:99</span>
                                <div class="replay">
                                    <img src="later_watch.png" alt="">
                                </div>
                            </div>
                            <div class="sub-text-box">
                                <div class="sub_area rank_down s_a two">
                                    <p>국제육상경기연맹으로부터 라벨을 부여받은 국내의 단 두 개의 마라톤 대회 중 실버라벨을 5년 연속 유지하고 있는 대구국제마라톤대회!</p>
                                    <span class="sub-img-category">마라톤</span>
                                </div>
                                <span class="like">♡ 99,999</span>
                            </div>
                        </a>
                    </li>
                    <li class="sub-img-list">
                        <a href="#none" class="sub-link">
                            <div class="sub-img-box">
                                <img src="thumb_image.jpg" alt="">
                                <span class="play_time">99:99</span>
                                <div class="replay">
                                    <img src="later_watch.png" alt="">
                                </div>
                            </div>
                            <div class="sub-text-box">
                                <div class="sub_area rank_keep s_a three">
                                    <p>국제육상경기연맹으로부터 라벨을 부여받은 국내의 단 두 개의 마라톤 대회 중 실버라벨을 5년 연속 유지하고 있는 대구국제마라톤대회!</p>
                                    <span class="sub-img-category">마라톤</span>
                                </div>
                                <span class="like">♡ 99,999</span>
                            </div>
                        </a>
                    </li>
                    <li class="sub-img-list">
                        <a href="#none" class="sub-link">
                            <div class="sub-img-box">
                                <img src="thumb_image.jpg" alt="">
                                <span class="play_time">99:99</span>
                                <div class="replay">
                                    <img src="later_watch.png" alt="">
                                </div>
                            </div>
                            <div class="sub-text-box">
                                <div class="sub_area rank_keep s_a four">
                                    <p>국제육상경기연맹으로부터 라벨을 부여받은 국내의 단 두 개의 마라톤 대회 중 실버라벨을 5년 연속 유지하고 있는 대구국제마라톤대회!</p>
                                    <span class="sub-img-category">마라톤</span>
                                </div>
                                <span class="like">♡ 99,999</span>
                            </div>
                        </a>
                    </li>
                    <li class="sub-img-list">
                        <a href="#none" class="sub-link">
                            <div class="sub-img-box">
                                <img src="thumb_image.jpg" alt="">
                                <span class="play_time">99:99</span>
                                <div class="replay">
                                    <img src="later_watch.png" alt="">
                                </div>
                            </div>
                            <div class="sub-text-box">
                                <div class="sub_area rank_down s_a five">
                                    <p>국제육상경기연맹으로부터 라벨을 부여받은 국내의 단 두 개의 마라톤 대회 중 실버라벨을 5년 연속 유지하고 있는 대구국제마라톤대회!</p>
                                    <span class="sub-img-category">마라톤</span>
                                </div>
                                <span class="like">♡ 99,999</span>
                            </div>
                        </a>
                    </li>
                </ul>
            </div>
        </div>
    </div>
</body>
</html>

css

 

@charset "utf-8";
/* http://meyerweb.com/eric/tools/css/reset/ 
   v2.0 | 20110126
   License: none (public domain)
*/

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed, 
figure, figcaption, footer, header, hgroup, 
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	font: inherit;
	vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section {
	display: block;
}
body {
	line-height: 1;
}
ol, ul {
	list-style: none;
}
blockquote, q {
	quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
	content: '';
	content: none;
}
table {
	border-collapse: collapse;
	border-spacing: 0;
}
/* reset.css End */
body{
    font-family: '돋움', dotum, helverica, sans-serif;
    font-size: 15px;
    line-height: 18px;
    color: #3c3c3c;
}
a{
    color: inherit;
    text-decoration: none;
    vertical-align: top;
}
img{
    vertical-align: top;
}

.img-wrap{
    width: 1060px;
    margin: 100px auto;
}
.title{
    font-size: 25px;
    margin-bottom: 20px;
}
.main-img-list-wrap{
    background-color: #ececec;
    padding: 40px 30px 20px;
}
.main-right-text{
    font-size: 12px;
    text-align: right;
    margin-bottom: 20px;
}
.main-img{
    
}
.main-img::after{
    content: '';
    display: block;
    clear: both;
}
.main-img-list{
    width: 322px;
    height: 215px;
    float: left;
}
.main-img-list:not(:last-child){
    margin-right: 17px;
}
.main-img-box::before{
    background-color: rgba(0,0,0,0.2);
    content: '';
    position: absolute;
    width: 322px;
    height: 215px;
}
.main-link{
    display: block;
    text-decoration: none;
    height: 100%;
}
.main-img-box > img{
    width: 322px;
    height: 215px;
    border: 1px solid rgba(0,0,0,0.05);
    box-sizing: border-box
}
.main-text-box{
    position: relative;
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden;
    bottom: 95px;
    padding: 20px 20px 0;
}
.like{
    font-size: 14px;
    color: #fff;
    display: inline-block;
    margin-top: 7px;
}
.title_area.t_a_1::before{
    font-size: 40px;
    text-align: center;
    float: left;
    color: #fff;
    height: 40px;
    line-height: 40px;
    content: '1';
    margin-right: 10px;
}
.title_area.rank_up + .like::before{
    content: '↑3';
    color: #f82850;
    font-size: 15px;
    display: inline-block;
    margin-right: 10px;
}

.title_area.t_a_2::before{
    font-size: 40px;
    text-align: center;
    float: left;
    color: #fff;
    height: 40px;
    line-height: 40px;
    content: '2';
    margin-right: 10px;
}
.title_area.rank_down + .like::before{
    content: '↓3';
    color: #1996ff;
    font-size: 15px;
    display: inline-block;
    margin-right: 10px;
}
.title_area.t_a_3::before{
    font-size: 40px;
    text-align: center;
    float: left;
    color: #fff;
    height: 40px;
    line-height: 40px;
    content: '3';
    margin-right: 10px;
}
.title_area.rank_keep + .like::before{
    content: '';
    width: 10px;
    height: 3px;
    background-color: gray;
    font-size: 15px;
    display: inline-block;
    margin: 0px 18px 3px 6px;
    vertical-align: middle;
}
.img-category{
    display: block;
    font-size: 14px;
    color: #fff;
    margin-bottom: 5px;
}
.img-title{
    font-size: 18px;
    color: #fff;
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden;
}
.sub-img-wrap{
    padding: 30px 30px 40px;
}
.sub-img::after{
    content: '';
    display: block;
    clear: both;
}
.sub-img-list{
    float: left;
    width: 188px;
    margin-bottom: 50px;
}
.sub-img-list{
    margin-right: 15px;
}
.sub-img-list:nth-child(5n+5){
    margin: 0;
}
.sub-link{
    display: block;
    height: 100%;
    text-decoration: none;
}
.sub-img-box{
    margin-bottom: 10px;
    position: relative;
}
.sub-img-box > img{
    width: 188px;
    height: 141px;
    box-sizing: border-box;
    border: 1px solid rgba(0, 0, 0, 0.03);
}
.play_time{
    position: absolute;
    bottom: 10px;
    right: 10px;
    color: #fff;
    background: rgba(0,0,0,0.7);
    width: 40px;
    text-align: center;
    height: 16px;
    font-size: 11px;
    line-height: 17px;
}
.replay{
    position: absolute;
    bottom: 10px;
    right: 10px;
    display: none;
}

.sub-img-box:hover .replay{
    display: block;
}
.sub-img-box:hover .play_time{
    display: none;
}

.sub-text-box{
    padding: 5px;
}
.sub-text-box > .sub_area > p{
    font-size: 15px;
    color: #090909;
    text-overflow: ellipsis;
    overflow: hidden;
    height: 2.4em;
    line-height: 1.2em;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    margin-bottom: 3px;
}
.sub-img-category{
    font-size: 12px;
    color: #7ba7df;
    display: inline-block;
    padding-left: 27px;
}

.sub_area.s_a::before{
    font-size: 22px;
    text-align: center;
    float: left;
    color: #3c3c3c;
    height: 25px;
    line-height: 25px;
    width: 20px;
    content: '4';
    margin-right: 7px;
}
.s_a.two::before{
    content: '5';
}
.s_a.three::before{
    content: '6';
}
.s_a.four::before{
    content: '7';
}
.s_a.five::before{
    content: '8';
}
.sub_area.rank_up + .like::before{
    content: '↑3';
    color: #f82850;
    font-size: 15px;
    display: inline-block;
    margin-right: 7px;
}
.sub_area.rank_down + .like::before{
    margin-right: 7px;
    content: '↓3';
    color: #1996ff;
    font-size: 15px;
    display: inline-block;
}
.sub_area.rank_keep + .like::before{
    content: '';
    width: 10px;
    height: 3px;
    background-color: gray;
    font-size: 15px;
    display: inline-block;
    margin: 0px 18px 3px 6px;
    vertical-align: middle;
}
.sub_area + .like{
    color: #3c3c3c;
}

 

 

before / after 선택자를 주로 선택하였고 실습(?) 을 하다보니 다중 클래스선언의 활용도와 + 선택자의 활용도의 비중이 높아지고 있습니다. 평소에는 nth-child나 각 클래스별로 모두 클래스 명을 주고 그것으로 활용하였는데 , 이 활용도 나쁘지 않아 보입니다. 

 

은근히 코드가 늘어나는 것 같아 기쁘네요 ,

 

* 부스트코스 UI 교육을 듣고 개인적으로 정리한 내용입니다.

728x90

'HMTL & CSS' 카테고리의 다른 글

레이어팝업 만들기 [ Layer Popup ]  (0) 2020.09.01
달력 UI제작 (웹접근성 코드)  (0) 2020.08.28
썸네일 이미지 목록  (0) 2020.08.22
2단 배열 메뉴  (0) 2020.08.21
탭(Tab) 레이아웃 만들기  (0) 2020.08.20