CSS3变形之transform-origin属性

transform-origin属性


默认情况,变形的原点在元素的中心点,或者是元素X轴和Y轴的50%处,如下图所示:

原点

没有使用transform-origin改变元素原点位置的情况下,CSS变形进行的旋转、移位、缩放等操作都是以元素自己中心(变形原点)位置进行变形的。但很多时候需要在不同的位置对元素进行变形操作,我们就可以使用transform-origin来对元素进行原点位置改变,使元素原点不在元素的中心位置,以达到需要的原点位置。

其基本语法如下所示:

transform-origin:[<percentage> | <length> | left | center | right | top | bottom] | [<percentage> | <length> | left | center | right] | [[<percentage> | <length> | left | center | right] && [<percentage> | <length> | top | center | bottom]] <length> ?

上面的语法让人看得发晕,其实可以将语法拆分成:

/*只设置一个值的语法*/
transform-origin: x-offset
transform-origin: offset-keyword
/*设置两个值的语法*/
transform-origin:x-offset  y-offset
transform-origin:y-offset  x-offset-keyword
transform-origin:x-offset-keyword  y-offset
transform-origin:x-offset-keyword  y-offset-keyword
transform-origin:y-offset-keyword  x-offset-keyword
/*设置三个值的语法*/
transform-origin:x-offset  y-offset  z-offset
transform-origin:y-offset  x-offset-keyword  z-offset
transform-origin:x-offset-keyword  y-offset  z-offset
transform-origin:x-offset-keyword  y-offset-keyword  z-offset
transform-origin:y-offset-keyword  x-offset-keyword  z-offset

transform-origin属性值可以是百分比、em、px等具体的值,也可以是top、right、bottom、left和center这样的关键词。

其各个值的取值简单说明如下:

  • x-offset:用来设置transform-origin水平方向X轴的偏移量,可以使用和值,同时也可以是正值(从中心点沿水平方向X轴向右偏移量),也可以是负值(从中心点沿水平方向X轴向左偏移量)。
  • y-offset:用来设置transform-origin属性在垂直方向Y轴的偏移量,可以使用和值,同时可以是正值(从中心点沿垂直方向Y轴向下的偏移量),也可以是负值(从中心点沿垂直方向Y轴向上的偏移量)。
  • z-offset:用来设置3D变形中transform-origin远离用户眼睛视点的距离,默认值z=0,其取值可以,不过在这里将无效。

  • offset-keyword:是top、right、bottom、left或center中的一个关键词,可以用来设置transform-origin的偏移量。

  • x-offset-keyword:是left、right或center中的一个关键词,可以用来设置transform-origin属性值在水平X轴的偏移量。
  • y-offset-keyword:是top、bottom或center中的一个关键词,可以用来设置transform-origin属性值在垂直方向Y轴的偏移量。

为了方便记忆,可以把关键词和百分比值对比起来记:

 top = top center = center top = 50% 0
 right = right center = center right = 100%或(100% 50%)
 bottom = bottom center = center bottom = 50% 100%
 left = left center = center left = 0或(0 50%)
 center = center center = 50%或(50% 50%)
 top left = left top = 0 0
 right top = top right = 100% 0
 bottom right = right bottom = 100% 100%
 bottom left = left bottom = 0 100%

所谓一图胜千言,接下来就通过图片看看transform-origin取值不一样时的效果吧:

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

参考:

http://www.w3cplus.com/css3/transform-origin.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值