CSS3变形效果

学习要点:
1.transform
2.transform-origin
3.浏览器版本

本章主要探讨HTML5中CSS3的变形效果,通过变形效果,可以平移、缩放和旋转元素的功能。 

一.transform
CSS3提供了元素变形效果,也叫做变换。它可以将元素实现旋转、缩放和平移的功能。属性有两个:transform和transform-origin。

             属性                                  说明

           transform              指定应用的变换功能

       transform-origin           指定变换的起点

transform指定应用的变换功能

对于transform的属性值,具体如下表:

                 属性值                                      说明

                  none                          无变换

      translate(长度值或百分数值)                             在水平方向、垂直方向或两个方向上平移元素。                              

      translateX(长度值或百分数值)               

      translatY(长度值或百分数值)

 

              scale(数值)                                          在水平方向、垂直方向或两个方向上缩放元素              

              scaleX(数值)             

              scaleY(数值)

 

              rotate(角度)                      旋转元素

 

               skew(角度)              在水平方向、垂直方向或两个方向上使元素倾斜一定的角度             

              skewX(角度)                

              skewY(角度)

 

       matrix(4~6数值,逗号隔开)                          指定自定义变换。

向水平和垂直各移动2 像素,也可以使用百分比

p{
width: 200px;
height: 200px;
background-color: #37ff20;
margin: 100px 0 0 100px; transform: translate(2px, 2px);
} <p>是一部由北青传媒股份</p>

向垂直平移2 像素

p{
width: 200px;
height: 200px;
background-color: #37ff20;
margin: 100px 0 0 100px; transform: translate(0, 2px);
} <p>是一部由北青传媒股份</p>

 水平、垂直方向放大1.5倍 

p{
width: 200px;
height: 200px;
background-color: #37ff20;
margin: 100px 0 0 100px; /*transform: scale(1.5);*/
transform: scale(1.5,1.5);
} <p>是一部由北青传媒股份</p>

水平、垂直方向缩小0.8倍

p{
width: 200px;
height: 200px;
background-color: #37ff20;
margin: 100px 0 0 100px; transform: scale(0.8,0.8);
} <p>是一部由北青传媒股份</p>

水平方向放大1.5倍 

p{
width: 200px;
height: 200px;
background-color: #37ff20;
margin: 100px 0 0 100px; transform: scaleX(1.5);
} <p>是一部由北青传媒股份</p>

垂直方向放大1.5倍

p{
width: 200px;
height: 200px;
background-color: #37ff20;
margin: 100px 0 0 100px; transform: scaleY(1.5);
} <p>是一部由北青传媒股份</p>

旋转元素, ~ 36 度之间,负值均可 

p{
width: 200px;
height: 200px;
background-color: #37ff20;
margin: 100px 0 0 100px; transform: rotate(-45deg);
} <p>是一部由北青传媒股份</p>

倾斜元素, ~ 36 度之间,负值均可

p{
width: 200px;
height: 200px;
background-color: #37ff20;
margin: 100px 0 0 100px; transform: skew(45deg, 20deg);
} <p>是一部由北青传媒股份</p>

水平倾斜元素, ~ 36 度之间,负值均可

p{
width: 200px;
height: 200px;
background-color: #37ff20;
margin: 100px 0 0 100px; transform: skewX(45deg);
} <p>是一部由北青传媒股份</p>

垂直倾斜元素, ~ 36 度之间,负值均可 

p{
width: 200px;
height: 200px;
background-color: #37ff20;
margin: 100px 0 0 100px; transform: skewY(45deg);
} <p>是一部由北青传媒股份</p>

通过六个数值指定矩形,其内部公式计算较为复杂,请百度吧 

p{
width: 200px;
height: 200px;
background-color: #37ff20;
margin: 100px 0 0 100px; transform: matrix(1,0,0,1,30,30);
}

不同的值可以累计,通过空格分割 

p{
width: 200px;
height: 200px;
background-color: #37ff20;
margin: 100px 0 0 100px; transform: rotate(-45deg) scale(1.5);
} <p>是一部由北青传媒股份</p>

