transform-origin(变形原点) 怎么用

2020-05-13 09:37:50

transform(变形)和transform-origin(变形原点)的说明:

     目前这两个属性得到了除去ie以外各个主流浏览器webkit,firefox,opera的支持,属性名分别为

     -webkit-transform,-moz-transform,-o-transform;

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,rightY和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 轴的何处。可能的值:

  • left

  • center

  • right

  • length

  • %

y-axis

定义视图被置于 Y 轴的何处。可能的值:

  • top

  • center

  • bottom

  • length

  • %

z-axis

定义视图被置于 Z 轴的何处。可能的值:

  • length

 

运行下方代码,你会有更清晰的认识

<!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>

效果图如下

 

 


  • 2017-04-12 23:11:59

    Android Studio签名打包的两种方式

    给我们自己开发的app签名,就代表着我自己的版权,以后要进行升级,也必须要使用相同的签名才行。签名就代表着自己的身份(即keystore),多个app可以使用同一个签名。

  • 2017-04-13 10:57:08

    webstorm 怎么关闭jshint

    You need to configure the inspections in Settings/Editor/Inspections, then in the list on the right, find JavaScript/JavaScript validity issues. That worked for me to remove the Chai warnings. (I am using the WebStorm 11 EAP at the moment.)

  • 2017-04-13 14:11:14

    MySQL中的describe关键字

    今天写代码的时候,有一个类的数据始终不能插入,老是提示在You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'describe, picPath1, picPath2, picPath3, picPath4, picPath5, agentId, belongStore' at line 1。因为用的是SSH进行插入,所以SQL语句不用自己写,检查了每个字段也没写错。

  • 2017-04-15 13:34:08

    Android官方技术文档翻译——清单合并

    一般情况下,有三种类型的清单文件需要合并成一个最终的应用程序清单,这里按照优先级顺序列出: Product flavors 和构建类型所指定的清单文件。 应用程序的主清单文件。 类库的清单文件。

  • 2017-04-15 21:47:44

    Android开发笔记——圆角和边框们

    在做Android界面开发时,我们往往希望它尽可能优美,尽可能显得专业。于是你看了看其他应用,哇,好多边框和圆角啊。你是不是也想给自己的应用加上边框和圆角效果?呃……那怎么做呢?如果你是从web前端跑到Android来的,那么我想你一定想到了不下三种解决方案。如用图片替代,用CSS3定义,用JS画。在Android中,其实也有类似的用法,本文将简单介绍两种Android圆角和边框的实现。

  • 2017-04-15 21:49:06

    Android样式的开发:Style篇

    前面铺垫了那么多,终于要讲到本系列的终篇,整合所有资源,定义成统一的样式。 哪些该定义成统一的样式呢?举几个例子吧: