转换pb_CSS3 转换

转换

转换 transform分为2D、3D转换

它是如何工作?

转换的效果是让某个元素改变形状,大小和位置。

你可以使用 2D 或 3D 转换来转换元素。

2D转换

CSS3 转换可以对元素进行移动、缩放、转动、拉长或拉伸。

e3f21b0ebf56f207493594197eb0c21a.png

代码示例:

div
{
	width:200px;
	height:100px;
	background-color:yellow;
	/* Rotate div */
	transform:rotate(30deg);
	-ms-transform:rotate(30deg); /* IE 9 */
	-webkit-transform:rotate(30deg); /* Safari and Chrome */
}

f5cb74c5955e5a75bc0d39f6bdfde3f0.png

浏览器兼容

f237c2e65f3dc4d2f847c140902cd7e3.png

属性

  1. translate(),根据左(X轴)和顶部(Y轴)位置给定的参数,从当前元素位置移动:

d96dc1537abc8a60a048db3553959b0e.png
div
{
	width:100px;
	height:75px;
	background-color:red;
	border:1px solid black;
}
div#div2
{
	transform:translate(50px,100px);
}

<div>Hello. This is a DIV element.</div>
<div id="div2">Hello. This is a DIV element.</div>

70ff24fd70e6937fd5f1bce76263b62d.png

2. rotate(),在一个给定度数顺时针旋转的元素。负值是允许的,元素逆时针旋转:

7c81949489dc15d16f08a2b24a8b3407.png
div
{
transform: rotate(30deg);
}

<div>你好。这是一个 DIV 元素。</div>
<div id="div2">你好。这是一个 DIV 元素。</div>

b7405c8021983262607e118b1e15f76d.png

3. scale(),该元素增加或减少的大小,取决于宽度(X轴)和高度(Y轴)的参数:

36d489f65c59dd7d1030e3bd98d6e846.png
div {
    margin: 150px;
    width: 200px;
    height: 100px;
    background-color: yellow;
    border: 1px solid black;
    border: 1px solid black;
    transform: scale(2,3);
}

<p>scale() 方法用于增加或缩小元素的大小。</p>
<div>
div 元素的宽度是原始大小的两倍,高度是原始大小的三倍。
</div>

5036331bddd0a95721235af12cfce931.png

4. skew()

transform:skew(<angle> [,<angle>]);

包含两个参数值,分别表示X轴和Y轴倾斜的角度,如果第二个参数为空,则默认为0,参数为负表示向相反方向倾斜。

  • skewX(<angle>);表示只在X轴(水平方向)倾斜。
  • skewY(<angle>);表示只在Y轴(垂直方向)倾斜。
div
{
    width:100px;
    height:75px;
    background-color:red;
    border:1px solid black;
}
div#div2
{
    transform:skew(30deg,20deg);
}

<div>Hello. This is a DIV element.</div>
<div id="div2">Hello. This is a DIV element.</div>

f775aaa3771a046bdd060dd613332f49.png

5. matrix()

matrix()方法和2D变换方法合并成一个。

matrix 方法有六个参数,包含旋转,缩放,移动(平移)和倾斜功能:

div
{
transform:matrix(0.866,0.5,-0.5,0.866,0,0);
}

<div>Hello. This is a DIV element.</div>
<div id="div2">Hello. This is a DIV element.</div>

8088cdd89b1089a42cef39714889ae3f.png

2D 转换方法总结

  • matrix(n,n,n,n,n,n) 定义 2D 转换,使用六个值的矩阵
  • translateX(n) 定义 2D 转换,沿着 X 轴移动元素
  • translateY(n) 定义 2D 转换,沿着 Y 轴移动元素
  • translate(x,y) 定义 2D 转换,沿着 X 和 Y 轴移动元素
  • scaleX(n) 定义 2D 缩放转换,改变元素的宽度
  • scaleY(n) 定义 2D 缩放转换,改变元素的高度
  • scale(x,y) 定义 2D 缩放转换,改变元素的宽度和高度
  • rotate(angle) 定义 2D 旋转,在参数中规定角度
  • skewX(angle) 定义 2D 倾斜转换,沿着 X 轴
  • skewY(angle) 定义 2D 倾斜转换,沿着 Y 轴
  • skew(x-angle,y-angle) 定义 2D 倾斜转换,沿着 X 和 Y 轴

3D 转换

CSS3 允许使用 3D 转换来对元素进行格式化

浏览器兼容

86fe8f51d80a299b58a024dfc74394e7.png

属性

  1. rotateX() 围绕其在一个给定度数X轴旋转的元素

8b365546a169cef7a337e27ad1a0bd91.png
div
{
    width:100px;
    height:75px;
    background-color:red;
    border:1px solid black;
}
div#div2
{
    transform:rotateX(120deg);
}

<p><b>注意:</b> Internet Explorer 9 (以及更早版本的浏览器) 和 Opera 不支持 rotateX 方法.</p>
<div>Hello. This is a DIV element.</div>
<div id="div2">Hello. This is a DIV element.</div>

f18965e516c60aaeb84f4e9970aeba57.png

2. rotateY() 方法

f0674c1e4ccfc6ce4026c91538ce9754.png
div
{
    width:100px;
    height:75px;
    background-color:red;
    border:1px solid black;
}
div#div2
{
    transform:rotateY(130deg);
}

513456ddc3d83710e971e2ce58858621.png

3D 转换方法总结

  • translate3d(x,y,z) 定义 3D 转化
  • translateX(x) 定义 3D 转化,仅使用用于 X 轴的值
  • translateY(y) 定义 3D 转化,仅使用用于 Y 轴的值
  • translateZ(z) 定义 3D 转化,仅使用用于 Z 轴的值
  • scale3d(x,y,z) 定义 3D 缩放转换
  • scaleX(x) 定义 3D 缩放转换,通过给定一个 X 轴的值
  • scaleY(y) 定义 3D 缩放转换,通过给定一个 Y 轴的值
  • scaleZ(z) 定义 3D 缩放转换,通过给定一个 Z 轴的值
  • rotate3d(x,y,z,angle) 定义 3D 旋转
  • rotateX(angle) 定义沿 X 轴的 3D 旋转
  • rotateY(angle) 定义沿 Y 轴的 3D 旋转
  • rotateZ(angle) 定义沿 Z 轴的 3D 旋转
  • perspective(n) 定义 3D 转换元素的透视视图。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值