二.transform-origin设置变换的起点
transform-origin属性可以设置变换的起点。默认情况下,使用元素的中心作为起点,具体设置方案参考如下表:

          属性值                         说明

            百分数值              指定元素x轴或y轴的起点

             长度值               指定距离

 

              left         指定x轴的位置

             center         

             right

 

              top           指定y轴的位置

             center         

             bottom

这个属性是用来改变变形的基准点的,默认是在元素的中心位置,如果你改变了基准点。 它就会按照这个基准点进行变形。

默认值,以中心点变形

p{
width: 200px;
height: 200px;
background-color: #37ff20;
margin: 100px 0 0 100px; transform-origin: center center;
transform-origin: 50% 50%;
} <p>是一部由北青传媒股份</p>

以左上角为基准点变形

p{
width: 200px;
height: 200px;
background-color: #37ff20;
margin: 100px 0 0 100px; transform-origin: left top;
transform-origin: 0px 0px;
} <p>是一部由北青传媒股份</p>

三.浏览器版本

    CSS3中的变形效果最低版本和需要前缀版本如下:

                            Opera       Firefox      Chrome          Safari          IE

       支持需带前缀          11.5~22   3.5~15      4 ~ 35            3.1 ~ 8              9.0+

       支持不带前缀          23+          16+               26+                无              10.0+

兼容完整版 

p{
width: 200px;
height: 200px;
background-color: #37ff20;
margin: 100px 0 0 100px; -webkit-transform: rotate(45deg);
-moz-transform: rotate(45deg);
-o-transform: rotate(45deg);
-ms-transform: rotate(45deg);
transform: rotate(45deg); -webkit-transform-origin: left top;
-moz-transform-origin: left top;
-o-transform-origin: left top;
-ms-transform-origin: left top;
transform-origin: left top;
} <p>是一部由北青传媒股份</p>

3D变形效果

学习要点:

    1.3D变形简介

    2.transform-style

    3.perspective

    4.3D变形属性

 本章主要探讨HTML5中CSS3的变形效果,主要接着上节课的2D平面变形转换到3D立体变形。

 

一.3D变形简介

    之前我们学习了元素的平移、旋转、缩放和倾斜等功能。这些效果只是单纯在二维平面图上的,我们称之为2D。那么其实CSS3也提供了三维立体的一些功能效果,并且目前较新的主流浏览器都比较支持,只不过比2D晚一些,对浏览器的版本要求也要高一些。由于3D是立体三维,在x、y轴的基础上一般会多出一个z轴,深入跃出轴。以下是3D变形的属性值表,如下:

              属性值                                 说明

        translate3d(x,y,z)         3D方式平移元素,设置x、y和z轴

          translateZ(z)              设置3D方式平移元素的z轴

          scale3d(x,y,z)             3D方式缩放一个元素

             scaleZ(z)               设置3D方式缩放元素的z轴

        rotate3d(x,y,z,a)          3d方式旋转元素

            rotateX(a)            分别设置3D方式的旋转元素的x、y和z轴

            rotateY(a)         

            rotateZ(a)

 

        perspective(长度值)          设置一个透视投影矩阵

         matrix3d(多个值)             定义一个矩阵

3D变形比2D变形出来的要晚一些,所以如果需要兼容旧版本浏览器,可以对照这个表,具体如下:

                          Opera         Firefox      Chrome        Safari          IE

       支持需带前缀             15 ~ 22            10 ~ 15             12 ~ 35           4 ~ 8               无

       支持不带前缀             23+                  16+                   26+                 无                    10.0+

 

二.transform-style嵌套元素如何在3D空间中呈现,设置父元素

    transform-style属性是指定嵌套元素如何在3D空间中呈现。

             属性值                                 说明

              flat                     默认值,表示所有子元素在2D平面呈现。

          preserve-3d              表示子元素在3D空间中呈现。

需要再配合后面的功能属性和变形配置,才能看到效果。同样,这个属性也需要加上各种厂商前缀。

在父亲元素声明子元素3d呈现

div{
transform-style: preserve-3d;
}
p{
width: 200px;
height: 200px;
background-color: #37ff20;
margin: 100px 0 0 100px;
} <p>是一部由北青传媒股份</p>

