클리엘
CLIEL LAB
클리엘
전체 방문자
오늘
어제
  • 분류 전체보기 (513)
    • Mobile (47)
      • Kotlin (47)
    • Web (84)
      • NestJS (9)
      • HTML5 & CSS3 (38)
      • Javascript (20)
      • TypeScript (6)
      • JQuery (11)
    • .NET (300)
      • C# (83)
      • ASP.NET (67)
      • Windows API for .NET (128)
    • Server (53)
      • SQL Server (10)
      • MariaDB (18)
      • Windows Server (6)
      • node.js (19)
    • System (12)
      • 작업LOG (12)
    • Review (11)
    • ETC (6)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 블로그 정리

인기 글

태그

  • exception
  • asp.net core
  • LINQ
  • CSS3
  • MariaDB
  • NestJS
  • Kotlin
  • JavaScript
  • c#
  • Windows API
  • node.js
  • HTML5
  • 변수
  • android
  • android studio
  • .NET
  • asp.net core web api
  • Entity Framework
  • ASP.NET
  • jQuery

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
클리엘

CLIEL LAB

[HTML5&CSS3] 3차원 구현
Web/HTML5 & CSS3

[HTML5&CSS3] 3차원 구현

2020. 1. 10. 15:24
728x90

2차원 구현에서 transform속성에 translate, scale, rotate 등의 함수를 사용했었는데 3차원 구현에는 translate3 d, scale3 d, rotate3d와 같은 함수가 사용됩니다.

 

translate3d(x, y, z) 지정된 좌표만큼 개체를 이동시킵니다. (px와 같은 단위사용)
translateX(x) X축만큼 개체를 이동시킵니다.
translateY(y) Y축만큼 개체를 이동시킵니다.
translateZ(z) Z축만큼 개체를 이동시킵니다.
scale3d(x, y, z) 지정된 좌표로 크기를 늘리거나 축소합니다. (소수점이나 정수사용)
scaleX(x) X축만큼 크기를 늘리거나 축소합니다.
scaleY(y) Y축만큼 크기를 늘리거나 축소합니다.
scaleZ(z) Z축만큼 크기를 늘리거나 축소합니다.
rotate3d(x, y, z, angle) 해당 각도로 개체를 회전시킵니다.(deg와 같은 단위 사용)
rotateX(x) X축으로 지정된 각도만큼 개체를 회원시킵니다.
rotateY(y) Y축으로 지정된 각도만큼 개체를 회원시킵니다.
rotateZ(z) Z축으로 지정된 각도만큼 개체를 회원시킵니다.

 

2차원과 비교해 함수명에 3d가 생겼고 Z축이 추가되었습니다. 3d구현에 Z 축이 활용되는 것입니다.

 

3d효과를 간단히 살펴보기 위해 먼저 다음과 같이 div를 생성하고

<!DOCTYPE html>
<html>
<title>Web Page Design</title>
<head>
<style type="text/css">
div
{
   width:100px;
   height:75px;
   background-color:red;
   border:1px solid black;
}
</style>
</head>
<body>
    <div>Hello, World!</div>
</body>
</html>

생성한 div에 rotate3d함수를 적용합니다.

<style type="text/css">
div
{
   width:100px;
   height:75px;
   background-color:red;
   border:1px solid black;
   
   transform: rotate3d(0, 1, 0, 30deg);
}
</style>

하지만 이 상태에서는 div의 변화된 모습을 확인할 수 없습니다. 소위 투영점(perspective)을 설정을 해야하는 것입니다.

<style type="text/css">
body {
    perspective: 800px;    
}

div
{
   width:100px;
   height:75px;
   background-color:red;
   border:1px solid black;
   
   transform: rotate3d(0, 1, 0, 30deg);
}
</style>

투영점은 관찰자시점에 바라보는 시각입니다. 대부분 부모 요소(예제에서는 body)에 적용하며 예제에서 800px를 설정했으므로 대상 개체를 800px 떨어진 시점에서 바라보는 시각적 처리를 수행하게 됩니다.

 

728x90
저작자표시 비영리 변경금지

'Web > HTML5 & CSS3' 카테고리의 다른 글

[HTML5&CSS3] Less 스타일시트 - 개요  (0) 2020.01.10
[HTML5&CSS3] 규칙(@-rule)  (0) 2020.01.10
[HTML5&CSS3] 2차원 구현  (0) 2020.01.10
[HTML5&CSS3] 키 프레임(keyframes)을 통한 애니메이션 구현  (0) 2019.12.25
[HTML5&CSS3] 변형 속성  (0) 2019.12.19
    'Web/HTML5 & CSS3' 카테고리의 다른 글
    • [HTML5&CSS3] Less 스타일시트 - 개요
    • [HTML5&CSS3] 규칙(@-rule)
    • [HTML5&CSS3] 2차원 구현
    • [HTML5&CSS3] 키 프레임(keyframes)을 통한 애니메이션 구현
    클리엘
    클리엘
    누구냐 넌?

    티스토리툴바