热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

CSS3-transform转换/变换

transform向元素应用2D或3D转换。该属性允许我们对元素进行旋转、缩放、移动或倾斜。兼容性:InternetExplorer10、Firefox、Opera支持tra

transform

向元素应用 2D 或 3D 转换。该属性允许我们对元素进行旋转、缩放、移动或倾斜。

兼容性: Internet Explorer 10、Firefox、Opera 支持 transform 属性。

Internet Explorer 9 支持替代的 -ms-transform 属性(仅适用于 2D 转换)。

Safari 和 Chrome 支持替代的 -webkit-transform 属性(3D 和 2D 转换)。

Opera 只支持 2D 转换。

兼容性写法: -ms-transform:rotate(20deg); /* IE 9 */

-webkit-transform:rotate(20deg); /* Safari and Chrome */

-moz-transform:rotate(20deg); /* firefox */

-o-transform:rotate(20deg);/* Opera */

语法:

//2d旋转

ransform :rotate(angle) | rotataX(angle) | rotateY(angle) | rotateZ(angle)

//3d旋转

transform :rotate(X,Y,z | angle)

//矩阵

transform: matrix(a,b,c,d,e,f)

//倾斜

skew(X,Y)

//缩放

scale(X,Y)

 

旋转:rotate(angle)

 

rotate(angle),通过指定的角度对元素进行2D旋转,正值时顺时针旋转,负值时将逆时针旋转。

transform:rotate(-20deg)

<div class="rotate">
        <div><span>我不想旋转span>div>
div>
<style>
.rotate div{
            width: 100px;
            height: 100px;
            line-height: 100px;
            background: green;
            color: #fff;
        }
 .rotate:hover div{
            width: 100px;
            height: 100px;
            line-height: 100px;
            background: green;
            color: #fff;
            -webkit-transform: rotate(-20deg);
            -moz-transform: rotate(-20deg);
            transform:rotate(-20deg);
            margin-bottom:20px;
            cursor: pointer;
            transition: 0.5s ease-out;
        }
        .rotate span {
            display:block;
            -webkit-transform: rotate(20deg);
            -moz-transform: rotate(20deg);
            transform:rotate(20deg);
        }
style>

 

缩放:scale()

缩放scale()具有三种情况:scale(x,y)表示X、Y轴同时放缩(如果只给一个值,x、y轴同时缩放相同倍数,给2个不同得值则根据所给数值进行缩放);scaleX(x)仅向水平方向缩放(x轴);scaleY(y)仅向垂直方向缩放(y轴);但他们的缩放中心点是一样的,中心点就是元素中心的位置,缩放倍数小于1表示缩小X呗,大于1表示放大x倍。

transform:scale(0.8) /*缩小0.8倍*/

<div class="scale">
        <div class="scale1">div>
div>
<style>
.scale{
            width: 200px;
            height: 200px;
            border: 1px dashed #000;
        }
.scale1{
            width: 198px;
            height: 198px;
            background: #ffc0cb;
        }
.scale1:hover{
            transition: 0.2s;
            transform: scale(0.8);
            -webkit-transform: scale(0.8);
            -moz-transform: scale(0.8);
            opacity: 0.9;
            cursor: pointer;
        }
style>

 

 transform:scale(1.5,0.8) /*沿x轴放大1.5倍,沿y轴缩小0.8倍*/

<div class="scale">
        <div class="scale2">div>
div>
<style>
.scale{
            width: 200px;
            height: 200px;
            border: 1px dashed #000;
        }
.scale2{
            width: 198px;
            height: 198px;
            background: #ffc0cb;
        }
.scale2:hover{
            transition: 0.2s;
            transform:scale(1.5,0.8);
            -webkit-transform: scale(1.5,0.8);
            -moz-transform: scale(1.5,0.8);
            opacity: 0.9;
            cursor: pointer;
        }
style>

transform:scaleX(1.5) /*沿x轴放大1.5倍*/

<div class="scale">
        <div class="scale3">div>
div>
<style>
.scale{
            width: 200px;
            height: 200px;
            border: 1px dashed #000;
        }
.scale3{
            width: 198px;
            height: 198px;
            background: #ffc0cb;
        }
        .scale3:hover{
            transition: 0.2s;
            transform: scaleX(3);
            -webkit-transform: scaleX(3);
            opacity: 0.9;
            cursor: pointer;
        }
style>

位移:translate()

位移:translate()也具有三种情况:translate(x,y)水平方向和垂直方向同时移动(x轴y轴同时移动);translateX(x)仅水平方向移动(X轴移动);translateY(y)仅水平方向移动(X轴移动)

