css transform 속성
오늘은 html 요소의 위치를 이동시키거나 크기 조절, 회전시킬 수 있는 강력한 기능을 가진 transform이란
속성에 대해서 알아보도록 하겠습니다.
transform 속성은 4가지의 세부 속성으로 나눌 수 있습니다.
속성 | 설명 |
transform:scale() | X축 또는 Y축으로 확대/축소시킵니다. |
transform:rotate() | 지정 요소를 회전시킵니다. |
transform:translate() | 지정요소를 X축, Y축으로 이동시킵니다. |
transform:skew() | 지정 요소를 X축 또는 Y축으로 기울입니다. |
하나씩 예제 코드와 함께 살펴 보겠습니다.
1. transform:scale()
먼저 X축 또는 Y축으로 지정한 크기만큼 확대, 축소시키는 scale부터 알아보겠습니다.
/*기본 사용 방법*/
transform:scaleX(X축 배율); //X축으로 변화
transform:scaleY(Y축 배율); //Y축으로 변화
transform:scale(X축 배율, Y축 배율); //X축, Y축으로 변화
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>exhtml</title>
<style type="text/css">
div {
display: inline-block;
width: 100px;
height: 100px;
background-color: #CFFFE5;
font-size: 20px;
margin: 100px 100px 0 100px;
}
.transx:hover {
transform:scaleX(1.5)
}
.transy:hover {
transform:scaleY(1.5);
}
.trans:hover {
transform:scale(1.5, 3);
}
</style>
</head>
<body>
<div>
div1
</div>
<div class="transx">
div2
</div>
<div class="transy">
div3
</div>
<div class="trans">
div4
</div>
</body>
</html>
이렇게 4개의 div를 만들었고, 마우스를 div에 올렸을 때(hover) 각각 x축만, y축만, x,y축 둘 다 바뀌게
했습니다.
여기서는 하나 아셔야 하는 부분이, scale값으로 보면 px값이 아닌 1.5, 3 이런 숫자들을 썼습니다.
그리고 마우스를 올렸을 때 크기 변화를 보면, 값을 준 만큼 배율로 올라간다는 뜻이 됩니다.
그래서 보면 div2와 div3은 각각 X축, Y축으로 1.5배씩 늘어나고 div4는 X축으로는 1.5배,
Y축으로 3배가 올라간 것을 볼 수 있습니다.
2. transform:rotate()
이번에는 지정한 요소를 준 각도값만큼 회전시키는 rotate에 대해 알아 보겠습니다.
/*기본 사용 방법*/
transform:rotateX(X축 각도값);
transform:rotateY(Y축 각도값);
transform:rotate(X, Y축 각도값);
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>exhtml</title>
<style type="text/css">
div {
display: inline-block;
width: 100px;
height: 100px;
background-color: #CFFFE5;
font-size: 20px;
margin: 100px 100px 0 100px;
}
.transx:hover {
transform:rotateX(50deg)
}
.transy:hover {
transform:rotateY(50deg);
}
.trans:hover {
transform:rotate(40deg);
}
</style>
</head>
<body>
<div>
div1
</div>
<div class="transx">
div2
</div>
<div class="transy">
div3
</div>
<div class="trans">
div4
</div>
</body>
</html>
3. transform:translate()
지정 요소를 X나 Y축으로 이동시키는 translate를 알아보도록 하겠습니다.
/*기본 사용 방법*/
transform:translateX(X축 이동px값);
transform:translateY(Y축 이동px값);
transform:translate(X, Y축 이동px값);
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>exhtml</title>
<style type="text/css">
div {
display: inline-block;
width: 100px;
height: 100px;
background-color: #CFFFE5;
font-size: 20px;
margin: 100px 100px 0 100px;
}
.transx:hover {
transform:translateX(40px);
}
.transy:hover {
transform:translateY(-50px);
}
.trans:hover {
transform:translate(60px, -50px);
}
</style>
</head>
<body>
<div>
div1
</div>
<div class="transx">
div2
</div>
<div class="transy">
div3
</div>
<div class="trans">
div4
</div>
</body>
</html>
이 부분에서는 참고로 알아둬야 할 것은 X축에서는 양수면 오른쪽, 음수면 왼쪽으로 이동하고
Y축에서는 양수면 위쪽, 음수면 아래쪽으로 이동합니다.
4. transform:skew()
이 속성은 주어진 값(각도값)만큼 지정된 요소를 기울입니다.
/*기본 사용 방법*/
transform:skewX(X축 각도값);
transform:skewY(Y축 각도값);
transform:skew(X축 각도값, Y축 각도값);
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>exhtml</title>
<style type="text/css">
div {
display: inline-block;
width: 100px;
height: 100px;
background-color: #CFFFE5;
font-size: 20px;
margin: 100px 100px 0 100px;
}
.transx:hover {
transform:skewX(40deg);
}
.transy:hover {
transform:skewY(50deg);
}
.trans:hover {
transform:skew(30deg, 30deg);
}
</style>
</head>
<body>
<div>
div1
</div>
<div class="transx">
div2
</div>
<div class="transy">
div3
</div>
<div class="trans">
div4
</div>
</body>
</html>
각각 X축과 Y축, XY축에 기울기값을 주고 마우스를 올렸을 때의 변화 상태입니다.
오늘은 이렇게 transform을 다양하게 활용하는 방법에 대해 알아봤습니다.
transform을 이용하면 페이지에 다양한 효과를 넣을 수 있기에 이 속성도 잘 기억하셨으면
좋겠습니다.