HTML,CSS

네카라쿠배 프론트엔드 취업완성 스쿨 2기 [Chapter.17] (CSS:속성-전환,변환)

리모찌 2023. 8. 24. 11:37

01.전환(Transition)

 

 

 

 

 

CSS 속성의 전환 효과를 지정

 

 

 

CSS속성의 시작과 끝을 지정(전환 효과) 하여 중간 값을 애니메이션 (단축 속성)

 

 

 

의미 기본값
transition-property 전환 효과를 사용할 속성 이름 all
transition-duration 전환 효과의 지속시간 설정 0s
transition-timing-function 타이밍 함수 지정 ease
transition-delay 전환 효과의 대기시간 설정 0s

 

 

 

 

transition- property

 

 

전환 효과를 사용할 속성 이름을 설정 (개별속성)

의미 기본값
all 모든속성에 적용 all
속성이름 전환 효과를 사용할 속성 이름  

 

 

 

 

 

 

 

 

 

 

transition-duration

 

전환 효과의 지속시간을 설정  (개별 속성)

 

 

 

 

의미 기본값
시간 전환 효과가 지속되는 시간 0s

 

 

 

 

transition-timing - function

 

타이밍 함수 (애니메이션 전환 효과를 계산하는 방법) 지정   (개별속성)

 

의미 기본값 Cubic Bezier 값
ease 빠르게-느리게 ease Cubic-bezier(.25 .1  ,  .251)
linear 일정하게   Cubic-bezier( 0, 0, 1 ,1)
ease-in 느리게-빠르게   Cubic-bezier( .42 ,  0  ,1   ,1)
ease-out 빠르게-느리게   Cubic-bezier(  0,0  ,  .58  ,1)
ease-in-out 느리게-빠르게-느리게   Cubic-bezier(.42,0,.58,1)
Cubic-bezier(n,n,n,n) 자신만의 값을 정의
(0~1)
   
steps(n) n번 분할된 애니메이션    

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

transition-delay

 

 

전환 효과가 몇 초 뒤에 시작할지 대기시간을 설정(개별 속성)

 

 

 

 

 

의미 기본값
시간 전환효과의 대기시간을 설정 0s

 

 

 

 


02.변환(Transformantion) 개요

 

 

 

요소의 변환 효과(변형) 을 지정 

 

transform: 변환함수1  변환함수2  변환함수3 ;



transform:  원근법 이동 크기 회전 기울임;

 

