CSS3变形

作者: 挥剑斩浮云 | 来源:发表于2018-01-27 13:16 被阅读0次
  • CSS3中,我们可以使用transform属性来实现文字或图像的的各种变形效果,如位移、缩放、旋转、倾斜等
    transform属性

位移translate()

  • 对于位移translate()方法,我们分为3种情况:
    (1)translateX(x):元素仅在水平方向移动(X轴移动);
    (2)translateY(y):元素仅在垂直方向移动(Y轴移动);
    (3)transklate(x,y):元素在水平方向和垂直方向同时移动(X轴和Y轴同时移动);单位为pxem%

缩放scale()

  • 缩放,指的是“缩小”和“放大”。在CSS3中,我们可以使用scale()方法来将元素根据中心原点进行缩放。
    • translate()方法一样,缩放scale()方法也有3种情况:
      (1)scaleX(x):元素仅水平方向缩放(X轴缩放);
      (2)scaleY(y):元素仅垂直方向缩放(Y轴缩放);
      (3)scale(x,y):元素水平方向和垂直方向同时缩放(X轴和Y轴同时缩放);'
    • 说明:x,y表示元素沿着水平方向(XY轴)缩放的倍数,如果大于1就代表放大;如果小于1就代表缩小,当然放大缩小是两个方向同时延伸

旋转rotate()

  • CSS3中,我们可以使用rotate()方法来将元素相对中心原点进行旋转。这里的旋转是二维的,不涉及三维空间的操作
语法:transform:rotate(度数);
  • 说明:度数指的是元素相对中心原点进行旋转的度数,单位为deg。其中,degdegree(度数)的缩写
    如果度数为正,则表示元素相对原点中心顺时针旋转;如果度数为负,则表示元素相对原点中心进行逆时针旋转

倾斜skew()

  • CSS3中,我们可以使用skew()方法将元素倾斜显示。skew()方法跟translate()方法、scale()方法一样,也有3种情况:
    (1)skewX(x):使元素在水平方向倾斜(X轴倾斜);
    (2)skewY(y):使元素在垂直方向倾斜(Y轴倾斜);
    (3)skew(x,y):使元素在水平方向和垂直方向同时倾斜(X轴和Y轴同时倾斜);
  • skewX(deg)方法
    • 如果度数为正,表示元素沿水平方向(X轴)顺时针倾斜;如果度数为负,表示元素沿水平方向(X轴)逆时针倾斜。
  • skewY(deg)方法
    • 如果度数为正,表示元素沿垂直方向(Y轴)顺时针倾斜;如果度数为负,表示元素沿垂直方向(Y轴)逆时针倾斜
  • skew(x,y)方法
    • 第一个参数对应X轴,第二个参数对应Y轴。如果第二个参数未提供,则值为0,也就是Y轴方向上无斜切
  • 举例
<!DOCTYPE html>
<html lang="en">
<head>
    <title>CSS3倾斜skew()方法</title>
    <style type="text/css">
        /*设置原始元素样式*/
        #origin
        {
            margin:100px auto;/*水平居中*/
            width:200px;
            height:100px;
            border:1px dashed silver;
        }
        /*设置当前元素样式*/
        #current
        {
            width:200px;
            height:100px;
            color:white;
            background-color: #3EDFF4;
            text-align:center;
            transform:skewX(30deg);
            -webkit-transform:skewX(30deg);  /*兼容-webkit-引擎浏览器*/
            -moz-transform:skewX(30deg);/*兼容-moz-引擎浏览器*/
        }
    </style>
</head>
<body>
    <div id="origin">
        <div id="current"></div>
    </div>
</body>
</html>
在浏览器效果
  • 对于初学者,可能一时半会看不出skewX()方法的本质原理。其实skewX()方法变形原理是这样的:由于我给元素限定了高度为100px,而skewX()方法是沿着X轴方向倾斜。所以,只要倾斜角度不是180°,元素都会保持100px的高度。同时为了保持倾斜,只能沿着X轴拉长本身。
    由此我们可以总结:
    (1)skewX()方法会保持高度,沿着X轴倾斜;
    (2)skewY()方法会保持宽度,沿着Y轴倾斜;
    (3)skew(x,y)方法会先按照skewX()方法倾斜,然后按照skewY()方法倾斜;
transform:skewY(30deg);
-webkit-transform:skewY(30deg);  /*兼容-webkit-引擎浏览器*/
-moz-transform:skewY(30deg);     /*兼容-moz-引擎浏览器*/
  • 当采用上述代码时,在浏览器预览效果如下:


    浏览器效果
  • 学过点基本数学的人都知道,位移、旋转和倾斜都不会改变四边形的面积。skew()方法可能比较少用。不过用的好的话,会让你的网页美观动感,但是用得不好的话,则将是一大败笔

中心原点transform-origin

  • 任何一个元素都有一个中心原点,默认情况下,元素的中心原点位于X轴和Y轴的50%处。默认情况下,CSS3变形进行的位移、缩放、旋转、倾斜都是以元素的中心原点进行变形
  • CSS3中,我们可以通过transform-origin属性来改变元素变形时的中心原点位置
语法:transform-origin:取值;
说明:transform-origin属性取值有2种:一种是采用长度值,另外一种是使用关键字。长度值一般使用百分比作为单位,很少使用px、em等作为单位
transform-origin属性取值
  • 举例:
<!DOCTYPE html>
<html lang="en">
<head>
    <title>CSS3中心原点transform-origin属性</title>
    <style type="text/css">
        /*设置原始元素样式*/
        #origin
        {
            margin:100px auto;/*水平居中*/
            width:200px;
            height:100px;
            border:1px dashed gray;
        }
        #current
        {
            width:200px;
            height:100px;
            color:white;
            background-color: #3EDFF4;
            text-align:center;
            transform-origin:right center;/*设置中心圆点靠右居中*/
            -webkit-transform-origin:right center;/*兼容-webkit-引擎浏览器*/
            -moz-transform-origin:right center;   /*兼容-moz-引擎浏览器*/
            transform:rotate(30deg);
            -webkit-transform:rotate(30deg);      /*兼容-webkit-引擎浏览器*/
            -moz-transform:rotate(30deg);         /*兼容-moz-引擎浏览器*/
        }
    </style>
</head>
<body>
    <div id="origin">
        <div id="current"></div>
    </div>
</body>
</html>
浏览器效果

相关文章

网友评论

    本文标题:CSS3变形

    本文链接:https://www.haomeiwen.com/subject/uejnaxtx.html