三.perspective 设置查看者的位置,设置父元素
perspective是3D变形的重要属性,该属性会设置查看者的位置,并将可视内容映射到一个视锥上,继而投放到一个2D平面上。

              属性值                                   说明

            none                       默认值,表示无限的角度来看3D物体,但看上去是平的。

             长度值                接受一个长度单位大于0的值,其单位不能为百分比。值

                    越大,角度出现的越远,就好比你人离远一点看物体。值越小,正相反。

设置查看者的距离位置,一般设置在元素的父元素上

看者的距离位置

div{
transform-style: preserve-3d;
perspective: 1000px;
}
p{
width: 200px;
height: 200px;
background-color: #37ff20;
margin: 100px 0 0 100px;
} <p>是一部由北青传媒股份</p>

需要再配合后面的功能属性和变形配置,才能看到效果。同样,这个属性也需要加上各种厂商前缀。

四.3D变形属性
我们运用前面3D功能属性transform-style和perspective来构建3D变形效果。

translate3d(x,y,z)3D方式平移元素,设置x、y和z轴,设置子元素

div{
transform-style: preserve-3d;
perspective: 1000px;
}
p{
width: 200px;
height: 200px;
background-color: #37ff20;
margin: 100px 0 0 100px;
transform: translate3d(300px,100px,240px);
} <p>是一部由北青传媒股份</p>

scale3d(x,y,z)3D缩放,单独设置无效,需要配合角度 ,设置子元素

div{
transform-style: preserve-3d;
perspective: 1000px;
}
p{
width: 200px;
height: 200px;
background-color: #37ff20;
margin: 100px 0 0 100px;
transform: translate3d(300px,100px,240px);
transform: scale3d(1,1,1.5) rotateX(45deg);
} <p>是一部由北青传媒股份</p>

rotate3d(x,y,z,a)设置3D旋转,a表示角度,xyz是0或1之间的数值 设置子元素

div{
transform-style: preserve-3d;
perspective: 1000px;
}
p{
width: 200px;
height: 200px;
background-color: #37ff20;
margin: 100px 0 0 100px;
transform: translate3d(300px,100px,240px);
transform: scale3d(1,1,1.5) rotateX(45deg);
transform: rotate3d(1,0,0,45deg);
} <p>是一部由北青传媒股份</p>

CSS3还提供了perspective-origin属性来设置3D变形中的源点角度。该属性默认值为50% 50%也就是center center。

             属性值                                 说明

            百分数值                     指定元素x轴或y轴的起点

             长度值                     指定距离

 

              left                 指定x轴的位置

             center          

             right

 

              top             指定y轴的位置

             center          

             bottom

源点设置为右上方变形

perspective-origin: top right; 

CSS3还提供了一个在元素中设置透视的值perspective(长度值),但它还是和在父元素设置有一定不同。因为父元素整个作为透视,而元素自己作为透视,导致不同。

具体测试看透视的距离                  

div{
transform-style: preserve-3d;
perspective: 1000px;
}
p{
width: 200px;
height: 200px;
background-color: #37ff20;
margin: 100px 0 0 100px;
transform: translate3d(300px,100px,240px);
transform: scale3d(1,1,1.5) rotateX(45deg);
transform: rotate3d(1,0,0,45deg);
transform: perspective(1000px) rotateY(45deg);
} <p>是一部由北青传媒股份</p>

                    

