이미지 타입 02
사이트에 기초적인 구조를 가진 이미지 타입 사이트를 만들어 봅시다.
Site HTML
사이트를 코딩하는 데에 필요한 HTML의 구조를 잡아줍니다.
section내에 각 태그에 이름을 부여해주며, articel 영역과 figure태그 내에 img를 사용줍니다.
<section id="imageType01" class="image__wrap nanum section">
<h2>Moon</h2>
<p>밤하늘의 하나의 빛줄기</p>
<div class="image__inner container">
<article class="image img01">
<figure class="image__box">
<img src="img/image02_01.jpg" alt="달빛">
</figure>
<div class="image__desc">
<h3>달빛</h3>
<a href="/" class="more" title="자세히 보기">자세히 보기</a>
</div>
</article>
<article class="image img02">
<figure class="image__box">
<img src="img/image02_02.jpg" alt="달빛">
</figure>
<div class="image__desc">
<h3>달빛</h3>
<a href="/" class="more" title="자세히 보기">자세히 보기</a>
</div>
</article>
<article class="image img03">
<figure class="image__box">
<img src="img/image02_03.jpg" alt="달빛">
</figure>
<div class="image__desc">
<h3>달빛</h3>
<a href="/" class="more" title="자세히 보기">자세히 보기</a>
</div>
</article>
</div>
</section>
Site CSS
사이트를 코딩하는 데에 필요한 css의 구조를 잡아줍니다.
h2와 p는 전체 구역에 사용돼 코드 불안정한 가능성이 있기에, 해당 요소 css만 부여되는 >를 사용해줍니다. 또한 이번에는 image:hover 효과에 transform, transition를 부여했습니다.
/* fonts */
@import url('https://webfontworld.github.io/NanumSquareRound/NanumSquareRound.css');
.nanum {
font-family: "NanumSquareRound";
}
/* reset */
* {
margin: 0;
padding: 0;
}
a {
text-decoration: none;
color: #000;
}
img {
width: 100%;
}
h1, h2, h3, h4, h5, h6 {
font-weight: normal;
}
/* common */
.container {
width: 1160px;
padding: 0 20px;
margin: 0 auto;
min-width: 1160px;
}
.section {
padding: 120px 0;
}
.section > h2 {
font-size: 50px;
line-height: 1;
text-align: center;
margin-bottom: 20px;
}
.section > p {
font-size: 22px;
font-weight: 300;
color: #666;
text-align: center;
margin-bottom: 70px;
}
/* imageType */
.image__inner {
display: flex;
justify-content: space-between;
}
.image {
width: 32%;
position: relative;
overflow: hidden;
}
.image__box {}
.image__box img {
vertical-align: top;
width: 100%;
height: 100%;
}
.image__desc {
position: absolute;
left: 0;
bottom: -100px;
width: 100%;
padding: 23px 20px;
text-align: center;
backdrop-filter: blur(10px);
box-sizing: border-box;
background: #514E6751;
color: #fff;
transition: all 0.3s ease-in;
}
.image:hover .image__desc {
bottom: 0;
}
.image:hover .image__box img {
transform: scale(1.05);
transition: all 0.3s ease-in;
}
.img01 .image__desc {background: rgba(81, 78, 103, 0.5);}
.img02 .image__desc {background: rgba(81, 78, 103, 0.5);}
.img03 .image__desc {background: rgba(255, 255, 255, 0.2);}
.img01 .image__desc h3 {color: rgb(255, 255, 255);}
.img02 .image__desc h3 {color: rgb(255, 255, 255);}
.img03 .image__desc h3 {color: rgb(255, 255, 255);}
.img01 .image__desc .more {color: rgb(255, 255, 255);}
.img02 .image__desc .more {color: rgb(255, 255, 255);}
.img03 .image__desc .more {color: rgb(255, 255, 255);}
.image__desc h3 {
font-size: 24px;
margin-bottom: 10px;
}
.image__desc .more {
font-size: 16px;
}
.image__desc .more:hover {
text-decoration: underline;
}
댓글