CSS3(3)---2D变形(transform)

CSS3(3)---2D变形(transform)

2D变形是CSS3中具有颠覆性的特征之一,它常用的属性有:移动(translate)、缩放(scale)、旋转(rotate)、倾斜 (skew)。

一、2D变形语法

1、移动 (translate)

移动的属性: translate

 translate(x,y)水平方向和垂直方向同时移动(也就是X轴和Y轴同时移动)
 translateX(x)仅水平方向移动(X轴移动)
 translateY(Y)仅垂直方向移动(Y轴移动)

比如设置为:

transform: translate(50px,60px);  /* 水平向右移动50px 和 垂直向下移动60px*/

运行结果

说明 从上面运行结果可以看出两点

1、移动的原点默认是 最左角上 的位置。

2、px取正数代表 向右 或者 向下。Px为负值,那就变成向左 或者 向上。

2、缩放 (scale)

缩放的属性: scale

scale(X,Y)使元素水平方向和垂直方向同时缩放(也就是X轴和Y轴同时缩放)
scaleX(x)元素仅水平方向缩放(X轴缩放)
scaleY(y)元素仅垂直方向缩放(Y轴缩放)

说明 scale默认值为1,设置0.5代表缩小一倍,2代表放大一倍。

比如设置为:

transform: scale(0.5,1);  /* 水平缩小0.5倍 和 垂直不变 */

运行结果

3、旋转 (rotate)

旋转属性 : rotate (正值为顺时针,负值为逆时针)

比如设置为:

transform: rotate(45deg);   /* 注意单位是 deg 度数 */

运行结果

我们可以看到这里旋转默认是以对角线的位置进行旋转,这里也可以设置以其它位置进行旋转。

调整元素转换变形的原点属性:transform-origin

 div {transform-origin: left top;transform: rotate(45deg); }   /*  改变元素原点到左上角,然后进行顺时旋转45度 */
 /*如果是4个角,可以用 left top这些,如果想要精确的位置, 可以用  px 像素*/
 div {transform-origin: 10px 10px;transform: rotate(45deg); }   /*  改变元素原点到x 为10  y 为10,然后进行顺时旋转45度 */

4、倾斜 (skew)

旋转属性 : rotate (正值为顺时针,负值为逆时针)

比如设置为:

transform: skew(30deg,0deg);   /* 水平方向上倾斜30度,垂直方向保持不变 */

运行结果

二、示例

1、移动

效果

代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>过渡</title>
    <style>
    div {
        width: 100px;
        height: 100px;
        background-color: pink;
        transition: all 1.2s; /*过渡时间1.2秒*/
    }
    div:hover {
        transform: translate(100px, 50px); /*水平移动100px 垂直移动50px*/
    }
    </style>
</head>
<body>
    <div></div>
</body>
</html>

2、缩放

效果

代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>缩放</title>
    <style>
    div {
        width: 200px;
        height: 200px;
        background-color: pink;
        transition: all 1.2s; /*过渡时间1.2秒*/
    }
    div:hover {
         /*transform: scale(0.8, 1); 0 0%   1  100%   宽度变为了原来的 80%  高度不变*/
        /*transform: scale(1, 0.8);  0 0%   1  100%   宽度变为了原来的 80%  高度不变*/
        transform: scale(0.5); /* 高度 和 宽度一起缩放 都是 0.5 */
    }
    </style>
</head>
<body>
    <div>
    </div>
</body>
</html>

3、缩放(新浪图片放大)

效果

代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>缩放</title>
    <style>
    div {
        width: 386px;
        height: 260px;
        overflow: hidden;  /*多余部分隐藏*/
    }
    div img {
        transition: all 0.5s; /*设置过渡时间*/
    }
    div:hover img {
        transform: scale(1.1); /*设置放大1.1倍*/
    }
    </style>
</head>
<body>
    <div>
        <img src="1.jpg" height="260" width="386" alt="">
    </div>
</body>
</html>

4、旋转 (默认原点旋转)

效果

代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>旋转</title>
    <style>
    div {
        width: 150px;
        height: 150px;
        background-color: pink;
        margin: 100px auto;
        transition: all 0.8s;
    }
    div:hover {
        transform: rotate(45deg); /* 顺时针旋转45度*/
    }
    </style>
</head>
<body>
    <div></div>
</body>
</html>

5、旋转 (指定原点旋转)

效果

代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>旋转</title>
    <style>
    div {
        width: 150px;
        height: 150px;
        background-color: pink;
        margin: 100px auto;
        transition: all 1.0s;
        transform-origin: right bottom;  /*设置 旋转中心点为 右下角*/
    }
    div:hover {
        transform: rotate(90deg);   /*旋转90度*/
    }
    </style>
</head>
<body>
    <div></div>
</body>
</html>

6、倾斜

效果