translate(20px,10px)

<div class="scale">
        <div class="translate1">translate(20px,10px)div>
div>
<style>
.scale{
            width: 200px;
            height: 200px;
            border: 1px dashed #000;
        }
.translate1{
            width: 200px;
            height: 200px;
            background: lime;
            cursor: pointer;
        }
.translate1:hover{

            transform: translate(20px,10px);
            -webkit-transform:translate(20px,10px);
            background: #ffc0cb;
            transition: 1s;
        }
style>

 translateX(100px)

<div class="scale">
        <div class="translate2">translateX(100px)div>
div>
<style>
.scale{
            width: 200px;
            height: 200px;
            border: 1px dashed #000;
        }
.scale2{
            width: 198px;
            height: 198px;
            background: #ffc0cb;
        }
.scale2:hover{
            transition: 0.2s;
            transform:scale(1.5,0.8);
            -webkit-transform: scale(1.5,0.8);
            -moz-transform: scale(1.5,0.8);
            opacity: 0.9;
            cursor: pointer;
        }
style>

 translateY(100px)

<div class="scale">
        <div class="translate3">translateY(100px)div>
div>
<style>
.scale{
            width: 200px;
            height: 200px;
            border: 1px dashed #000;
        }
.scale3{
            width: 198px;
            height: 198px;
            background: #ffc0cb;
        }
.scale3:hover{
            transition: 0.2s;
            transform: scaleX(3);
            -webkit-transform: scaleX(3);
            opacity: 0.9;
            cursor: pointer;
        }
style>

 

扭曲/倾斜:skew()

同样,扭曲:skew()也具有三种情况:skew(x,y)水平方向和垂直方向同时发生扭曲变形(x轴y轴扭曲变形,第二个参数为可选参数,如果不填表示Y轴为0deg);skewX(x)仅水平方向发生扭曲(X轴扭曲),skewY(y)仅水平方向发生扭曲(X轴扭曲)

 transform: skew(20deg,30deg)

<div class="skew">
        <div>
            <span>我是文字,我决定不被扭曲span>
        div>
div>
<style>
.skew{
            width:200px;
            height: 200px;
            border: 1px dashed #000;
            margin-left: 200px;
            margin-top: 50px;
        }
.skew div{
            width:200px;
            height: 200px;
            background: orange;
            transform: skew(20deg,30deg);
            -webkit-transform: skew(20deg,30deg);
        -moz-transform: skew(20deg,30deg);
        -o-transform: skew(20deg,30deg);
        -ms-transform: skew(20deg,30deg);
        }
.skew span{
            display: block;
            transform: skew(-20deg,-30deg);
            -webkit-transform: skew(-20deg,-30deg);
        -moz-transform: skew(-20deg,-30deg);
        -o-transform: skew(-20deg,-30deg);
        -ms-transform: skew(-20deg,-30deg);
        }
style>

 

 

transform: skew(20deg)/*等价于:transform: skewX(20deg)*/ 

<div class="skew1">
        <div>
            <span>不填Y的参数,看效果span>
        div>
div>
<style>
.skew1{
            width:200px;
            height: 200px;
            border: 1px dashed #000;
            margin-left: 200px;
            margin-top: 50px;
        }
 .skew1 div{
            width:200px;
            height: 200px;
            background: orange;
            transform: skew(20deg);
            -webkit-transform: skew(20deg);
        -moz-transform: skew(20deg);
        -o-transform: skew(20deg);
        -ms-transform: skew(20deg);
        }
 .skew1 span{
            display: block;
            transform: skew(-20deg);
            -webkit-transform: skew(-20deg);
        -moz-transform: skew(-20deg);
        -o-transform: skew(-20deg);
        -ms-transform: skew(-20deg);
        }
style>

transform: skewY(30deg)

<div class="skew2">
       <div>
            <span>Y轴扭曲span>
        div>
div>
<style>
.skew2{
            width:200px;
            height: 200px;
            border: 1px dashed #000;
            margin-left: 200px;
            margin-top: 50px;
            margin-bottom: 100px;
        }
.skew2 div{
            width:200px;
            height: 200px;
            background: orange;
            transform: skewY(30deg);
            -webkit-transform: skewY(30deg);
            -moz-transform: skewY(30deg);
            -o-transform: skewY(30deg);
        -ms-transform: skewY(30deg);
        }
.skew2 span{
            display: block;
            transform: skewY(-30deg);
            -webkit-transform: skewY(-30deg);
        -moz-transform: skewY(-30deg);
        -o-transform: skewY(-30deg);
        -ms-transform: skewY(-30deg);
        }
