CSS3 2D 3D

2D 转换 transform

可简单理解为变形

1. 移动 translate

可以改变元素在页面中的位置,类似定位

transform: translate(50px,100px);

transform: translateX();

transform: translateY();

重点

  • 定义2D转换中的移动,沿X、Y轴移动元素
  • 优点:不会影响其他元素位置
  • 百分比单位是相对于自身元素的 translate(50%,50%);
  • 对行内标签没有效果

2. 旋转 rotate

让元素在二维平面内顺时针或者逆时针旋转

transform: rotate(50deg);

重点

  • rotate的单位是度数deg
  • 顺时针:角度为正,逆时针:角度为负
  • 默认旋转的中心点是元素的中心点

设置转换中心点:

transform-origin:x y;

可以给x y设置像素或者方位名词(top bottom left right center)

3. 缩放scale

transform:scale(x,y);

重点

transform:scale(2,2); 宽和高都放大2倍,等价于transform:scale(2);

优点:可以设置中心点缩放,默认以中心点缩放,不影响其他盒子

2D 转换 综合写法

格式:transform:translate() rotate() scale();

顺序会影响转换的效果(如,先旋转会改变坐标轴方向)

当同时有位移和其他属性时,最好将位移放在最前面

动画

先定义动画 再调用动画

1. 用keyframes定义动画

@keyframes move {
            0% {
                transform: rotateY(0);
            }
            100% {
                transform: rotateY(360deg);
            }
        }

@keyframes move {
           from {
                transform: rotateY(0);
            }
            to {
                transform: rotateY(360deg);
            }
        }

2. 元素使用动画

 div {
            animation-name: move;
			animation-duration:3s;
        }

动画常见属性

 

animation-timing-function: ease; 默认是ease (以低速开始,然后加快,在结束前变慢)

linear匀速

steps()指定了时间函数中的间隔数量(步长)

动画简写属性

animation:动画名称 持续时间 运动曲线 何时开始 播放次数 是否反方向 动画起始或者结束的状态;

3D 转换 transform

三维坐标系

 

1. 移动 translate3d

3D移动在2D的基础上多了一个可移动方向,z轴

transform: translateX(); x轴上

transform: translateY(); y轴上

transform: translateZ(); z轴上

transform: translate3d(x,y,z);

2. 透视 perspective

透视也称视距:人眼到屏幕的距离

距离视觉点越近的在电脑平面成像越大,越远成像越小

透视的单位是像素px

重点:透视写在被观察元素的父盒子上

3. 旋转 rotate3d

transform: rotateX(45deg); 沿X轴正方向旋转45度

transform: rotateY(45deg);沿Y轴正方向旋转45度

transform: rotateY(45deg);沿Z轴正方向旋转45度

transform: rotate3d(x,y,z,deg);沿自定义的轴正方向旋转

4. 3D呈现 transform-style

控制子元素是否开启三维立体环境

transform-style:flat; 子元素不开启3d立体空间,默认

transform-style:preserve-3d; 子元素开启3d立体空间

代码添加在父元素上,但影响子元素

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值