CSS

써클하버이벤트(4)

은찡안찡 2022. 11. 18. 15:35

 

 

구조

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Circle Hover Effect</title>
    <link rel="shortcut icon" href="imgs/favicon.ico">
    <link rel="stylesheet" href="css/reset.css">
    <link rel="stylesheet" href="css/circle04.css">
</head>
<body>
    <ul class="ch-grid">
        <li>
            <div class="ch-item ch-bg-1">
                <div class="ch-info-wrap">
                    <div class="ch-info">
                        <div class="ch-info-front ch-bg-1"></div>
                        <div class="ch-info-back">
                            <h3>bear poster</h3>
                            <p>by Jonathan<a href="#">more</a></p>
                        </div>
                    </div><!-- end:ch-info -->
                </div><!-- end:ch-info-wrap -->
            </div><!-- end:ch-item -->
        </li>

        <li>
            <div class="ch-item ch-bg-2">
                <div class="ch-info-wrap">
                    <div class="ch-info2">
                        <div class="ch-info-front ch-bg-2"></div>
                        <div class="ch-info-back">
                            <h3>dri poster</h3>
                            <p>by Jonathan<a href="#">more</a></p>
                        </div>
                    </div><!-- end:ch-info -->
                </div><!-- end:ch-info-wrap -->
            </div><!-- end:ch-item -->
        </li>

        <li>
            <div class="ch-item ch-bg-3">
                <div class="ch-info-wrap">
                    <div class="ch-info3">
                        <div class="ch-info-front ch-bg-3"></div>
                        <div class="ch-info-back">
                            <h3>devi poster</h3>
                            <p>by Jonathan<a href="#">more</a></p>
                        </div>
                    </div><!-- end:ch-info -->
                </div><!-- end:ch-info-wrap -->
            </div><!-- end:ch-item -->
        </li>
    </ul>
</body>
</html>

 

RESET

@charset "utf-8";

@import url('https://fonts.googleapis.com/css2?family=Merriweather:wght@300;700&family=Open+Sans:wght@300;600&display=swap');
/*font-family: 'Merriweather', serif; font-family: 'Open Sans', sans-serif;*/

* {margin:0; padding:0; box-sizing:border-box;}
body {
    font-family: 'Open Sans', sans-serif; font-size:15px; color:#333;font-weight:300; background:url(../imgs/circle/bg.jpg);
}
h1,h2,h3,h4,h5,h6 {
    font-family: 'Merriweather', serif; font-weight:700;
    text-transform:uppercase;
}
ul li {float:left; list-style:none;}
a {display:block; text-decoration:none; border:0; outline:0;}
.ch-grid {width:780px; margin:100px auto; text-align:center;}
.ch-grid::after {clear:both;}
.ch-grid li {width:220px; height:220px; margin:0 20px;}

 

CSS

@charset "utf-8";

.ch-item {
    position:relative; width:100%; height:100%; border-radius:50%;
    box-shadow:0 2px 3px rgba(0,0,0,0.3);
}

.ch-info-wrap, .ch-info, .ch-info > div, .ch-info-back h3, .ch-info-back p, .ch-info2, .ch-info2 > div, .ch-info3, .ch-info3 > div {position:absolute;}
.ch-info-wrap {
    left:20px; top:20px; width:180px; height:180px; border-radius:50%;
    background:url(../imgs/circle/bg.jpg);
    box-shadow:0 0 0 20px rgba(255,255,255,0.2),
        0 0 10px rgba(115,115,25,0.8);
    perspective:800px; /*z 축 원근감(회전하는 반경)을 지정: 수치가 낮을 수록 왜곡이 심해진다.*/
    transition:all 0.6s ease;
}
.ch-info, .ch-info > div, .ch-info2, .ch-info2 > div, .ch-info3, .ch-info3 > div {width:100%; height:100%; border-radius:50%;}


