⛏️/HTML | CSS
[CSS] 13. 반응형 - transform
defyuil
2024. 1. 10. 15:13
HTML
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>transform</title>
<link href="style.css" rel="stylesheet">
<link href="transform.css" rel="stylesheet">
</head>
<body>
<h1>transform - 변형</h1>
<h1>transform 변형함수들</h1>
<ul>
<li>transform:translate(); 위치 변형</li>
<li>transform:scale(); 크기 변형</li>
<li>transform:rotate(); 회전 변형</li>
<li>transform:skew(); 기울기 변형</li>
</ul>
<h2>transform-origin: ; 변형의 기준점 변경(정중앙이 기본)</h2>
<ul>
<li>left/center/right top/center/bottom</li>
<li>Xn Yn (n은 음수 가능. px, %, em ...)</li>
</ul>
<section id="sec01">
<h2>1. transform:translate(Xn,Yn);
위치 변형 (n은 음수 가능)</h2>
<p class="tr01">transform:translateX(1000px);</p>
<p class="tr02">transform:translateX(-500px);</p>
<p class="tr03">transform:translateY(-250px);</p>
<p class="tr04">transform:translateY(250px);</p>
<p class="tr05">transform:translate(1000px,200px);</p>
<p class="tr06">transform:translate(100%,100%);</p>
<div class="cnt">
[center] <br>
1. position: absolute; <br>
left: 50%; top:50%;<br>
2. transform:translate(-50%,-50%);
</div>
</section>
<section id="sec02">
<h2>2. scale(Xn,Yn); 크기 변형
(n이 1보다 작으면 축소, 크면 확대) </h2>
<p class="sc01">transform:scaleX(0.3); <br>
<img src="img/tea.jpg"> </p>
<p class="sc02">transform:scaleX(1.5); <br>
<img src="img/tea.jpg"> </p>
<p class="sc03">transform:scaleY(0.3); <br>
<img src="img/tea.jpg"> </p>
<p class="sc04">transform:scaleY(2); <br>
<img src="img/tea.jpg"> </p>
<p class="sc04-1">
<b>transform-origin: left bottom ;</b>
transform:scaleY(2); <br>
<img src="img/tea.jpg"> </p>
<p class="sc05">transform:scale(); <br>
<img src="img/tea.jpg"> </p>
<p class="sc06">transform:scale(); <br>
<img src="img/tea.jpg"> </p>
</section>
<section id="sec03">
<h2>3. transform:rotate(ndeg); 회전 변형
(n은 음수 가능)</h2>
<p class="ro01">transform:rotateX(80deg);<br>
<img src="img/tea.jpg"> </p>
<p class="ro02">transform:rotateY(80deg);<br>
<img src="img/tea.jpg"> </p>
<p class="ro03">transform:rotateX(180deg);<br>
<img src="img/tea.jpg"> </p>
<p class="ro04">transform:rotateY(180deg);<br>
<img src="img/tea.jpg"> </p>
<p class="ro04-1">transform:rotateY(180deg);<br>
<img src="img/tea.jpg"> </p>
<p class="ro05">transform:rotate(-360deg);<br>
<img src="img/tea.jpg"> </p>
<p class="ro05-1">transform:rotate(-360deg);<br>
<img src="img/tea.jpg"> </p>
<p class="ro05-2">transform:rotate(-360deg);<br>
<img src="img/tea.jpg"> </p>
<p class="ro06">transform:rotate(1080deg);<br>
<img src="img/tea.jpg"> </p>
</section>
<section id="sec04">
<h2>4. transform:skew(ndeg); 기울기 변형
(n은 음수 가능)</h2>
<p class="sk01">transform:skewX(30deg);<br>
<img src="img/tea.jpg"> </p>
<p class="sk02">transform:skewX(-30deg);<br>
<img src="img/tea.jpg"> </p>
<p class="sk03">transform:skewY(30deg);<br>
<img src="img/tea.jpg"> </p>
<p class="sk04">transform:skewY(-30deg);<br>
<img src="img/tea.jpg"> </p>
<p class="sk05">transform:skew(30deg,30deg);<br>
<img src="img/tea.jpg"> </p>
<p class="sk06">transform:skew(-30deg,-30deg);<br>
<img src="img/tea.jpg"> </p>
</section>
</body>
</html>
CSS
@charset "UTF-8";
/* 1. transform:translate(); 위치 */
#sec01>p {border: 1 solid;
width: 200px;}
.tr01 {transform:translateX(1000px);}
.tr02 {transform:translateX(-500px);}
#sec01:hover>.tr02 {
transform:translateX(0);
transition:1s;}
.tr03 {transform:translateY(-250px);}
.tr04 {transform:translateY(250px);}
#sec01:hover>.tr05 {
transform:translate(1000px,200px);
transition:1s;}
.tr06 {transform:translate(100%,100%);}
#sec01:hover>.tr06 {
transform:translate(0,0);}
#sec01 {position: relative;}
.cnt {border: 1px solid;
background-color:#ccc;
width: 50%; height: 100px;
text-align: center;
position: absolute;
left: 50%; top:50%
/* 상위요소 기준으로 정중앙(시작점) */;
transform:translate(-50%,-50%)
/* 요소 자신의 크기 절반만큼 위와 왼쪽으로
이동해서 항상 상위요소의 정중앙 */; }
/* 2. transform:scale(); 크기 변형 */
#sec02>p {border: 1px solid;
width: 320px;
display: inline-block;
margin: 30px;}
.sc01 {transform:scaleX(0.3);}
.sc02 {transform:scaleX(1.5);}
#sec02:hover>.sc03 {
transform:scaleY(0.3);
transition:1s;}
#sec02:hover>.sc04 {
transform:scaleY(2);
transition:1s;}
.sc04-1 {
transform-origin: left bottom ;}
#sec02:hover>.sc04-1 {
transform:scaleY(2);
transition:1s;}
#sec02:hover>.sc05 {
transform:scale(0.5,0.5);
transition:1s;}
.sc06 { overflow: hidden;}
.sc06>img {opacity:0.5;
transform:scale(3,3); }
.sc06:hover>img {
opacity:1;
transform:scale(1,1);
transition:1s;}
/* 3. transform:rotate(); 회전 */
#sec03>p {border: 1px solid;
width: 320px;
display: inline-block;
margin: 30px;}
.ro01 {transform:rotateX(80deg);}
.ro02 {transform:rotateY(80deg);}
#sec03:hover>.ro03 {
transform:rotateX(180deg);
transition:1s;}
#sec03:hover>.ro04 {
transform:rotateY(180deg);
transition:1s;}
.ro04-1 {transform-origin: 0 0;}
#sec03:hover>.ro04-1 {
transform:rotateY(180deg);
transition:1s;}
#sec03:hover>.ro05 {
transform:rotate(-360deg);
transition:1s;}
.ro05-1 {transform-origin: 0 0;}
#sec03:hover>.ro05-1 {
transform:rotate(-360deg);
transition:1s;}
.ro05-2 {transform-origin:
-1000px -200px;}
#sec03:hover>.ro05-2 {
transform:rotate(-360deg);
transition:1s;}
#sec03:hover>.ro06>img {
transform:rotate(1080deg);
transition:2s;}
.ro06 {overflow: hidden;}
/* 4. transform:skew(); 기울기 */
#sec04>p {border: 1px solid;
width: 320px;
display: inline-block;
margin: 30px;}
.sk01 {transform:skewX(30deg);}
.sk02 {transform:skewX(-30deg);}
.sk03 {transform:skewY(30deg);}
.sk04 {transform:skewY(-30deg);}
.sk05 {transform:skew(30deg,30deg);}
#sec04:hover>.sk06 {
transform:skew(-30deg,-30deg);
transition:1.2s;}