代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>倾斜</title>
    <style>
        div {
            width: 150px;
            height: 150px;
            margin: 100px auto;
            background-color: pink;
            transition: all 1.0s
        }
        div:hover {
            transform: skew(30deg);   /*倾斜度*/
    }
    </style>
</head>
<body>
    <div></div>
</body>
</html>
你如果愿意有所作为,就必须有始有终。(17)

原文地址:https://www.cnblogs.com/qdhxhz/p/11918994.html

时间: 2024-10-10 14:00:52

CSS3(3)---2D变形(transform)的相关文章

css3的2D变形

一.2D变形 1.变形 transform:translate();translateX();translateY();translate(,); 2.过渡 transition:all 1s; 二.具体体现的例子 1.位移的实例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport&quo

【前端】2D变形transform

2D变形transform transform是CSS3中具有颠覆性的特征之一,可以实现元素的位移.旋转.倾斜.缩放,甚至支持矩阵方式,配合过渡和即将学习的动画知识,可以取代大量之前只能靠Flash才可以实现的效果. 变形转换 transform 移动 translate(x, y) translate 移动平移的意思 translate(50px,50px); ? 使用translate方法来将文字或图像在水平方向和垂直方向上分别垂直移动50像素. 可以改变元素的位置,x.y可为负值: tra

css3中的变形 transform详解

一.变形-旋转 ratate()函数 通过指定的角度参数使元素相对原点进行旋转.它主要在二维空间内进行操作,设置一个角度值,用来指定旋转的幅度.如果这个值为正值,元素相对原点中心顺时针旋转:如果这 个值为负值,元素相对原点中心逆时针旋转. transform:rotate(-20deg) 如下图: 二.变形- 扭曲 skew()函数 扭曲skew()函数能够让元素倾斜显示.它可以将一个对象以其中心位置围绕着X轴和Y轴按照一定的角度倾斜.这与rotate()函数的旋转不同,rotate()函数只是

CSS3过渡、变形和动画

1.CSS3过渡 所谓CSS3过渡,就是使用CSS3让元素从一种状态慢慢转换到另一种状态.如鼠标的悬停状态就是一种过渡.如下例子: #content a{     text-decoration: none;     font:2.25em;     background-color: #b01c20;     text-transform: uppercase;     border-radius: 8px;     color: #fff;     padding:30px;     flo

CSS3 过渡、变形和动画

一.我们来给按钮增加一个悬停效果:#content a:hover {border: 1px solid #000000;color: #000000;text-shadow: 0px 1px white;}两种状态下的效果如下,先看默认状态: 再看悬停状态: 这里只是在鼠标悬停时简单地修改了一下文字.文字阴影以及边框的颜色.所以,你可能想象出来,使用这段 CSS 代码,当鼠标悬停在按钮上面时,按钮会直接从第一种状态(白色文字)突变到第二种状态(黑色文字)--就是一个开关效果.我们来给第一段CS

CSS3的变形transform、过渡transition、动画animation学习

学习CSS3动画animation得先了解一些关于变形transform.过渡transition的知识 这些新属性大多在新版浏览器得到了支持,有些需要添加浏览器前缀(-webkit-.-moz-.-ms-.-o-),本文为简化内容,直接使用了原版属性 根据不同属性的支持度,在实际使用的时候需要添加相应的浏览器前缀支持 目录: 变形transform 过渡transition 动画animation 一.变形transform 变形有rotate旋转.scale缩放.translate位移.sk

深入理解CSS变形transform(2d)

× 目录 [1]变形原点 [2]变形函数 [3]多值 前面的话 CSS变形transform是一些效果的集合,主要是移动.旋转.缩放和倾斜这四种基本操作,还可以通过设置matrix矩阵来实现更复杂的效果.变形transform可以实现2D和3D两种效果.2D变形涉及的属性主要有transform变形函数和transform-origin变形原点.本文将详细介绍变形transform2d的相关知识.为了更清楚地说明变形的整个过程,本文的DEMO中大量使用了CSS过渡transition.关于CSS

css3 matrix 2D矩阵和canvas transform 2D矩阵

一看到“2D矩阵”这个高大上的名词,有的同学可能会有种畏惧感,“矩阵”,看起来好高深的样子,我还是看点简单的吧.其实本文就很简单,你只需要有一点点css3 transform的基础就好. 没有前戏,直奔主题 2D矩阵指的是元素在2D平面内发生诸如缩放.平移.旋转.拉伸四种变化,在css3中对应4个方法分别是scale().translate().rotate()和skew(),可以说这4个方法是css3矩阵matrix的快捷方式,因为这4个方法本质都是由matrix实现的.类似地,在canvas

transform 2d变形实例练习

transform 2d变形实例练习:练习了旋转 倾斜 缩放的功能 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>transform</title> <style> .box{background-color: #000;width: 100px;height: 100px;transiti