第八十一节,CSS3变形效果的更多相关文章

  1. 第三百八十一节,Django+Xadmin打造上线标准的在线教育平台—xadmin全局配置

    第三百八十一节,Django+Xadmin打造上线标准的在线教育平台—xadmin全局配置 1.xadmin主题设置 要使用xadmin主题,需要在一个app下的adminx.py后台注册文件里,写一 ...

  2. 第一百八十一节,jQuery-UI,知问前端--自动补全 UI--邮箱自动补全

    jQuery-UI,知问前端--自动补全 UI--邮箱自动补全 学习要点: 1.调用 autocomplete()方法 2.修改 autocomplete()样式 3.autocomplete()方法 ...

  3. 第二百八十一节,MySQL数据库-SQL注入和pymysql模块防止SQL注入

    MySQL数据库-SQL注入和pymysql模块防止SQL注入 SQL注入就是通过SQL语句绕开程序判断,获取到数据库的内容 下面以一个简单的程序登录SQL注入举例: 正常登录 1.数据库有一张会员表 ...

  4. 第三百九十一节,Django+Xadmin打造上线标准的在线教育平台—404,403,500页面配置

    第三百九十一节,Django+Xadmin打造上线标准的在线教育平台—404,403,500页面配置 路由映射在全局也就是根目录里的urls.py里配置404路由映射 注意:不是写在urlpatter ...

  5. 第三百八十七节,Django+Xadmin打造上线标准的在线教育平台—网站上传资源的配置与显示

    第三百八十七节,Django+Xadmin打造上线标准的在线教育平台—网站上传资源的配置与显示 首先了解一下static静态文件与上传资源的区别,static静态文件里面一般防止的我们网站样式的文件, ...

  6. 第三百八十节,Django+Xadmin打造上线标准的在线教育平台—将所有app下的models数据库表注册到xadmin后台管理

    第三百八十节,Django+Xadmin打造上线标准的在线教育平台—将所有app下的models数据库表注册到xadmin后台管理 将一个app下的models数据库表注册到xadmin后台管理 重点 ...

  7. 第三百七十一节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)用Django实现我的搜索以及热门搜索

    第三百七十一节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)用Django实现我的搜索以及热门 我的搜素简单实现原理我们可以用js来实现,首先用js获取到 ...

  8. 第三百六十一节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)倒排索引

    第三百六十一节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)倒排索引 倒排索引 倒排索引源于实际应用中需要根据属性的值来查找记录.这种索引表中的每一项都包 ...

  9. 第三百五十一节,Python分布式爬虫打造搜索引擎Scrapy精讲—将selenium操作谷歌浏览器集成到scrapy中

    第三百五十一节,Python分布式爬虫打造搜索引擎Scrapy精讲—将selenium操作谷歌浏览器集成到scrapy中 1.爬虫文件 dispatcher.connect()信号分发器,第一个参数信 ...

随机推荐

  1. angularjs 路由回退,返回到上一个路由

    在现阶段比较流行的angularjs框架中:路由是一个比较重要的应用:angularjs的单页面是其强大功能之一: 所有的页面其实就只是在一个页面就实现的:angularjs通过对路由的控制来进行页面 ...

  2. FragmentPagerAdapter和FragmentStatePagerAdapter区别?

    FragmentPagerAdapter:对于不再需要的fragment,选择调用detach方法,仅销毁视图,并不会销毁fragment实例.FragmentStatePagerAdapter:会销 ...

  3. readelf -s 命令‘symbol’名字显示不全

    GCC编译出来的object(目标文件)getPon.o,在链接时(ld)报了一个错误说找不到一个函数(undefined reference to identifier devCtl_getEthe ...

  4. Ubuntu中Qt5.7.0的安装及opencv2.4.13配置

    去官网下载qt-opensource-linux-x64-5.7.0.run,到"下载"目录 Ctrl+Alt+T打开终端 cd /home/jv/下载sudo mv qt-ope ...

  5. WPS Office 二次开发简易教程。

    http://bbs.wps.cn/forum.php?mod=viewthread&tid=22004642

  6. DB2导入导出 学习笔记

    db2pd -osinfodb2mtrk -i -d (for aix)db2 get dbm cfg show detaildb2 get db cfg show detaildb2 get sna ...

  7. Python学习笔记——进阶篇【第九周】———线程、进程、协程篇(队列Queue和生产者消费者模型)

    Python之路,进程.线程.协程篇 本节内容 进程.与线程区别 cpu运行原理 python GIL全局解释器锁 线程 语法 join 线程锁之Lock\Rlock\信号量 将线程变为守护进程 Ev ...

  8. linux driver module

    本文将对Linux系统中的sysfs进行简单的分析,要分析sysfs就必须分析内核的driver-model(驱动模型),两者是紧密联系的.在分析过程中,本文将以platform总线和spi主控制器的 ...

  9. SQL Server2012中的SequenceNumber

    http://www.cnblogs.com/CareySon/archive/2012/03/12/2391581.html https://q.cnblogs.com/q/53552/ https ...

  10. MSMQ小Demo

    Demo基于http://www.cnblogs.com/zhili/p/MSMQ.html Server代码: using System.Messaging; using System.Text; ...