230921 TIL Chapter 46. CSS ( 변형 관련 스타일 )

최규연·2023년 9월 21일
0

TIL

목록 보기
49/57

변형 관련 스타일은 이미지로 보면 이해가 안되고 직접 코드를 치고 실행시키며 해봐야 이해가 빠르기에 배운 코드만 올려두겠다!!!
물론 주석 보면 어떤 느낌인지 알지도...???

	<h1>2차원 변형</h1>

    <h3>좌우로 움직이기</h3>
    <img src="../imagens/animal/고.jpg" class="trans-x-2d">

    <h3>상하로 움직이기</h3>
    <img src="../imagens/animal/고.jpg" class="trans-y-2d">
    
    <h3>상하로 움직이기</h3>
    <img src="../imagens/animal/고.jpg" class="trans-xy-2d">

    <h3>가로 방향 확대/축소</h3>
    <img src="../imagens/animal/고.jpg" class="trans-x-scale-2d">

    <h3>세로 방향 확대/축소</h3>
    <img src="../imagens/animal/고.jpg" class="trans-y-scale-2d">

    <h3>대각선 확대/축소</h3>
    <img src="../imagens/animal/고.jpg" class="trans-xy-scale-2d">

    <h3>요소 회전</h3>
    <img src="../imagens/animal/고.jpg" class="trans-rotate">

    <hr>
    <hr>
    <hr>

    <h1>3차원 변형</h1>

    <h3>x, y, z축 이동</h3>
    <img src="../imagens/img/8.jpg" class="trans-3d">
    
    <h3>x축 회전</h3>
    <img src="../imagens/img/7.jpg" class="trans-rotate-x-3d">
    
    <h3>y축 회전</h3>
    <img src="../imagens/img/7.jpg" class="trans-rotate-y-3d">
    
    <h3>z축 회전</h3>
    <img src="../imagens/img/7.jpg" class="trans-rotate-z-3d">
    
    <hr>
    <hr>
    <hr>
    <h1>변형 사이에 지연 시간 추가하기(transition)</h1>

    <div class="box test1"></div>
    <hr>

    <div class="box test2">여기가 위</div>

    <h4>스타일 변형 진행속도 조정</h4>
    <div class="box test3">여기가 위</div>
    
    <hr>
    <h4>스타일 변형 딜레이 (일정 시간 후 변형)</h4>
	<div class="box test4">여기가 위</div>
img {
    width: 250px;
    height: auto;
}

/* transform : 병형과 관련된 속성 */

/* CSS 속성 작성시 크로스 브라우저(브라우저가 달라지는 경우) 처리방법
-mx- : 마이크로 소프트(익스플로어, 엣지)
-webkit- : 크롬, 사파리
-o- : 오페라
-moz- : 파이어폭스
*/

/* 음수, 양수로 방향지정 */

.trans-x-2d:hover {
    -ms-transform: translateX(100px);
    -webkit-transform: translateX(100px);
    transform: translateX(100px);
}

/* 상하 이동 */
.trans-y-2d:hover {
    -ms-transform: translateY(100px);
    -webkit-transform: translateY(100px);
    transform: translateY(100px);
}

/* 대각선 이동 */
.trans-xy-2d:hover {
    -ms-transform: translate(100px, -100px);
    -webkit-transform: translate(100px, -100px);
    transform: translate(100px, -100px);
}

/* scale(배율) */
/* 가로방향 확대/축소 */
.trans-x-scale-2d:hover {
    transform: scaleX(2);
    margin-left: 200px;
}

/* 세로방향 확대/축소 */
.trans-y-scale-2d:hover {
    transform: scaleY(2);
    margin-left: 200px;
}

/* 대각선 확대/축소 */
.trans-xy-scale-2d:hover {
    transform: scale(2,2);
    margin-left: 200px;
}

/* 요소 회전 */
.trans-rotate:hover {
    transform: rotate(180deg);
}

/* x, y, z축 이동 */
.trans-3d:hover {
    /* perspective(z축의 길이) : 원근법 적용 */
    transform: perspective(300px) translate3d(50px, 50px, 100px);
}

.trans-rotate-x-3d {
    transform: perspective(300px) rotateX(45deg);
}

.trans-rotate-y-3d {
    transform: perspective(300px) rotateY(45deg);
}

.trans-rotate-z-3d {
    transform: perspective(300px) rotateZ(45deg);
}

/* --------------------------------------------- */

/* transition */

.box {
    width: 150px;
    height: 150px;
    border: 1px solid black;
    background-color:  red;

    /* 스타일이 변경되는 시간 지정 */
    transition-duration: 0.5s;
}

.test1:hover {
    background-color: yellow;
}

.test2:hover {
    transition-duration: 1s;
}

.test2:hover {
    transform: rotate(360deg);
    background-color: skyblue;

    /* 테두리 모서리 곡률 속성 */
    border-radius: 50%;
}

.test3 {
    transition-duration: 3s;

    /* ease(기본값) / ease-in / ease-in-out / liner : 등속*/
    transition-timing-function: ease-in-out;
}

.test3:hover {
    background-color: green;
    transform: rotate(720deg);
}

.test4 {
    transition-delay: 2s;
}

.test4:hover {
    transform: translateX(100px);
}

0개의 댓글