style>        

 

矩阵:matrix(a,b,c,d,e,f)

transform:matrix(1,0,0,1,0,0)
/**********************/
/*矩阵:matrix(a,b,c,d,e,f)
*a:水平缩放 1为原始大小 应用:scale()
*b:纵向扭曲(拉伸) 0为不变 应用:skew()
*c:横向扭曲(拉伸) 0为不变
*d:垂直缩放 1为原始大小
*e:水平偏移量 0是初始位置 应用:translate()
*f:垂直偏移量 0是初始位置
*/
/**********************/


transform: matrix(0.8,0,0,0.8,10,10);
/*transform: matrix(水平缩小0.8倍,水平拉伸0,垂直拉伸0,垂直缩小0.8倍,水平偏移10px,垂直偏移10px)*/

<div class="matrix">
    <div>div>
div>
<style>
.matrix{
width:200px;
height:200px;
border: 1px dashed #000;
}
.matrix div{
            width: 200px;
            height: 200px;
            background: red;
        }
.matrix div:hover{
            cursor: pointer;
            background: #ffff00;
            transform: matrix(0.8,0,0,0.8,10,10);
            -webkit-transform: matrix(0.8,0,0,0.8,10,10);
        -moz-transform:matrix(0.8,0,0,0.8,10,10);
        -o-transform: matrix(0.8,0,0,0.8,10,10);
        -ms-transform: matrix(0.8,0,0,0.8,10,10);
            transition: 0.5s;
        }
style>

 

 

 

 

 

 

 


推荐阅读
  • 一篇文章搞定css3 3d效果
    css33d学习心得卡片反转魔方banner图首先我们要学习好css33d一定要有一定的立体感通过这个图片应该清楚的了解到了x轴y轴z轴是什么概念了。首先先给大家看一个小 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文整理了常用的CSS属性及用法,包括背景属性、边框属性、尺寸属性、可伸缩框属性、字体属性和文本属性等,方便开发者查阅和使用。 ... [详细]
  • Python瓦片图下载、合并、绘图、标记的代码示例
    本文提供了Python瓦片图下载、合并、绘图、标记的代码示例,包括下载代码、多线程下载、图像处理等功能。通过参考geoserver,使用PIL、cv2、numpy、gdal、osr等库实现了瓦片图的下载、合并、绘图和标记功能。代码示例详细介绍了各个功能的实现方法,供读者参考使用。 ... [详细]
  • 本文介绍了机器学习手册中关于日期和时区操作的重要性以及其在实际应用中的作用。文章以一个故事为背景,描述了学童们面对老先生的教导时的反应,以及上官如在这个过程中的表现。同时,文章也提到了顾慎为对上官如的恨意以及他们之间的矛盾源于早年的结局。最后,文章强调了日期和时区操作在机器学习中的重要性,并指出了其在实际应用中的作用和意义。 ... [详细]
  • 本文讨论了如何使用GStreamer来删除H264格式视频文件中的中间部分,而不需要进行重编码。作者提出了使用gst_element_seek(...)函数来实现这个目标的思路,并提到遇到了一个解决不了的BUG。文章还列举了8个解决方案,希望能够得到更好的思路。 ... [详细]
  • 关于如何快速定义自己的数据集,可以参考我的前一篇文章PyTorch中快速加载自定义数据(入门)_晨曦473的博客-CSDN博客刚开始学习P ... [详细]
  • 当我在doWork方法中运行代码时,通过单击button1,进度条按预期工作.但是,当我从其他方法(即btn2,btn3)将列表传递给doWork方法时,进度条在启动后会跳转到10 ... [详细]
  • pytorch Dropout过拟合的操作
    这篇文章主要介绍了pytorchDropout过拟合的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完 ... [详细]
  • JavaScript实现拖动对话框效果
    原标题:JavaScript实现拖动对话框效果代码实现:<!DOCTYPEhtml><htmllan ... [详细]
  • Jq制作的页面顶部动态弹出的提示框,可以用于提示信息的显示以及通知信息的显示。Html代码 ... [详细]
  • 这篇文章将为大家详细讲解有关如何使用JavaScript动态设置CSS3属性值,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 项目需要实现弹幕,网上参考了各种方法,最后觉得transform+transition实现的效果在移动设备上性能最好,在iphone6和红米4上测试,看不到 ... [详细]
  • 所有设备的CSS3媒体查询原文:https://www. ... [详细]
author-avatar
倒霉熊丶JO_205
这个家伙很懒,什么也没留下!
Tags | 热门标签
RankList | 热门文章
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有