[웹 UI 개발] 이미지 리스트 - 4 / 이미지 리스트 제작
2023. 3. 22. 13:57
이미지 리스트를 만들기 위한 여러 예제들을 참고해서 간단한 이미지 리스트를 제작해본다.
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="utf-8">
<title>이미지 리스트 1</title>
<link rel="stylesheet" href="css/reset.css">
<link rel="stylesheet" href="css/image_list1.css">
</head>
<body>
<section>
<h1>TOP100</h1>
<div class="main_wrap">
<div class="content">
<p class="noti_txt">8.21 오전 9시 ~ 오전 10시 기준 (재생수, 재생시간, 좋아요)</p>
<ol class="main_list">
<li>
<a href="#" class="item_link">
<div class="img_box">
<img src="img1/thumb_image_large.jpg" alt="">
</div>
<div class="info">
<span class="category">산악스키</span>
<p class="title">오스트리아 최대의 산악스키 연맹, 산악스키 아마데! 5개 지역에 걸쳐있고, 총 25여개의 슬로프 길이</p>
</div>
</a>
</li>
<li>
<a href="#" class="item_link">
<div class="img_box">
<img src="img1/thumb_image_large.jpg" alt="">
</div>
<div class="info">
<span class="category">산악스키</span>
<p class="title">오스트리아 최대의 산악스키 연맹, 산악스키 아마데! 5개 지역에 걸쳐있고, 총 25여개의 슬로프 길이</p>
</div>
</a>
</li>
<li>
<a href="#" class="item_link">
<div class="img_box">
<img src="img1/thumb_image_large.jpg" alt="">
</div>
<div class="info">
<span class="category">산악스키</span>
<p class="title">오스트리아 최대의 산악스키 연맹, 산악스키 아마데! 5개 지역에 걸쳐있고, 총 25여개의 슬로프 길이</p>
</div>
</a>
</li>
</ol>
</div>
</div>
<div class="sub_wrap">
<ol class="sub_list">
<li>
<a href="#" class="item_link">
<img src="img1/thumb_image.jpg" alt="">
</a>
<div class="info">
<a href="#" class="title">국제육상경기연맹으로부터 라벨을 부여받은 국내의 단 두 개의 마라톤 대회 중 실버라벨을 5년 연속 유지하고 있는 대구국제마라톤대회!</a>
<a href="#" class="category_link">마라톤</a>
</div>
</li>
<li>
<a href="#" class="item_link">
<img src="img1/thumb_image.jpg" alt="">
</a>
<div class="info">
<a href="#" class="title">국제육상경기연맹으로부터 라벨을 부여받은 국내의 단 두 개의 마라톤 대회 중 실버라벨을 5년 연속 유지하고 있는 대구국제마라톤대회!</a>
<a href="#" class="category_link">마라톤</a>
</div>
</li>
<li>
<a href="#" class="item_link">
<img src="img1/thumb_image.jpg" alt="">
</a>
<div class="info">
<a href="#" class="title">국제육상경기연맹으로부터 라벨을 부여받은 국내의 단 두 개의 마라톤 대회 중 실버라벨을 5년 연속 유지하고 있는 대구국제마라톤대회!</a>
<a href="#" class="category_link">마라톤</a>
</div>
</li>
<li>
<a href="#" class="item_link">
<img src="img1/thumb_image.jpg" alt="">
</a>
<div class="info">
<a href="#" class="title">국제육상경기연맹으로부터 라벨을 부여받은 국내의 단 두 개의 마라톤 대회 중 실버라벨을 5년 연속 유지하고 있는 대구국제마라톤대회!</a>
<a href="#" class="category_link">마라톤</a>
</div>
</li>
<li>
<a href="#" class="item_link">
<img src="img1/thumb_image.jpg" alt="">
</a>
<div class="info">
<a href="#" class="title">국제육상경기연맹으로부터 라벨을 부여받은 국내의 단 두 개의 마라톤 대회 중 실버라벨을 5년 연속 유지하고 있는 대구국제마라톤대회!</a>
<a href="#" class="category_link">마라톤</a>
</div>
</li>
<li>
<a href="#" class="item_link">
<img src="img1/thumb_image.jpg" alt="">
</a>
<div class="info">
<a href="#" class="title">국제육상경기연맹으로부터 라벨을 부여받은 국내의 단 두 개의 마라톤 대회 중 실버라벨을 5년 연속 유지하고 있는 대구국제마라톤대회!</a>
<a href="#" class="category_link">마라톤</a>
</div>
</li>
<li>
<a href="#" class="item_link">
<img src="img1/thumb_image.jpg" alt="">
</a>
<div class="info">
<a href="#" class="title">국제육상경기연맹으로부터 라벨을 부여받은 국내의 단 두 개의 마라톤 대회 중 실버라벨을 5년 연속 유지하고 있는 대구국제마라톤대회!</a>
<a href="#" class="category_link">마라톤</a>
</div>
</li>
<li>
<a href="#" class="item_link">
<img src="img1/thumb_image.jpg" alt="">
</a>
<div class="info">
<a href="#" class="title">국제육상경기연맹으로부터 라벨을 부여받은 국내의 단 두 개의 마라톤 대회 중 실버라벨을 5년 연속 유지하고 있는 대구국제마라톤대회!</a>
<a href="#" class="category_link">마라톤</a>
</div>
</li>
<li>
<a href="#" class="item_link">
<img src="img1/thumb_image.jpg" alt="">
</a>
<div class="info">
<a href="#" class="title">국제육상경기연맹으로부터 라벨을 부여받은 국내의 단 두 개의 마라톤 대회 중 실버라벨을 5년 연속 유지하고 있는 대구국제마라톤대회!</a>
<a href="#" class="category_link">마라톤</a>
</div>
</li>
<li>
<a href="#" class="item_link">
<img src="img1/thumb_image.jpg" alt="">
</a>
<div class="info">
<a href="#" class="title">국제육상경기연맹으로부터 라벨을 부여받은 국내의 단 두 개의 마라톤 대회 중 실버라벨을 5년 연속 유지하고 있는 대구국제마라톤대회!</a>
<a href="#" class="category_link">마라톤</a>
</div>
</li>
</ol>
</div>
</section>
</body>
</html>
/*reset.css*/
/* 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;
}
/*image_list1.css*/
@charset "UTF-8";
body {
font-family: '돋움', dotum, Helvetica, sans-serif;
font-size: 15px;
line-height: 18px;
color: #3c3c3c;
}
a {
color: inherit;
text-decoration: none;
vertical-align: top;
}
img {
vertical-align: top;
}
h1 {
width: 1000px;
margin: 0 auto;
padding: 20px 0;
font-size: 26px;
line-height: 38px;
color: #000;
}
.main_wrap {
background-color: #ececec;
}
.main_wrap .content {
position: relative;
width: 1000px;
margin: 0 auto;
padding: 50px 0 20px;
}
.main_wrap .noti_txt {
position: absolute;
top: 20px;
right: 0;
font-size: 12px;
color: #7c7c7c;
}
.main_list li {
float: left;
}
.main_list::after {
display: block;
clear: both;
content: "";
}
.main_list li + li {
margin-left: 17px;
}
.main_list .item_link {
position: relative;
display: block;
}
.main_list .img_box img {
width: 322px;
height: 215px;
}
.main_list .img_box {
position: relative;
}
.main_list .img_box:after {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
content: "";
background-color: rgba(0, 0, 0, 0.2);
border: 1px solid rgba(0, 0, 0, 0.05);
}
.main_list .info {
position: absolute;
right: 15px;
bottom: 15px;
left: 15px;
color: #fff;
overflow: hidden;
}
.main_list .category {
font-size: 14px;
line-height: 18px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.main_list .title {
margin-top: 3px;
font-size: 18px;
line-height: 22px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.sub_wrap {
margin-top: 30px;
}
.sub_list {
width: 1000px;
margin: 0 auto;
}
.sub_list .item_link img {
width: 188px;
height: 141px;
}
.sub_list li {
float: left;
width: 188px;
margin-bottom: 40px;
}
.sub_list::after {
display: block;
clear: both;
content: "";
}
.sub_list li + li {
margin-left: 15px;
}
.sub_list li:nth-child(5n+1) {
margin-left: 0px;
}
.sub_list .item_link {
position: relative;
display: block;
}
.sub_list .item_link::after {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
content: "";
border: 1px solid rgba(0, 0, 0, 0.03);
}
.sub_list .info {
height: 79px;
margin-top: 10px;
padding: 5px;
}
.sub_list .title {
max-height: 36px;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
font-size: 15px;
line-height: 18px;
color: #090909;
}
.sub_list .category_link {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
display: block;
padding-top: 3px;
font-size: 12px;
line-height: 15px;
color: #7ba7df;
}
대부분 이전 예제에서 사용한 코드들을 그대로 사용했다.
이외에는 position 속성으로 해당 요소의 위치를 지정하는 코드가 가장 많다.
부스트코스의 강의 내용을 정리한 포스트입니다.
https://www.boostcourse.org/web344
웹 UI 개발
부스트코스 무료 강의
www.boostcourse.org
'공부 > 웹 UI 개발' 카테고리의 다른 글
[웹 UI 개발] 이미지 리스트 - 6 / 마우스 오버 시 버튼 노출 (0) | 2023.03.22 |
---|---|
[웹 UI 개발] 이미지 리스트 - 5 / 아이콘 상태 변경 (0) | 2023.03.22 |
[웹 UI 개발] 이미지 리스트 - 3 / 이미지 액자 효과 (0) | 2023.03.22 |
[웹 UI 개발] 이미지 리스트 - 2 / 텍스트 말줄임 (0) | 2023.03.22 |
[웹 UI 개발] 이미지 리스트 - 1 / 이미지 리스트 정렬 (0) | 2023.03.22 |