티스토리 뷰
- 가시성 속성
어떤 요소를 보이게 하거나 반대로 보이지 않게 할 때 사용한다.
ex ) visibility : hidden; (자리를 차지함)
- 디스플레이 속성
가시성 속성과 반대로 요소가 차지하는 공간도 사라진다.
ex ) display : none; (존재자체가 없음)
display
- none : 사라진다.
- inline : 가로배치 (width , height X)
- blcok : 세로 배치 (width, height O)
- inline-block : 가로배치 + width , height (가로배치+크기조절)
- 블록 형식
다음 요소가 항상 새로운 행에서 시작되며 화면의 최대 너비만큼 차지한다.
- 인라인 형식
다음 요소가 이전 요소 바로 뒤에 배치되며 최소한의 너비만 가진다.
예제 8-5
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="display1.css"></link>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h3>[인라인 형식]</h3>
<p>세계적인 IT기업에는 <strong>Google</strong><Strong>Apple</Strong><strong>Oracle</strong>등이 있습니다.</p>
<h3>[블록 형식으로 변환한 후]</h3>
<p class="bk">세계적인 IT기업에는 <strong>Google</strong><Strong>Apple</Strong><strong>Oracle</strong>등이 있습니다.</p>
</body>
</html>
CSS
p strong{
color: blue;
border: 1px dotted red;
}
p.bk strong{
display: block;
color:blue;
border: 1px dotted red;
}
결과
예제 8-6
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="display2.css"></link>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h4>[블록 형식]</h4>
<ul>
<li><a href="http://www.google.com">Google</a></li>
<li><a href="http://www.apple.com">Apple</a></li>
<li><a href="http://www.oracle.com">Oracle</a></li>
</ul>
<h4>[인라인 형식으로 변환한 후]</h4>
<ul class="in">
<li><a href="http://www.google.com">Google</a></li>
<li><a href="http://www.apple.com">Apple</a></li>
<li><a href="http://www.oracle.com">Oracle</a></li>
</ul>
</body>
</html>
CSS
ul.in li{
display: inline;
background-color: yellow;
border: 1px solid;
border-color: blue;
margin: 3px;
padding: 5px;
}
결과
2차원 변환 함수의 종류
함수 | 설명 | 사용 예 |
translate() | 평행 이동 변환 | transform:translate(50px, 100px); |
rotate() | 회전 변환 | transform:rotate(20deg); |
scale() | 크기 변환 | transform:scale(2,3); |
skewX() | X축 기울기 변환 | transform:skewX(20deeg); |
skewY() | Y축 기울기 변환 | transform:skewY(20deg); |
skew() | X,Y축 기울기 변환 | transform:skew(20deg,10deg); |
matrix() | 2차원 행렬 구조 변환 | transform:matrix(1,-0.3,0,1,0,0); |
예제 8-9
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="translate.css">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div id="box1">박스 1</div>
<div id="box2">박스 2</div>
</body>
</html>
CSS
div{
width:200px;
height: 100px;
border:1px dotted black;
background-color: yellow;
transition: all 0.8s
}
div#box2:hover{
transform:translate(100px, 50px);
}
결과
예제 8-10
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="rotate.css">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div>기본 박스 (0deg)</div>
<div id="box1">박스 1 (45deg)</div>
<div id="box2">박스 2 (-90deg)</div>
</body>
</html>
CSS
div{
width: 100px;
height: 100px;
border: 1px dotted black;
background-color: lightgreen;
margin: 30px;
}div#box1:hover
{
transform: rotate(45deg);
transition: all 1.5s;
}
div#box2:hover{
transform: rotate(-90deg);
transition: all 0.8s;
}
결과
예제 8-11
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="scale.css">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div>기본 박스 (0deg)</div>
<div id="box1">박스 1 (0.5배 축소)</div>
<div id="box2">박스 2 (가로 2배, 세로 1.5배 확대)</div>
</body>
</html>
CSS
div{
width: 100px;
height: 100px;
border: 1px dotted black;
background-color: skyblue;
margin: 50px;
}
div#box1:hover{
transform: scale(0.5, 0.5);
transition: all 1.5s;
text-align: center;
}
div#box2:hover{
transform: scale(2, 1.5);
transition: all 2.0s;
}
결과
예제 8-12
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="skew.css">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div>기본 박스</div>
<div id="box1">박스 1</div>
<div id="box2">박스 2</div>
<div id="box3">박스 3</div>
</body>
</html>
CSS
div{
width: 100px;
height: 100px;
border: 1px dotted black;
background-color: lightgreen;
margin: 50px;
}
div#box1{
transform:skewX(50deg);
}
div#box2{
transform:skewY(-30deg);
}
div#box3{
transform:skew(20deg, 10deg);
}
결과
예제 8-14
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="compound.css">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div>기본 박스</div>
<div id="box1">박스 1</div>
<div id="box2">박스 2</div>
</body>
</html>
CSS
div{
width: 50px;
height: 50px;
background-color: silver;
border: 1px solid black;
text-align: center;
}
div#box1{
transform: rotate(45deg) scale(1.5) skew(30deg) translate(50px);
}
div#box2{
transform: translate(200px) rotate(-90deg) scale(2);
}
결과
예제 8-15
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="apply.css">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div>
<div class="c1">박스 안에 마우스를 올리면 무엇이 보일까요?</div>
</div>
</body>
</html>
CSS
div{
width: 200px;
height: 200px;
border: 1px solid black;
background-color: yellow;
}
.c1:hover{
transform-origin: 50% 50% 0px;
transform: translate(0px, 0px) rotate(-45deg) scale(0.7);
background: green;
transition: all 2s;
}
결과
3차원 변환 함수의 종류
함수 | 설명 | 사용 예 |
perspective(depth) | 3차원 관점 변환 | transform:perspective(100px); |
translate3d(x,y,z) | 3차원 평행 이동 변환 | transform:translate3d(50px,100px,150px); |
translateX(x) | 3차원 평행 이동 (x축) | transform:translateX(50px); |
translateY(y) | 3차원 평행 이동 (y축) | transform:translateY(50px); |
translateZ(z) | 3차원 평행 이동 (z축) | transform:translateZ(50px); |
scale3d(x,y,z) | 3차원 크기 변환 | transform:scale3d(2,2,2); |
scaleX(x) | 3차원 크기 변환 (x축) | transform:scaleX(2); |
scaleY(y) | 3차원 크기 변환 (y축) | transform:scaleY(2); |
scaleZ(z) | 3차원 크기 변환 (z축) | transform:scaleZ(2); |
rotate3d(x,y,z,angle) | 3차원 회전 변환 | transform:rotate3d(1,1,1,45deg); |
rotateX(angle) | 3차원 회전 변환 (x축) | transform:rotateX(30deg); |
rotateY(y) | 3차원 회전 변환 (y축) | transform:rotateY(30deg); |
rotateZ(z) | 3차원 회전 변환 (z축) | transform:rotateZ(30deg); |
예제 8-16
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="16_3.css">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div class="container">
<div class="transformed">박스1</div>
</div>
<p></p>
<div class="container">
<div class="transformed2">박스2</div>
</div>
</body>
</html>
CSS
div{
background-color: lightskyblue;
height: 150px;
width: 150px;
}
.container{
background-color: lightgoldenrodyellow;
border: 1px solid black;
}
.transformed:hover{
backface-visibility: visible;
transform-origin: 50% 42%;
transform: perspective(500px) rotateY(50deg) rotate(0deg);
}
.transformed2:hover{
backface-visibility: visible;
transform-origin: 50% 42%;
transform: perspective(500px) rotateY(0deg) rotate(45deg);
}
결과
예제 8-17
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="transition1.css">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div>마우스를 올리면 박스가 늘어납니다.</div>
</body>
</html>
CSS
div{
width: 100px;
height: 100px;
background: yellow;
border: 1px solid red;
transition: width 2s, height 5s;
}
div:hover{
width: 300px;
height: 200px;
}
결과
예제 8-18
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="transition2.css">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div>마우스를 올리면 박스가 회전하면서 커집니다.</div>
</body>
</html>
CSS
div{
margin: 50px;
width: 100px;
height: 100px;
background: yellow;
border: 1px solid red;
transition: width 3s, height 3s, border 3s, transform 3s, background 3s;
}
div:hover{
width:200px;
height: 200px;
border: 3px solid blue;
background: green;
transform: rotate(360deg);
}
결과
- 변화 속성
- transition-property : 변화 효과를 적용할 속성들 나열
- transition-duration : 변화가 지속되는 시간 지정
- transition-timing-function : 변화의 시작과 끝 타이밍 지정
- transition-delay : 변화 효과가 지연되는 시간 지정
예제8-19
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="19_property.css">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div>마우스를 올리면 여러 속성이 변합니다.</div>
</body>
</html>
CSS
div{
width:100px;
height:100px;
background:orange;
transition-property: width, background, color;
}
div:hover{
width: 400px;
background:blue;
color:white;
}
결과
예제 8-20
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="tduration.css">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div>색상이 10초 동안 서서히 변합니다.</div>
</body>
</html>
CSS
div{
width: 280px;
height: 100px;
background:orange;
transition: background;
transition-duration: 10s;
}
div:hover{
background:blue;
}
결과
- 속성값
- linear : 처음부터 끝까지 같은 속도
- ease : 느리게 싲가하여 점점 빨라져싿가 느리게 끝난다.
- ease-in : 느리게 시작하여 점점 빨라지다가 일정한 속도
- ease-out : 일정한 속도의 등속 변화로 시작해서 점점 느려지면서 끝난다.
- ease-in-out : 느리게 시작하여 느리게 끝난다.
- cubiv-bezier(n,n,n,n) : 처음과 끝의 속도를 설정한다.
예제 8-21
HTML
CSS
결과
- 키프레임 정의
- 애니메이션 종류
animation-none | @keyframes 애니메이션의 이름 지정 |
animation-duration | 애니메이션의 지속 시간을 초 단위로 설정 |
animation-timing-function | 애니메이션의 시작과 끝 타이밍 지정 |
animation-delay | 애니메이션 시작을 지연시키는 시간을 초 단위로 설정 |
animation-iteration-count | 애니메이션이 반복 재생되는 횟수를 설정 |
animation-direction | 애니메이션의 방향을 설정 |
animation-fill-mode | 애니메이션을 재생하고 있지 않을 때 속성 값을 설정 |
animation-play-state | 애니메이션 재생 상태를 설정 |
예제 8-24
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="animation.css">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div>애니메이션 박스</div>
<p><strong>참고 : </strong>IE9 이하 혹은 낮은 버전에서는 지원하지 않습니다.</p>
</body>
</html>
CSS
div{
width: 100px;
height: 100px;
background:red;
position:relative;
animation: boxmove 5s linear alternate;
}
@keyframes boxmove{
from{left: 0px;}
to{left:300px;}
}
결과
예제 8-25
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="adelay.css">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div id="box1">애니메이션 박스1</div>
<div id="box2">애니메이션 박스2</div>
<p><strong>참고 : </strong>IE9 이하 혹은 낮은 버전에서는 지원하지 않습니다.</p>
</body>
</html>
CSS
div{
width: 100px;
height: 50px;
background: red;
position:relative;
animation: boxmove 5s linear infinite alternate;
}
#box1{
animation-delay: 3s;
}
#box2{
animation-delay: 5s;
}
@keyframes boxmove{
from{left: 0px;}
to{left:300px}
}
결과
- animation-direction 속성값의 종류
속성값 | 설명 |
normal | 기본 설정값이다. 애니메이션이 순방향으로 재생된다. |
reverse | 애니메이션이 역방향으로 재생된다. |
alternate | 애니메이션이 양방향으로 재생된다. 홀수 : 순방향으로 재생된다. 짝수 : 역방향으로 재생된다. |
alternate-reverse | 애니메이션이 양방향으로 재생된다. 홀수 : 역방향으로 재생된다. 짝수 : 순방향으로 재생된다. |
예제 8-26
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="26_adirection.css">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div id="box1">애니메이션 박스1</div>
<div id="box2">애니메이션 박스2</div>
<p><strong>참고 : </strong>IE9 이하 혹은 낮은 버전에서는 지원하지 않습니다.</p>
</body>
</html>
CSS
div{
width: 100px;
height: 50px;
background: red;
position: relative;
animation: boxmove 5s linear infinite;
}
#box1{
animation-delay: 3s;
animation-direction: reverse;
}
#box2{
animation-delay: 5s;
animation-direction: alternate-reverse;
}
@keyframes boxmove{
from{left: 0px;}
to{left:300px}
}
결과
예제 8-27
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="acount.css">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div id="box1">애니메이션 박스1</div>
<div id="box2">애니메이션 박스2</div>
<p><strong>참고 : </strong>IE9 이하 혹은 낮은 버전에서는 지원하지 않습니다.</p>
</body>
</html>
CSS
div{
width: 100px;
height: 50px;
background: red;
position: relative;
animation: boxmove 5s;
}
#box1{
animation-delay: 3s;
animation-direction: reverse;
animation-iteration-count: 2;
}
#box2{
animation-delay: 5s;
animation-direction: alternate-reverse;
animation-iteration-count: 5;
}
@keyframes boxmove{
from{left: 0px;}
to{left:300px}
}
결과
예제 8-28
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="afunction.css">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div id="box1">애니메이션 박스1</div>
<div id="box2">애니메이션 박스2</div>
<div id="box3">애니메이션 박스3</div>
<p><strong>참고 : </strong>IE9 이하 혹은 낮은 버전에서는 지원하지 않습니다.</p>
</body>
</html>
CSS
div{
width: 100px;
height: 50px;
background: red;
position: relative;
animation: boxmove 5s alternate;
}
#box1{
animation-delay: 1s;
animation-iteration-count: 3;
animation-timing-function: ease;
}
#box2{
animation-delay: 2s;
animation-iteration-count: 3;
animation-timing-function: linear;
}
#box3{
animation-delay: 3s;
animation-iteration-count: 3;
animation-timing-function: ease-out;
}
@keyframes boxmove{
from{left: 0px;}
to{left:300px}
}
결과
예제 8-29
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="29_astate.css">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div id="box1">애니메이션 박스1</div>
<div id="box2">애니메이션 박스2</div>
<div id="box3">애니메이션 박스3</div>
<p><strong>참고 : </strong>IE9 이하 혹은 낮은 버전에서는 지원하지 않습니다.</p>
</body>
</html>
CSS
div{
width: 100px;
height: 50px;
background: red;
position: relative;
animation: boxmove 5s infinite alternate;
}
#box1{
animation-delay: 1s;
animation-timing-function: ease;
}
#box2{
animation-delay: 2s;
animation-timing-function: linear;
}
#box3{
animation-delay: 3s;
animation-timing-function: ease-out;
}
@keyframes boxmove{
from{left:0px;}
to{left:300px;}
}
div:hover{
animation-play-state: paused;
}
결과
예제 8-30
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="30_effect1.css">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div id="div1">왼쪽 박스</div>
<div id="div2">오른쪽 박스</div>
</body>
</html>
CSS
div{
width:100px;
height: 100px;
position: absolute;
animation-duration: 5s;
animation-timing-function: linear;
animation-delay: 2s;
animation-iteration-count: infinite;
animation-play-state: running;
}
#div1{
background-color: blue;
animation-direction: normal;
animation-name: L-box;
}
#div2{
background-color: yellow;
animation-direction: reverse;
animation-name: R-box;
}
@keyframes L-box{
0%{left:0px;}
50%{left:200px;}
75%{left:0px;}
}
@keyframes R-box{
0%{left:400px;}
50%{left:200px;}
75%{left:400px;}
}
결과
예제 8-31
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="31_effect2.css">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div></div>
</body>
</html>
CSS
div{
width: 100px;
height: 100px;
background: red;
position:relative;
animation: colorbox 5s infinite;
animation-direction: alternate;
}
@keyframes colorbox{
from{background:red; left:0px; top:0px;}
25%{background:orange; left:300px; top:0px;}
75%{background:yellow; left:300px; top:300px;}
to{background:red; left:0px; top:0px;}
}
결과
예제 8-32
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="32_effect3.css">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div id="b1"></div>
<div id="b2"></div>
<div id="b3"></div>
<div id="b4"></div>
<div id="b5"></div>
</body>
</html>
CSS
@keyframes bounce{
from, to{ bottom:0px;
animation-timing-function:ease-out;
}
50%{
bottom:200px;
animation-timing-function: ease-in;
}
}
div{
position: absolute;
width: 20px;
height: 20px;
border-radius: 10px;
animation-name: bounce;
animation-iteration-count: infinite;
}
div:hover{
animation-play-state: paused;
}
#b1{
left:10px;
background: red;
animation-duration: 5s;
}
#b2{
left:50px;
background: blue;
animation-duration: 10s;
}
#b3{
left:90px;
background: green;
animation-duration: 8s;
}
#b4{
left:130px;
background: silver;
animation-duration: 8s;
}
#b5{
left:170px;
background: black;
animation-duration: 1s;
}
결과
'코딩 > HTML&CSS' 카테고리의 다른 글
[6주 3일차] HTML&CSS (0) | 2023.11.15 |
---|---|
[6주 2일차]HTML&CSS (0) | 2023.11.14 |
[6주차 1일] CSS (1) | 2023.11.13 |
[5주차 5일] CSS (0) | 2023.11.10 |
[5주차 4일] CSS (0) | 2023.11.09 |
- Total
- Today
- Yesterday