您现在的位置是:网站首页> 编程资料编程资料
CSS3的常见transformation图形变化用法小结CSS3中设置3D变形的transform-style属性详解浅谈CSS3中的变形功能-transform功能
2021-09-05
1054人已围观
简介 这篇文章主要介绍了CSS3的常见transformation图形变化用法小结,共整理了旋转、缩放、平移、倾斜以及矩阵的使用方法,需要的朋友可以参考下
1.rotate旋转
旋转图片,单位deg,为“度”的意思
- -moz-transform: rotate(20deg); -webkit-transform: rotate(20deg); -o-transform: rotate(20deg); -ms-transform: rotate(20deg);
2.scale放大缩小
按比例放大缩小,如 “1.6” 为放大 1.6 倍,若 “-1.6” 则缩小 1.6 倍
- -webkit-transform: scale(1.6); -moz-transform: scale(1.6); -o-transform: scale(1.6); -ms-transform: scale(1.6);
3.translate平移
translate 为指定对象的平移,具有两个参数,第一个为 x 轴方向平移,第二个为 y 轴方向平移。如果第二个参数未提供,则默认值为 0 。
例如,需要设置一个元素在鼠标悬停时进行 x 轴方向 30px 和 y 轴方向 20px 的平移,可以这样编写:
- #translate-demo:hover {
- -webkit-transform: translate(30px, 20px);
- -moz-transform: translate(30px, 20px);
- -o-transform: translate(30px, 20px);
- -ms-transform: translate(30px, 20px);
- transform: translate(30px, 20px);
- }
这里必须说明一点,最新版本的主流现代浏览器(Kayo 测试的是 Chrome 22.0.1229.94 , Firefox 17.0.1 , Safari 5.1.7 , Opera 12.12)除 webkit 内核的 Chorme 和 Safari 外都不需要通过私有属性才能支持 transform 了,但由于早期的现代浏览器中 transform 属性都需要通过各自的私有属性支持,因此为了尽量兼容早期版本的浏览器,在实际项目中使用 transform 时最好使用各自的私有属性,同时为了向后兼容,需要加上没有私有属性的调用。
4.skew倾斜
skew 指定元素斜切扭曲,即元素围绕 x 轴和 y 轴进行倾斜,具有两个参数,第一个对应 x 轴方向的倾斜角度,第二个对应 y 轴方向倾斜角度。如果第二个参数未提供,则默认值为 0 。skew 与 scale 有点相似,但 scale 只旋转元素,不会对元素形状作出改变,而 skew 则会使到元素的形状发生改变。
例如,需要设置一个元素在鼠标悬停时进行 x 轴方向 30 度和 y 轴方向 30 度的斜切扭曲,可以这样编写:
- #skew-demo:hover {
- -webkit-transform: skew(30deg, 30deg);
- -moz-transform: skew(30deg, 30deg);
- -o-transform: skew(30deg, 30deg);
- -ms-transform: skew(30deg, 30deg);
- transform: skew(30deg, 30deg);
- }
值得注意的是,由于 translate、skew 以及上文提到的 scale 都是以 x、y 轴相关的值作为参数,因此为了方便起见,W3C 还提供了 translateX 和 translateY 、skewX 和 skewY 以及 scaleX 和 scaleY 方法,分别用于独立设置 x 轴和 y 轴方向上的效果。
5.matrix矩阵
matrix 即矩阵,这里具体使用的是一个 3*3 矩阵。
用矩阵表示属性值?
是的,除了 transform 外,CSS3 中另外还有一些属性以 matrix 作为属性值,实际上,matrix 是 transform 中最基本而又最强大的值,上面的 translate 和 skew 以及之前介绍过的 rotate 和 scale 在底层都是通过 matrix 实现的,因此实际上所有的 transform 值都可以通过一个 3*3 矩阵表示。
我们知道,transform 是在 x、y 坐标系上的 2D 变换,因此实际上变换就是元素上每一个点通过一个变换等式进行变化,再产生新的坐标值的过程。因此我们设置旧的 x、y 坐标值分别为 XprevCoordSys 和 YprevCoordSys ,新的 x、y 坐标值分别为 XnewCoordSys 和 YnewCoordSys ,由于变换在 2D 中进行,因此 z 坐标值设为 1 即可。这时再另设 matrix 为如下的一个矩阵,
则旧的坐标值、新的坐标值与 matrix 中存在如下关系:
即新旧值之间可以通过矩阵连成等式,因此开发者只需要设定好 matrix 的值,就可以写出自定义的变换了。接下来需要注意,虽然 matrix 是一个 3*3 矩阵,在实际使用时只需填写6个参数(另外3个与 x、y 轴无关),并且调用时需要用如下的顺序 [a b c d e f]
例如编写如下语句:
- #matrix-demo:hover {
- -webkit-transform: matrix(1, 1, 0, 1, 0, 0);
- -moz-transform: matrix(1, 1, 0, 1, 0, 0);
- -o-transform: matrix(1, 1, 0, 1, 0, 0);
- -ms-transform: matrix(1, 1, 0, 1, 0, 0);
- transform: matrix(1, 1, 0, 1, 0, 0);
- }
这样在鼠标悬停时元素会在 y 轴方向上拉伸(即相当于 skewY(45deg) 的效果)。
另外如果同时使用两个或以上的 transform 方法,可以把它们合并书写。
相关内容
- 使用CSS3的font-face字体嵌入样式的方法讲解
- 利用CSS使footer固定在页面底部的实例代码CSS实现footer“吸底”效果详解CSS五种方式实现Footer置底html的footer置于页面最底部的简单实现方法详解HTML5将footer置于页面最底部的方法(CSS+JS)
- 几个CSS3的flex弹性盒模型布局的简单例子演示
- CSS3中的transform属性进行2D和3D变换的基本用法css3 transform属性详解css3中transform属性实现的4种功能
- 浅析CSS中calc()的使用CSS3 calc()会计算属性详解详解CSS 3 中的 calc() 方法浅谈css3中calc在less编译时被计算的解决办法CSS3 Calc实现滚动条出现页面不跳动问题 CSS3的calc()做响应模式布局的实现方法使用CSS3中的calc()属性来以算式表达尺寸数值初探CSS3中的calc()功能巧用CSS3的calc()宽度计算做响应模式布局的方法
- CSS3定位和浮动详解深入理解css布局之定位与浮动清除css浮动的三种方法小结浅谈CSS浮动的那点事儿CSS使用float属性设置浮动元素的实例教程CSS浮动所差生的内容溢出问题及清除浮动的方法小结浅谈CSS浮动的特性
- CSS3制作气泡对话框的实例教程纯CSS实现气泡对话框尖角处理方案JS+CSS3实现的确认框和对话框弹出并关闭特效源码CSS3实现可兼容移动端的超酷弹出对话框效果源码jQuery结合Css3制作的多风格轻量级弹出动感对话框插件特效源码用纯css3和html制作泡沫对话框实现代码纯CSS代码实现各类气球泡泡对话框效果CSS实现对话框小尾巴功能
- 详解CSS3的box-shadow属性制作边框阴影效果的方法CSS3 box-shadow属性实例详解CSS3阴影效果样式库box-shadows.css 53种css3 box-shadow阴影(外阴影与外发光)图示讲解详解CSS3阴影 box-shadow的使用和技巧总结 CSS3实现多重边框的方法总结CSS3里box-shadow属性的使用方法示例详解
- CSS盒子模型是什么深入理解CSS中的盒子模型css盒子模型图解css盒子模型详解加示例CSS3盒子模型详解CSS3盒子模型详解详解css盒子模型之内边距padding及简写
- 两个div叠加触发事件发生闪烁问题的解决方法DIV+CSS 清除浮动常用方法总结CSS教程之div垂直居中的多种方法关于div与>div的区别小结Divxdra1031.Dll图片溢出div问题的快速解决方法推荐如何让一个div居于页面正中间【实现方法】css三种方法实现div在浏览器水平居中一个div在浏览器水平居中的实现方法div+CSS制作类似微信对话气泡效果的实例总结