티스토리 뷰

Hover를 이용하여 칵테일 느낌이 나는 페이지를 만들어보겠습니다

공부한 영상에서는 display : grid로 처리해주었습니다.

하지만 아직 grid 개념이 많이 미숙하여 flex로 처리해주었습니다.

grid 공부하겠습니다.

 

 

박스 위에 마우스 커서를 올리면  박스 번호가 올라오고 아래에 CLICK ME라는 버튼이 나오도록 해주었습니다. 

 

 

 HTML

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width">
    <title>repl.it</title>
    <link href="style.css" rel="stylesheet" type="text/css" />
  </head>
  <body>
    <script src="script.js"></script>
 
<div class="outlet">
    <div class="box">
        <div class="content">
            <h1> 01 </h1>
        <h2> Section One </h2>
    <p>
        CSS Grid Layout is the most powerful layout system available in CSS. It is a 2-dimensional system, meaning it can handle both columns and rows, unlike flexbox which is largely a 1-dimensional system
    </p>
    <a href="#"> CLICK ME </a>
        </div> <!--  content -->
    </div> <!--  box -->
 
 
        <div class="box">
        <div class="content">
            <h1> 02 </h1>
        <h2> Section Two </h2>
    <p>
        CSS Grid Layout is the most powerful layout system available in CSS. It is a 2-dimensional system, meaning it can handle both columns and rows, unlike flexbox which is largely a 1-dimensional system
    </p>
        <a href="#"> CLICK ME </a>
        </div> <!--  content -->
    </div> <!--  box -->
 
 
 
 
        <div class="box">
        <div class="content">
            <h1> 03 </h1>
        <h2> Section Three </h2>
    <p>
        CSS Grid Layout is the most powerful layout system available in CSS. It is a 2-dimensional system, meaning it can handle both columns and rows, unlike flexbox which is largely a 1-dimensional system
    </p>
        <a href="#"> CLICK ME </a>
        </div> <!--  content -->
    </div> <!--  box -->
 
 
 
</div> <!--  outlet -->
  </body>
</html>
 

css

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
*{
    padding: 0;
    margin: 0;
}
body{
    position: relative;
    background-color: #222;
    min-height: 100vh;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #FFF;
}
 
.outlet{
    position: relative;
    display: flex;
    width: 90%;
}
 
.box {
    position: relative;
    border: 1px solid #000;
    margin: 0 50px;
    height: 500px;
    width: 350px;
    overflow: hidden;
}
.box .content{
    padding: 20px;
}
 
.box .content h1{
    position: relative;
    color: #fff;
    font-size: 150px;
    align-items: center;
    text-align: center;
    transform: translateY(150px);
    transition: .5s;
    visibility: hidden;
    opacity: 0;
}
 
.box:hover h1{
    transform: translateY(-50px);
    visibility: visible;
    opacity: 1;
}    
 
 
.box .content p,h2{
    transform: translateY(-50px);
}
 
 
.box .content h2{
    margin-bottom: 20px;
}
 
.box .content a{
    position: absolute;
    text-decoration: none;
    font-weight: bold;
    color: #fff;
    border: 1px solid#fff;
    padding: 10px 20px;
    transform: translateY(30px);
    transition: .5s;
    visibility: hidden;
    opacity: 0;
}
 
.box .content a:hover{
    color: #222;
    border: 1px solid #222;
    background-color: #fff;
}
 
.box:hover .content a{
    transform: translateY(-20px);
        visibility: visible;
    opacity: 1;
}    
 
.box .content p{
    font-size: 17px;
    font-family: sans-serif;
}
 
 
/* bos\x decoration*/
 
.outlet .box:before{
    content: '';
    position: absolute;
    top:-2px;
    left:-2px;
    right:-2px;
    bottom:-2px;
    z-index: -1;
}
 
.outlet .box:nth-child(1):before {
    background: linear-gradient(315deg , #ff0057 ,#e64a19);
}
 
.outlet .box:nth-child(2):before {
    background: linear-gradient(315deg , #89ff00 ,#00bcd4);
}
 
.outlet .box:nth-child(3):before {
    background: linear-gradient(315deg , #e91e63 ,#5d02ff);
}
 
 
 
 
 

 

 

완성 링크 : https://skewd-hover-effect--kind.repl.co/

 

 

align-items 개념과 justify-content 개념이 조금씩 잡히고 있다. 아래 영상을 바탕으로 개념을 좀 더 잡아가자.

2 , 3번 봐도 아깝지 않은 시간이다.    https://www.youtube.com/watch?v=eprXmC_j9A4&t=1159s

 

댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함