/*===== .ch-info =====*/
.ch-info {
    transform-style:preserve-3d;
    /*자식요소에 부모요소에 적용한 perspective를 전달한다. 부모 요소에 perspective 속성을 사용해도 손자에게는 적용되지 않으므로 손자 요소까지 perspective 속성을 유지시켜주는 transform-style 속성을 작성한다.*/
    transition:all 0.4s ease-in;
}
.ch-info > div {
    color:#FFF;
    backface-visibility:hidden; /*박스의 뒷면을 안보이게 설정*/
    -webkit-backface-visibility:hidden; /*safari, chrome*/
    -moz-backface-visibility:hidden; /*firefox*/
    -ms-backface-visibility:hidden; /*Microsoft Edge, IE*/
    -o-backface-visibility:hidden; /*opera*/
}
.ch-info .ch-info-back {
    background:#000;
    transform:rotate3d(0,1,0,180deg);
}
.ch-info .ch-info-back h3 {top:45px; width:100%;}
.ch-info .ch-info-back p {
    top:90px; width:100%; padding:20px 0;
    font-size:13px; border-top:1px dashed rgba(255,255,255,0.4);
}
.ch-info .ch-info-back p a {
    padding-top:10px; color:#FFF222; font-weight:600;
    text-transform:uppercase;
}
.ch-info .ch-info-back p a:hover {color:#FC0;}

/*.ch-item:hover*/
.ch-item:hover .ch-info {transform:rotate3d(0,1,0,-180deg);}
.ch-item:hover .ch-info-wrap {
    box-shadow:0 0 0 2px rgba(255,255,255,0.6),
        0 0 20px rgba(115,115,25,0.4);
}


/*===== .ch-info2 =====*/
.ch-info2 .ch-info-front {transition:all 0.4s ease;}
.ch-info2 .ch-info-back {
    color:#F8F8F8; background:#000;
    transform:scale(2.5); opacity:0;
    transition:all 0.2s ease-in 0.3s;
}
.ch-info2 .ch-info-back h3, .ch-info2 .ch-info-back p {width:100%;}
.ch-info2 .ch-info-back h3 {top:45px; font-size:18px;}
.ch-info2 .ch-info-back p {
    top:90px; padding:20px 0; font-size:13px;
    border-top:1px dashed rgba(255,255,255,0.4);
}
.ch-info2 .ch-info-back p a {
    padding-top:10px; color:#FFF222; font-weight:600;
    text-transform:uppercase;
}
.ch-info2 .ch-info-back p a:hover {color:#FC0;}

/*.ch-item:hover*/
.ch-item:hover .ch-info2 .ch-info-front {transform:scale(0); opacity:0;}
.ch-item:hover .ch-info2 .ch-info-back {transform:scale(1); opacity:1;}


/*===== .ch-info3 =====*/
.ch-info3 {transform-style:preserve-3d;}
.ch-info3 .ch-info-front {
    transform-origin:50% 100%; /*박스의 기준점을 변경*/
    transition:all 0.4s ease; z-index:9;
}
.ch-info3 .ch-info-back {
    color:#F8F8F8; background:rgba(0,50,255,0.4);
}
.ch-info3 .ch-info-back h3, .ch-info3 .ch-info-back p {width:100%;}
.ch-info3 .ch-info-back h3 {top:45px; font-size:18px;}
.ch-info3 .ch-info-back p {
    top:90px; padding:20px 0; font-size:13px;
    border-top:1px dashed rgba(255,255,255,0.4);
}
.ch-info3 .ch-info-back p a {
    padding-top:10px; color:#FFF222; font-weight:600;
    text-transform:uppercase;
}
.ch-info3 .ch-info-back p a:hover {color:#FC0;}

/*.ch-item:hover*/
.ch-item:hover .ch-info3 .ch-info-front {transform:rotate3d(1,0,0,-180deg);}



.ch-bg-1 {background:url(../imgs/circle/10.jpg) no-repeat center center;}
.ch-bg-2 {background:url(../imgs/circle/11.jpg) no-repeat center center;}
.ch-bg-3 {background:url(../imgs/circle/12.jpg) no-repeat center center;}

'CSS' 카테고리의 다른 글

써클하버이벤트(3)  (0) 2022.11.18
써클하버이벤트(2)  (0) 2022.11.18
써클하버이벤트(1)  (0) 2022.11.18
아코디언 메뉴  (0) 2022.11.18
탭버튼  (0) 2022.11.18