zheng 3 dni temu
rodzic
commit
d0c13273d0
2 zmienionych plików z 126 dodań i 0 usunięć
  1. 57 0
      css3/11.transform.html
  2. 69 0
      css3/12.transform3d.html

+ 57 - 0
css3/11.transform.html

@@ -0,0 +1,57 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>Document</title>
+    <style>
+        * {
+            margin: 0;
+            padding: 0;
+        }
+        #box {
+            width: 300px;
+            height: 300px;
+            background: plum;
+            transform: scale(2);
+        }
+    </style>
+</head>
+<body>
+     <!-- 
+        transform 用于实现变形(形变位不变)IE8及以下不支持
+        元素本身的位置(大小、坐标)没有发生变化,并且不占位
+        Transform:translate | scale | skew | rotate
+        功能:transform主要是用来对元素进行2d或3d变换的
+        Translate:是用来做位移的
+        Scale:是用于缩放的
+        Skew:是用于倾斜的
+        Rotate:是用于旋转的
+        直接使用以上属性是2d变换,在单词后面加上3d是做3d变换;
+
+        1. transform:skew()/skewX()/skewY();
+            skew:用于完成倾斜(扭曲)
+            deg:表示度数,默认情况下表示x轴倾斜
+            x y 不区分大小写
+            skew(15deg,30deg)两个参数表示x y轴同时变形
+            skew不支持z轴。最多只能传两个参数
+        2. transform:rotate(45deg)  默认是Z轴
+            rotate:用于旋转,单位deg
+            transform:rotateX(45deg)沿x轴水平旋转
+            transform:rotateY(45deg)沿Y轴垂直旋转
+            transform:rotateZ(45deg)沿Z轴旋转
+        3.  transform:scale:表示缩放
+            transform:scale(2)表示宽度和高度一起缩放
+            transform:scaleX(2)=transform:scale(2,1):表示宽度为原来的2倍
+            transform:scaleY(2)=transform:scale(1,2):表示高度为原来的2倍
+        4.  transform:translate 位移
+            如果只有一个值,默认表示X轴位移
+            X轴:正值表示向右移动,负值表示向左移动
+            Y轴:正值表示向下移动,负值表示向上移动
+            transform:translateX(300px)表示元素向右移动300px
+            translateY(200px)==translate(0,200px)表示元素向下移动200px
+
+     -->
+    <div id="box"></div>
+</body>
+</html>

+ 69 - 0
css3/12.transform3d.html

@@ -0,0 +1,69 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>Document</title>
+    <style>
+        * {
+            margin: 0;
+            padding: 0;
+        }
+        body {
+            perspective: 1000px;
+        }
+        #contain {
+            height: 100vh;
+            display: flex;
+            align-items: center;
+            justify-content: center;
+            /* 让子元素开启3D样式 */
+            transform-style: preserve-3d;
+            /* 透视距离 800~1200最佳 */
+            transform: perspective(1000px); 
+            transform-origin: left top;
+        }
+        #box {
+            width: 300px;
+            height: 300px;
+            background: plum;
+            /* transform: scaleZ(2); */
+            /* transform: translateZ(100px); */
+            transform: rotate3d(0,0.4,1,30deg);
+            /* transform: translate3d(100px,100px,100px); */
+            /* transform: translateZ(100px); */
+            /* transform:scale3d(1,1,0.5) */
+        }
+        
+    </style>
+</head>
+
+<body>
+
+    <!-- 
+        Transform-origin:X,Y;
+        功能:用来定义rotate旋转,skew倾斜和scale缩放的中心点;
+        说明:X,Y可以是具体的数值,也可以是百分比还可以是,left,center,top,bottom
+        1.左上角为(0,0)点 第一个参数代表x方向 第二个参数代表y方向;
+        2.如果设置左上角或者中心位置也可以使用关键字;
+        transform-origin:left top;
+        transform-origin:center center;
+
+        transform-style:preserve-3d;//开启3D透视
+        transform:perspective(1000px);//透视距离 (800-1200)
+
+        1.translate3d()括号中必须有3个参数:加快CPU的运行
+          transform:translateZ();近大远小
+        2.transform:rotate3d(4个参数)   rotate3d(1 1 1,30deg); 1是要旋转的意思,0是不旋转
+          rotate3d后面必须指清旋转的3个方向
+        3. transform:scale3d(2,2,1<0-1取值范围>)如果有3d限定 必须传3个参数
+
+
+     -->
+    <div id="contain">
+        <div id="box"></div>
+    </div>
+</body>
+
+</html>