一. translate(x,y) 或者translateX(x)或者translateY(y)

注意点:translateX(x)translateY(y)大写XY;只写一个值,默认y=0。

<body>
<div></div>
</body>
       div{
width: 200px;
height: 200px;
background: rgb(185, 24, 24);
transition: all 1s;
}
div:hover {
transform: translate(100px,100px);/* 只写一个值,默认y=0 */
}

一个作用:使定位的盒子居中对齐,代替原来的方法——嵌套的定位盒子如何居中?

<div class="father">
<div class="son"></div>
</div>
        .father {
width: 300px;
height: 300px;
border: 1px solid #000;
position: relative;
}
.son {
width: 100px;
height: 100px;
background: rgb(133, 57, 57);
position: absolute;
/* 水平垂直居中 */
left: 50%;
top: 50%;
transform: translate(-50%,-50%);/* transform的位移是居于自身位置的移动,并且会保留位置,类似relative */
}

二、scale(x,y)或scaleX(x)或scaleY(y)

注意点:scaleX(x)scaleY(y)大写X和Y;只写一个值,默认x=y。

<body>
<div></div>
</body>
       div{
width: 200px;
height: 200px;
background: rgb(185, 24, 24);
transition: all 1s;
}
div:hover {
transform: scale(0.6);/* 只写一个值,x=y=0.6 */
}

示例:鼠标经过盒子,图片会动(被放大),效果如下:

<body>
<div><img src="sina.jpg"></div>
</body>
        div{
width: 229px;
height: 143px;/* 盒子和图片宽高相等 */
overflow: hidden;/* 等下图片放大,切掉超过部分 */
}
img{
transition: all 0.3s;/* 添加一个过渡效果 */
}
div:hover img{
transform: scale(1.1);/* 鼠标经过盒子时,里面的图片(宽高都)放大110% */
}

三、rotate(angle)或rotateX(angle)或rotateY(angle)

注意:transform-origin 可以设置旋转点,默认是中心点 ;一定要跟度数deg。

<body>
<div></div>
</body>
       div{
width: 200px;
height: 200px;
background: rgb(185, 24, 24);
transform-origin: bottom right;/* 设置旋转点,默认是中心点 */
transition: all 1s;
}
div:hover {
transform: rotate(180deg);/* deg必须要写 */
}

示例,旋转的6张图片,效果如下:

<body>
<ul>
<li><img src="1.jpg" ></li>
<li><img src="2.jpg" ></li>
<li><img src="3.jpg" ></li>
<li><img src="4..jpg" ></li>
<li><img src="5.jpg" ></li>
<li><img src="6.jpg" ></li>
</ul>
</body>
       ul {
width: 220px;
height: 220px;
position: relative;
}
li{
list-style: none;
position: absolute;
left:;
top:;
transform-origin: left top;
transition: all 1s;
}
ul:hover li:first-child{
transform: rotate(60deg);
}
ul:hover li:nth-child(2){
transform: rotate(120deg);
}
ul:hover li:nth-child(3){
transform: rotate(180deg);
}
ul:hover li:nth-child(4){
transform: rotate(240deg);
}
ul:hover li:nth-child(5){
transform: rotate(300deg);
}
ul:hover li:last-child{
transform: rotate(360deg);
}

四、skew(x-angle,y-angle)或者skewX(angle)或者skewY(angle)

注意:只写一个,y=0
<body>
<div></div>
</body>
      div{
width: 200px;
height: 200px;
background: rgb(185, 24, 24);
transition: all 1s;
}
div:hover {
transform: skew(20deg,30deg);/* 只写一个,y=0 */
}

总结:1. transform 可以连写,但是连写的顺序会影响动画,它是按照一定顺序来的;

2. transform 经常与 过渡transition 一起连用,用来展示动画效果;

3.有2D 也有3D,3D就是利用有XYZ轴,后面的补上。

