728x90
๋ฐ์ํ
๐ก ์ค์ต ํฌ์ธํธ!
- ์์ ์ ์ด๋ ฅ์๋ฅผ ํฌํธํด๋ฆฌ์ค๋ก ๋ง๋ค์ด๋ณผ๊น๋ผ๊ณ ์๊ฐํ์ ๋, ๋ง์ฐ์ค์ค๋ฒ๋ฅผ ํ๋ฉด ์ด๋ฏธ์ง๊ฐ ๋ค์งํ๋ฉด์ ๊ธ์ด ๋์ค๋...์ด๋ฐ ๊ธฐ๋ฅ์ ์ํ ์ ์ด ์์๋๋ฐ ๋ง์นจ! ๋ฑ ๋ฐฐ์ฐ๊ฒ ๋์๋ค.
- ์ด๋ฏธ์ง๊ฐ ๋ค์งํ๋ ์๋ฉด์ ์ด๋ฏธ์ง๊ฐ ๋ท๋ฉด์ ๋น์ณ๋ณด์ด๊ณ , ํ์ ์์ผฐ์ ๋ ๊ธ์จ๋ ๊ฐ์ด ํ์ ๋๋ ๋ฑ ์๊ฐ์ง๋ ๋ชปํ ๋ถ๋ถ์์ ๋ํญ์ ๊ฒช์๋ค.
- ์ ๋๋ก ์ฌ์ฉํ๋ ค๋ฉด ์๊ฐ๋ณด๋ค ์ฐ์ต์ ์ข ๋ง์ด ํด์ผํ ๊ฒ ๊ฐ๋ค.
๐ HTML
<div class="flip-outer"> // ์ ์ฒด์ ์ธ ํ
<div class="flip-inner"> // ํ ๋ด๋ถ(์, ๋ท๋ฉด์ ๊ฐ์ง)
<!-- ์๋ฉด : ์ด๋ฏธ์ง -->
<img src="./img/profile.png" class="front">
<!-- ๋ท๋ฉด : ๋ด์ฉ -->
<div class="back">
<h4>Front-end Developer</h4>
<p>Bak Seoyun</p>
</div>
</div>
</div>
๐ CSS
.flip-outer {
width: 300px;
height: 300px;
}
.flip-inner {
width: 100%;
height: 100%;
position: relative; /* front, back ๋ถ๋ถ์ position ์ absolute ๋ก ์ฃผ๊ธฐ ์ํด position : relative ์ฌ์ฉ */
transition: all 1s;
transform-style: preserve-3d; /* ํ์ ํ ๋ 3d ์ฒ๋ผ ๋์ํ๊ฒ ํ๊ธฐ */
}
.flip-inner:hover {
transform: rotateY(180deg);
cursor: pointer;
}
.front {
width: 100%;
height: 100%;
position: absolute; /* position ์ absolute ๋ก ์ฃผ์ด์ผ ์๋ค๋ก ๋ฐฐ์น๊ฐ ๊ฐ๋ฅ */
backface-visibility: hidden; /* ๋ท๋ฉด์ ๊ทธ๋ฆผ ์ ๋น์น๊ณ ๊ธ์จ๋ง ๋์ค๊ฒ ํ๊ธฐ */
z-index: 1; /* ์๋ฉด์ ๊ทธ๋ฆผ์ด ์๋ณด์ด๋ ๊ฒฝ์ฐ ์ถ๊ฐ */
}
.back {
width: 100%;
position: absolute;
text-align: center;
transform: rotateY(180deg); /* Y์ถ์ ๊ธฐ์ค์ผ๋ก 180๋ ํ์ ์์ผฐ์ ๋ ๊ธ์จ๊ฐ ์ ๋๋ก ๋ณด์ด๋ ค๋ฉด, ๋ท๋ฉด์ด ๋ณด์ผ ๋๋ ๊ธ์จ๋ Y์ถ ๊ธฐ์ค์ผ๋ก ๋ค์งํ์์ด์ผ ํจ */
background: orange;
height: 100%;
border-radius: 50%;
display: flex; /* ๊ธ์๋ฅผ ์ธ๋ก ๊ธฐ์ค์ผ๋ก 1์ค๋ก ๊ฐ์ด๋ฐ ์ ๋ ฌํ๊ธฐ ์ํด flex ์์ฑ ์ฌ์ฉ */
flex-direction: column;
justify-content: center;
}
728x90
๋ฐ์ํ
'[๊ฐ๋ฐ] Practice > HTML CSS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[HTML/CSS] Admin Page ๋ง๋ค๊ธฐ (0) | 2022.03.02 |
---|---|
[HTML/CSS] position: sticky ํ์ฉํ๊ธฐ (0) | 2022.03.02 |
[HTML/CSS] grid-column, grid-row ์ผ๋ก ๋ ์ด์์ ๋ง๋ค๊ธฐ (0) | 2022.03.02 |
[HTML/CSS] Grid ๋ฐ์ํ ๋ ์ด์์ ๋ง๋ค๊ธฐ (0) | 2022.03.02 |
[HTML/CSS] transform & animation ์ผ๋ก ๋งค๋๋ฌ์ด ์ ๋๋ฉ์ด์ ๋ง๋ค๊ธฐ (0) | 2022.03.01 |