transform(变形)和transform-origin(变形原点)的说明:
1、改变元素基点transform-origin
transform-origin是变形原点,也就是该元素围绕着那个点变形或旋转,该属性只有在设置了transform属性的时候起作用;
因为我们元素默认基点就是其中心位置,换句话说我们没有使用transform-origin改变元素基点位置的情况下,transform进行的rotate,translate,scale,skew,matrix等操作都是以元素自己中心位置进行变化的。
但有时候我们需要在不同的位置对元素进行这些操作,那么我们就可以使用transform-origin来对元素进行基点位置改变,使元素基点不在是中心位置,以达到你需要的基点位置。
下面我们主要来看看其使用规则:
transform-origin(X,Y):用来设置元素的运动的基点(参照点)。默认点是元素的中心点。其中X和Y的值可以是百分值,em,px,其中X也可以是字符参数值left,center,right;Y和X一样除了百分值外还可以设置字符值top,center,bottom 。
语法:-moz-transform-origin: [ |
| left |
center |
right ][ |
| top |
center |
bottom ] ?
transform-origin接受两个参数,它们可以是百分比,em,px等具体的值,也可以是left,center,right,或者 top,center,bottom等描述性参数 ;
top left | left top 等价于 0 0;
top | top center | center top 等价于 50% 0
right top | top right 等价于 100% 0
left | left center | center left 等价于 0 50%
center | center center 等价于 50% 50%(默认值)
right | right center | center right 等价于 100% 50%
bottom left | left bottom 等价于 0 100%
bottom | bottom center | center bottom 等价于 50% 100%
bottom right | right bottom 等价于 100% 100%
其中 left,center right是水平方向取值,对应的百分值为left=0%;center=50%;right=100%
而
top center bottom是垂直方向的取值,其中top=0%;center=50%;bottom=100%;
如果只取一个值,表示垂直方向值不变。
注:
transform-origin并不是transform中的属性值,他具有自己的语法。
但是他要结合transform才能起作用。
transform-Origin属性允许您更改转换元素的位置。
2D转换元素可以改变元素的X和Y轴。 3D转换元素,还可以更改元素的Z轴。
为了更好地理解Transform-Origin属性,请查看这个演示.
x-axis | 定义视图被置于 X 轴的何处。可能的值:
|
y-axis | 定义视图被置于 Y 轴的何处。可能的值:
|
z-axis | 定义视图被置于 Z 轴的何处。可能的值:
|
运行下方代码,你会有更清晰的认识
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> .a1{ position: relatve; height: 200px; width: 80px; background: springgreen; border:1px solid black; margin:100px 200px; color: white; font-size: 30px; } #b2{ position: absolute; background: rgba(0,0,225,0.5); height: 200px; width: 80px; color: white; transform:rotate(70deg) } </style> </head> <body> <div class="a1"> <div id="b2" style="transform-origin: left top;">左上</div> </div> <div class="a1"> <div id="b2" style="transform-origin: right top;">右上</div> </div> <div class="a1"> <div id="b2" style="transform-origin: center top;">中上</div> </div> <div class="a1"> <div id="b2" style="transform-origin: left bottom;">左下</div> </div> <div class="a1"> <div id="b2" style="transform-origin: left center;">左中</div> </div> <div class="a1"> <div id="b2" style="transform-origin: right top;">右上</div> </div> <div class="a1"> <div id="b2" style="transform-origin: right bottom;">右下</div> </div> <div class="a1"> <div id="b2" style="transform-origin: bottom center;">下中</div> </div> <div class="a1"> <div id="b2" style="transform-origin:center center;">中中</div> </div> </body> </html>
效果图如下