css3 2D变形(transform)移动、缩放、旋转、倾斜的更多相关文章

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

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

  2. WPF/Silverlight中图形的平移,缩放,旋转,倾斜变换演示

    原文:WPF/Silverlight中图形的平移,缩放,旋转,倾斜变换演示 为方便描述, 这里仅以正方形来做演示, 其他图形从略. 运行时效果图:XAML代码:// Transform.XAML< ...

  3. CSS3 2D变形 transform---移动 translate(x, y), 缩放 scale(x, y), 旋转 rotate(deg), transform-origin, 倾斜 skew(deg, deg)

    transform是CSS3中具有颠覆性的特征之一,可以实现元素的位移.旋转.倾斜.缩放,甚至支持矩阵方式,配合过渡和即将学习的动画知识,可以取代大量之前只能靠Flash才可以实现的效果. 变形转换 ...

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

    学习CSS3动画animation得先了解一些关于变形transform.过渡transition的知识 这些新属性大多在新版浏览器得到了支持,有些需要添加浏览器前缀(-webkit-.-moz-.- ...

  5. CSS3——2D变形和3D变形

    2D变形(CSS3) transform transform是CSS3中具有颠覆性的特征之一,可以实现元素的位移.旋转.倾斜.缩放,甚至支持矩阵方式,配合过渡和即将学习的动画知识,可以取代大量之前只能 ...

  6. css3 2D变换 transform

    旋转函数rotate(),deg表示度数,transform-origin表示旋转的基点 <head> <title>无标题文档</title> <style ...

  7. 2D变形transform的translate和rotate

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  8. CSS3 2D Transform

    在 一个二维或三维空间,元素可以被扭曲.移位或旋转.只不过2D变形工作在X轴和Y轴,也就是大家常说的水平轴和垂直轴:而3D变形工作在X轴和Y轴之外, 还有一个Z轴.这些3D变换不仅可以定义元素的长度和 ...

  9. Android图片旋转,缩放,位移,倾斜,对称完整示例(一)——imageView.setImageMatrix(matrix)和Matrix

    MainActivity如下: import android.os.Bundle; import android.view.MotionEvent; import android.view.View; ...

随机推荐

  1. 题解-APIO2019桥梁

    problem \(\mathrm {loj-3145}\) 题意概要:给定一张 \(n\) 点 \(m\) 边的无向图,边有边权,共 \(q\) 次操作,每次会将第 \(x\) 条边的权值改为 \( ...

  2. js new到底做了什么?如何重写new?(转)

    转自:https://blog.csdn.net/lyt_angularjs/article/details/86623988

  3. windows下搭建nginx负载均衡

    学习笔记,第一次记录避免忘记 首先介绍一下本地环境是windows2008 R2-64位. 1.  到nginx官网上下载最新稳定版的安装包,http://nginx.org/en/download. ...

  4. iOS - 苹果官方Apple Pay开发文档(中文版)- Apple Pay(1)

    翻译自苹果官方Apple Pay开发文档.目前版本为1.0 概览: Apple Pay为用户从你的App里购买实际的物品和服务提供简单而安全的方法.通过Touch ID,用户可使用储存在iPhone ...

  5. js数组实现上移下移

    up(index) { if(index === 0) { return } //在上一项插入该项 this.list.splice(index - 1, 0, (this.list[index])) ...

  6. Python 简单web服务器的实现

    import re import socket def service_cilent(new_socket): request = new_socket.recv(1024).decode(" ...

  7. 利用 CAKeyframeAnimation实现任意轨迹移动

      自定义 View,实现以下方法即可 - (void)drawRect:(CGRect)rect { // Drawing code // 初始化UIBezierPath UIBezierPath ...

  8. Json:Restful

    JArray & JObject JArray与JObject在json的应用:无需定义相应的类对象,直接解析 JArray jarr = JArray.Parse(jsonStr); //数 ...

  9. Linux中关于dns配置的小记

    一. 如上图 我当时的网卡配置文件里是静态模式,然后DNS1=114.114.114.114. 就是纳闷,这是为什么 随后,我又是将网卡配置文件,修改为DNS1=114.114.114.113. 重启 ...

  10. Win8.1 Anaconda下安装第三方库,以jieba wordcloud为例

    最近在看情感分析的东西,于是在spyder里import jieba,and then就报错了. 百度之后,发现jieba是一个第三方库,它并不存在于anaconda内置的packages中.所以在用 ...