• CSS transform(变形)和transform-origin(变形原点)


    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%;

    如果只取一个值,表示垂直方向值不变

    例子:

    初始态:

    .heart{ position:relative; width:100px; height:80px; background:blue;}
    
    .heart:before{ position:absolute; content:""; left:50px;top:0;width:50px;height:80px; background:red;border-radius: 50px 50px 0 0;}

    取基点为左下角,逆时针转45deg

    .heart{ position:relative; width:100px; height:80px; background:blue;}
    .heart:before{ position:absolute; content:""; left:50px;top:0;width:50px;height:80px; background:red;border-radius: 50px 50px 0 0; -webkit-transform: rotate(-45deg); -webkit-transform-origin: 0 100%;}

    取右下角为基点旋转:

    .heart{ position:relative; width:100px; height:80px; background:blue;}
    .heart:before{ position:absolute; content:""; left:50px;top:0;width:50px;height:80px; background:red;border-radius: 50px 50px 0 0; -webkit-transform: rotate(-45deg); -webkit-transform-origin: 0 100%;}
    
    .heart:after{ position:absolute; content:""; left:0px;top:0;width:50px;height:80px; background:yellow;border-radius: 50px 50px 0 0; -webkit-transform: rotate(45deg); -webkit-transform-origin: 100% 100%;}

    最后合并代码并将黄色改为红色统一:

    .heart:before,.heart:after{ position:absolute; content:""; top:0;width:50px;height:80px; background:red;border-radius: 50px 50px 0 0;}
    .heart:before{ left:50px; -webkit-transform: rotate(-45deg); -webkit-transform-origin: 0 100%;}
    .heart:after { left: 0; -webkit-transform: rotate(45deg); -webkit-transform-origin: 100% 100%;}
  • 相关阅读:
    Algs4-2.2.24-改进的有序测试
    Algs4-2.2.23-2比较正文中实现的归并和反向复制辅助数组归并之间的性能
    ssh登录卡住问题
    DELL R730安装ESXI虚拟化
    Linux umount的device is busy问题
    shell脚本调试技巧
    git编译安装
    卸载gitlab
    磁盘性能测试方法
    N! HDU 1042
  • 原文地址:https://www.cnblogs.com/wcf52web/p/5601454.html
Copyright © 2020-2023  润新知