CSS的2D与3D变换

我们观看的电影普遍分为2D电影与3D电影,而我们的css的转化方式也分为2D转换和3D转换

2D转换

通过translate rotate scale skew matrix等属性进行2D转化

translate() 方法 

translate() 方法从其当前位置移动元素(根据为 X 轴和 Y 轴指定的参数)。

<!DOCTYPE html>
<html>
<head>
<style> 
div {
  width: 300px;
  height: 100px;
  background-color: yellow;
  border: 1px solid black;
 
  transform: translate(50px,200px); 
}
</style>
</head>
<body>

<h1>translate() 方法</h1>
<p>translate() 方法从元素当前位置对其进行移动:</p>

<div>
该 div 元素从其当前位置向右移动 50 个像素,并向下移动 200个像素。
</div>

</body>
</html>

如图  在空白页面上向右移动50个像素,向下移动了200个像素 

rotate() 方法

rotate() 方法根据给定的角度顺时针或逆时针旋转元素。

<!DOCTYPE html>
<html>
<head>
<style>
div {
  width: 300px;
  height: 100px;
  background-color: yellow;
  border: 1px solid black;
}

div#myDiv {
  
  transform: rotate(100deg)
}
</style>
</head>
<body>

<h1>rotate() 方法</h1>
<p>rotation() 方法顺时针或逆时针旋转元素。</p>

<div>
这是一个普通的 div 元素。
</div>

<div id="myDiv">
这个 div 元素顺时针旋转 100 度。
</div>

</body>
</html>

如图 顺时针旋转了100度 当然如果想要逆时针选择只需要取负值即可。

scale() 方法 

scale() 方法增加或减少元素的大小(根据给定的宽度和高度参数)。

scaleX()增加或减小X方向上元素大小

scaleY()增加或减小Y方向上元素大小

<!DOCTYPE html>
<html>
<head>
<style>
div {
  margin: 150px;
  width: 200px;
  height: 100px;
  background-color: yellow;
  border: 1px solid black;
  
  transform: scale(2,3); 
}
</style>
</head>
<body>

<h1>scale() 方法</h1>
<p>scale() 方法增加或缩减元素的尺寸。</p>

<div>
该 div 元素是其原始宽度的两倍,是其原始高度的三倍。
</div>

</body>
</html>

skew() 方法

skew() 方法使元素沿 X 和 Y 轴倾斜给定角度。

skewX() 方法使元素沿 X 轴倾斜给定角度。

skewY() 方法使元素沿 Y 轴倾斜给定角度。

<!DOCTYPE html>
<html>
<head>
<style>
div {
  width: 300px;
  height: 100px;
  background-color: yellow;
  border: 1px solid black;
}

div#myDiv {
 
  transform: skew(20deg,10deg);
}
</style>
</head>
<body>

<h1>skew() 方法</h1>
<p>skew() 方法将元素倾斜到给定角度。</p>

<div>
这是一个普通的 div 元素。
</div>

<div id="myDiv">
该 div 元素沿 X 轴倾斜 20 度,沿 Y 轴倾斜 10 度。
</div>

</body>
</html>

 matrix() 方法

matrix() 方法把所有 2D 变换方法组合为一个。

matrix() 方法可接受六个参数,其中包括数学函数,这些参数使您可以旋转、缩放、移动(平移)和倾斜元素。

matrix(scaleX(),skewY(),skewX(),scaleY(),translateX(),translateY())

matrix其实就是2D转化的结合

3D转换

3D转换很多属性与2D属性相同 但3D转换主要注重空间转换 

rotateX() 方法

rotateX() 方法使元素绕其 X 轴旋转给定角度:

rotateY() 方法

rotateY() 方法使元素绕其 Y 轴旋转给定角度:

rotateZ() 方法

rotateZ() 方法使元素绕其 Z 轴旋转给定角度:

<!DOCTYPE html>
<html>
<head>
<style>
div {
  width: 300px;
  height: 100px;
  background-color: yellow;
  border: 1px solid black;
}
​
#myDiv {
  transform: rotateX(150deg);
}
</style>
</head>
<body>
​
<h1>rotateX() 方法</h1>
<p>rotationX() 方法将元素围绕其 X 轴旋转给定程度。</p>
​
<div>
这是一个普通的 div 元素。
</div>
​
<div id="myDiv">
该 div 元素旋转了 150 度。
</div>
​
<p><b>注释:</b>Internet Explorer 9(以及更早的版本)不支持 rotateX() 方法。</p>
​
</body>
</html>

 Y轴与Z轴同理

perspective 属性

设置元素被查看位置的视图:

​​<!DOCTYPE html>
<html>
<head>
<style>
#div1
{
position: relative;
height: 150px;
width: 150px;
margin: 50px;
padding:10px;
border: 1px solid black;
perspective:150;
-webkit-perspective:150;
}
​
#div2
{
padding:50px;
position: absolute;
border: 1px solid black;
background-color: yellow;
transform: rotateX(45deg);
-webkit-transform: rotateX(45deg); 
}
</style>
</head>
​
<body>
​
<div id="div1">
  <div id="div2">HELLO</div>
</div>
 
</body>
</html>

 

 perspective-origin 属性 

设置 3D 元素的基点位置:

 backface-visibility 属性

隐藏被旋转的 div 元素的背面:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值