第 24 章 CSS3 变形效果[下]
2016-05-01 11:06
246 查看
学习要点:
1.3D 变形简介
2.transform-style
3.perspective
4.3D 变形属性
主讲教师:李炎恢
本章主要探讨 HTML5 中 CSS3 的变形效果,主要接着上节课的 2D 平面变形转换到 3D 立体变形。
一.3D 变形简介
之前我们学习了元素的平移、旋转、缩放和倾斜等功能。这些效果只是单纯在二维平面图上的,我们称之为 2D。那么其实 CSS3 也提供了三维立体的一些功能效果,并且目前较新的主流浏览器都比较支持,只不过比 2D 晚一些,对浏览器的版本要求也要高一些。
由于 3D 是立体三维,在 x、y 轴的基础上一般会多出一个 z 轴,深入跃出轴。以下是 3D 变形的属性值表,如下:
3D 变形比 2D 变形出来的要晚一些,所以如果需要兼容旧版本浏览器,可以对照这个表。具体如下:
//兼容版本完整形式
二.transform-style
transform-style 属性是指定嵌套元素如何在 3D 空间中呈现。
//一般设置到当前元素的父元素
需要再配合后面的功能属性和变形配置,才能看到效果。同样,这个属性也需要加上各种厂商前缀。
三.perspective
perspective 是 3D 变形的重要属性,该属性会设置查看者的位置,并将可视内容映射到一个视锥上,继而投放到一个 2D 平面上。
//设置查看者的距离位置,一般设置在元素的父元素上
需要再配合后面的功能属性和变形配置,才能看到效果。同样,这个属性也需要加上各种厂商前缀。
四.3D 变形属性
我们运用前面 3D 功能属性 transform-style 和 perspective 来构建 3D 变形效果。
1.translate3d(x,y,z)
//需要 3D 位移的 HTML 结构,必须有父元素包含
//CSS 部分,父元素设置 3D 呈现且设置透视距离
2.translateZ(z)
//可以单独设置 z 轴,z 轴可以是负值
3.scale3d(x,y,z)
//3D 缩放,单独设置无效,需要配合角度
4.scaleZ(z)
//单独设置 z 轴,x 和 y 轴默认为 1
5.rotate3d(x,y,z,a)
//设置 3D 旋转,a 表示角度,xyz 是 0 或 1 之间的数值
6.rotateX(a)、rotateY(a)、rotateZ(a)
//单独设置 3D 旋转
最后一个 matrix3d 就不多说了,忽略。
CSS3 还提供了 perspective-origin 属性来设置 3D 变形中的源点角度。该属性默认值为 50% 50%也就是 center center。
//源点设置为右上方变形
CSS3 还提供了一个在元素中设置透视的值 perspective(长度值),但它还是和在父元素设置有一定不同。因为父元素整个作为透视,而元素自己作为透视,导致不同。
//具体测试看透视的距离
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(多个值) | 定义一个矩阵 |
Opera | Firefox | Chrome | Safari | IE | |
支持需带前缀 | 15 ~ 22 | 10 ~ 15 | 12 ~ 35 | 4 ~ 8 | 无 |
支持不带前缀 | 23+ | 16+ | 26+ | 无 | 10.0+ |
-webkit-transform: translateZ(200px); -moz-transform: translateZ(200px); -o-transform: translateZ(200px); -ms-transform: translateZ(200px); transform: translateZ(200px);
二.transform-style
transform-style 属性是指定嵌套元素如何在 3D 空间中呈现。
属性值 | 说明 |
flat | 默认值,表示所有子元素在 2D 平面呈现。 |
preserve-3d | 表示子元素在 3D 空间中呈现。 |
transform-style: preserve-3d;
需要再配合后面的功能属性和变形配置,才能看到效果。同样,这个属性也需要加上各种厂商前缀。
三.perspective
perspective 是 3D 变形的重要属性,该属性会设置查看者的位置,并将可视内容映射到一个视锥上,继而投放到一个 2D 平面上。
属性值 | 说明 |
none | 默认值,表示无限的角度来看 3D 物体,但看上去是平的。 |
长度值 | 接受一个长度单位大于 0 的值,其单位不能为百分比。值越大,角度出现的越远,就好比你人离远一点看物体。值越小,正相反。 |
perspective: 1000px;
需要再配合后面的功能属性和变形配置,才能看到效果。同样,这个属性也需要加上各种厂商前缀。
四.3D 变形属性
我们运用前面 3D 功能属性 transform-style 和 perspective 来构建 3D 变形效果。
1.translate3d(x,y,z)
//需要 3D 位移的 HTML 结构,必须有父元素包含
<div id="a"> <img src="img.png" alt="" /> </div>
//CSS 部分,父元素设置 3D 呈现且设置透视距离
#a { perspective: 1000px; transform-style: preserve-3d; } img { /*z 轴可以是负值*/ transform: translate3d(300px,100px,240px); }
2.translateZ(z)
//可以单独设置 z 轴,z 轴可以是负值
img { transform: translateZ(240px); }
3.scale3d(x,y,z)
//3D 缩放,单独设置无效,需要配合角度
img { transform: scale3d(1,1,1.5) rotateX(45deg); }
4.scaleZ(z)
//单独设置 z 轴,x 和 y 轴默认为 1
img { transform: scaleZ(1.5) rotateX(45deg); }
5.rotate3d(x,y,z,a)
//设置 3D 旋转,a 表示角度,xyz 是 0 或 1 之间的数值
transform: rotate3d(1,0,0,45deg);
6.rotateX(a)、rotateY(a)、rotateZ(a)
//单独设置 3D 旋转
transform: rotateX(45deg); transform: rotateY(45deg); transform: rotateZ(45deg); transform: rotateX(45deg) rotateY(45deg) rotateZ(45deg);
最后一个 matrix3d 就不多说了,忽略。
CSS3 还提供了 perspective-origin 属性来设置 3D 变形中的源点角度。该属性默认值为 50% 50%也就是 center center。
属性值 | 说明 |
百分数值 | 指定元素 x 轴或 y 轴的起点 |
长度值 | 指定距离 |
left | 指定 x 轴的位置 |
center | |
right | |
top | 指定 y 轴的位置 |
center | |
bottom |
perspective-origin: top right;
CSS3 还提供了一个在元素中设置透视的值 perspective(长度值),但它还是和在父元素设置有一定不同。因为父元素整个作为透视,而元素自己作为透视,导致不同。
//具体测试看透视的距离
img { transform: perspective(1000px) rotateY(45deg); }
相关文章推荐
- 第 23 章 CSS3 边框图片效果
- css3 实现3D导航栏
- 第 22 章 CSS3 渐变效果
- CSS3组件化之ios版菊花loading
- 第 21 章 CSS3 文本效果
- 第 20 章 CSS3 前缀和 rem
- 第 19 章 CSS 其他样式
- 消除li img 中间的空隙
- 【网页制作】——WEB标准三要素:html,css,javascrip
- CSS3实现DIV圆角完整代码
- CSS3学习笔记
- CSS reset的重新审视 – 避免样式重置
- #ing# CSS细节注意点
- css控制背景图片位置-background-position
- HTML引入css样式的方法示例
- 8种CSS清除浮动的方法优缺点分析
- CSS3属性 box-shadow 向框添加一个或多个阴影
- CSS控制鼠标形状
- 第 18 章 CSS 表格与列表
- css等比例分割父级容器(完美三等分)