.box{

transform:rotate(20deg) translate(10x,0);

x:10px 

 y:0

 

translate() :이동    (함수)

 

rotate() :        (함수) 

 

deg:(degree의 약어), 각도 

 

 

 

 

 


03.변환 2D속성

 

☆☆☆

transform 2D변환 함수

 

의미 단위
translate(x,y) 이동(x,y축) 단위
translateX(x) 이동(X축) 단위
translateY(y) 이동(Y축) 단위
scale(x,y) 크기(x,y축) 없음(배수)
scaleX(x) 크기(x축) 없음(배수)
scaleY(y) 크기(y축) 없음(배수)
rotate(degree) 회전(각도) deg
skeww(x-deg,y-deg) 기울임(x,y,축) deg
skewX(x-deg) 기울임(x축) deg
skewY(y-deg) 기울임(y축) deg
martrix(n,n,n,n,n,n) 2차원 변환 효과 없음

 

 

skew: 요소를 비틀어버리는 개념 

 

 

 

 

 

 

 

 

<div class="box">123
  
  
</div>

 

 

 

 

 

CSS 코드 :

.box{
  width:200px;
  height:200px;
  background:tomato;
  display:flex;
  justify-content:center;
  align-items:center;
  font-size:30px;
  transition:1s;
  margin:100px;
 
/*   transform:translate(100px,30px);
 */
  /* 배치만 할거면 아래코드를 쓰면 됨
  position:relative;
  left:100px;
  top:30px;
   */
/*   translate()는 요소가 언제든지 이동할 수 있게끔함 */
}


.box:hover{
/* transform:scale(.8);   자연스럽게 늘어남 */
/*   transform:skewY(-45deg);  각도가 틀어지게됨 */
/*   transform:skewX(20deg); */
  transform:translate(20px,10px) skewX(20deg);
/* 함수는 띄어쓰기를 통해서 다중으로 입력이가능함 */
}

 

 

 

 

 

 

 

 

/*  */
  display:flex;
  /*  내부요소를 플렉스아이템으로 다룰 수있다.*/
  justify-content:center;
/*   플렉스 아이템들을 가로 방향으로 가운데 정렬 */

  align-items:center; 
/*   플렉스 아이템들을 세로 방향으로 가운데 정렬*/

 

 


04.변환 3D 속성

 

 

값(변환함수) 의미 단위
translate3d(x,y,z) 이동(x,y,z)축 단위
translateZ(z) 이동(Z)축 단위
scale3d(x,y,z) 크기(x,y,z)축 없음(배수)
sclaeZ(z) 크기(z)축 없음(배수)
rotate3d(x,y,z,a) 회전(X벡터,Y벡터,Z벡터,각도) 없음,deg
rotateX(x) 회전(x)축 deg
rotateY(y) 회전(y)축 deg
rotateZ(z) 회전(z)축 deg
perspective(n) 원근법(거리) 단위
matrix3d(n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n) 3차원 변환 효과 없음

 

z축은 일반적으로는 시각적으로 보이진 않음

 

그러므로 보이게하려면 ,  transform 을 이용한다.

 


05.변환속성- transform- origin

 

 

 

 

 

transform  변환 속성

 

 

속성 의미
transform-origin 요소 변환의 기준점을 설정
transform-style 3D 변환 요소의 자식 요소도 3D변환을 사용할지 설정
perspctive 하위 요소를 관찰하는 원근 거리를 설정
perspctive -origin 원근 거리의 기준점을 설정
backface-visibility 3D변환으로 회전된 요소의 뒷면 숨김을 설정

 

 

 

 

 

 

 

 

 

transform-origin

 

 

의미 기본값
X축 left,right,center,%,단위  50%
Y축 top,bottom,center,%,단위 50%
Z축 단위  

 

 

 

 

 


06.변환속성 - transform -style     

 

 

 

transform - style

 

 

3D 변환 요소의 자식요소도 3D변환을 사용할지 결정

의미 기본값
flat 자식요소의 3D변환을 사용하지 않음 flat
preserve-3d 자식요소의 3D변환을 사용함  

 

HTML

 

<div class="perspective">
  <div class="grandparent">
    <div class="parent">
      <img src="https://heropy.blog/css/images/logo.png" alt="HEROPY">
      
    </div>
  </div>
</div>

 

 

 

 

 

CSS

 

.perspective{
  width: 200px;
  perspective  : 500px; /* 이미지와의 거리  */
  padding: 70px;
  
}
.grandparent{
  width:200px;
  border:3px solid dodgerblue;
  transition:1s;
  transform:rotateX(-45deg);
  transform-style:preserve-3d;
/*
  transform-style:flat;    << 생략 되어있음 
  grandparent 요소의 자식요소에 변형효과를 입히더라도
  변형되지 않는것이 기본값으로 설정되어있음 */
  
}
.parent{
  width:200px;
  border:3px solid tomato;
  transition:1s;
  transform:rotateY(45deg);
  transform-style: preserve-3d;
  /*transform-style:preserve-3d: 
  자식요소에서 사용하던것을 명시하는것 
  
  자식요소에서 변환을 가져옴 */
}

img{
  width:200px;
  border:3px solid lightgray;
  transition:1s;
  transform:rotateX(45deg);
}

 

 

 

 

 

 

 

 

 


07.변환 속성  -perspective    

 

속성

 

 

하위요소를 관찰하는 원근 거리를 설정

 

의미 기본값
단위 px,em,cm 등 단위로 지정  

 

 

 

 

 

 

perspective  속성과 함수의 차이점 

 

 

속성/함수 적용대상 기준점 설정
perspective          속성 관찰 대상의 부모 요소 perspective-origin
transform:  perspective ()       함수  관찰 대상 transform - origin

 

 

perspective  속성은 관찰 대상의 부모(조상) 요소에 적용하여 하위 요소들을 관찰하는 원근 거리를 설정하며, 

 

transform:perspective()  변환 함수 관찰 대상에 직접 적용하여 그 대상을 관찰하는 원근 거리를 설정한다. 

 

 

 

 

 


08.변환 속성 - perspective - origin

 

 

 

 

원근 거리의 기준점을 설정 

 

의미 기본값
X축 left,right,center,%단위 50%
Y축 top,bottom,center,%단위 50%

 

 

 

 

 

50% 50% 는 x축과 Y축을 의미함 ,   X축과 Y축은 왼쪽위부터 오른쪽과 아래로 내려감 

 

 


09.변환 속성 -  backface-visibility 

 

 

 

 

3D 변환으로 회전된 요소의 뒷면 숨김을 설정 

 

 

의미 기본값
visible 뒷면 숨기지 않음 visible
hidden 뒷면 숨김   

 

 

 

 

 

 

 

 

backface-visiblity: hidden 사용시 

 

 

 

 

 

 

 


10.변환속성 - martrix() 

 

 

 

 

matrix(a,b,c,d,e,f)  6개의 인수를 받음 

 

요소의 2차변환 (Transforms) 효과를 지정 

 

scale()  ,  skew()   , translate()  그리고 roate() 를 지정 

 

 

요소에 일반변환 함수(2d,3d)를  사용하더라도 브라우저에 의해 martrix 함수로 계산되어 적용된다.   (2d 변환 함수는 martrix로, 3D 변환 함수는 matrix3D 로 )    따라서 일반적인 경우는 matrix 함수가 아닌 일반 함수를 사용하면 된다.

 

 

 

 

 

 

 

 

 

transform 2D변환 함수

 

의미 단위
translate(x,y) 이동(x,y축) 단위
translateX(x) 이동(X축) 단위
translateY(y) 이동(Y축) 단위
scale(x,y) 크기(x,y축) 없음(배수)
scaleX(x) 크기(x축) 없음(배수)
scaleY(y) 크기(y축) 없음(배수)
rotate(degree) 회전(각도) deg
skeww(x-deg,y-deg) 기울임(x,y,축) deg
skewX(x-deg) 기울임(x축) deg
skewY(y-deg) 기울임(y축) deg
martrix(n,n,n,n,n,n) 2차원 변환 효과 없음