33.前端笔记-CSS3-2D转换

news2025/2/2 2:51:17

目录

  • 1、转换
  • 2、二维坐标系
    • 2.1 2D转换之移动translate
    • 2.2 2D旋转之rotate
      • 练习1
      • 练习2
      • 练习3
    • 2.3 2D转换之缩放scale
      • 练习1
      • 练习2
    • 2D转换综合写法
      • 转换综合练习

1、转换

转换transform是CSS3中具有颠覆性的特征之一,可以实现元素的位移、旋转、缩放等效果

2、二维坐标系

2.1 2D转换之移动translate

作用:改变元素在页面中的位置,与定位类似

单位是px,也可以直接写百分比
transform:translate(x,y);
或者
transform:translateX(n);
transform:translateY(n);

特点:

  • 移动不会影响其他盒子的位置,自身不脱标
  • translate中的百分比单位是相对于自身元素的translate:(50%,50%),比如当前盒子width=100px,就移动50px
  • 对行内标签无效
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    <body>
        <style>
            div:first-child{
                width: 100px;
                height: 100px;
                background-color: aquamarine;
                transform: translate(50%,50px);
            }
            div:last-child{
                width: 100px;
                height: 100px;
                background-color: orange;
            }
        </style>
    </body>
    </html>
</head>
<body>
    <section>
        <div>1</div>
        <div>2</div>
    </section>
    <!-- <div>2</div> -->
</body>
</html>

在这里插入图片描述
应用:将盒子居中,与position搭配使用

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .father{
            position: relative;
            width: 250px;
            height: 250px;
            background-color: greenyellow;
        }
        .son{
            position: absolute;
            top:50%;
            left: 50%;
            width: 100px;
            height: 100px;
            background-color: orange;
            transform: translate(-50%,-50%);
        }
    </style>
</head>
<body>
    <div class="father">
        <div class="son"></div>
    </div>
</body>
</html>

在这里插入图片描述

2.2 2D旋转之rotate

transfrom:rotate(度数)

说明:

  • 度数单位是deg
  • 角度为正数,顺时针。负数,逆时针
  • 默认旋转的中心点是元素的中心点
使用transform-origin:x y;指定转换中心点
注意:
(1)x和y中间用空格分开
(2)x y默认转换的中心点是元素的中心点:transform-orgin:50% 50%
(3)还可以给x y设置像素px或方位名词top bottom left right center

练习1

小狗转圈:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
<style>
    img{
        width: 100px;
        border-radius: 50px;
        transition: all 0.2s;
    }
    div{
        width: 100px;
        height: 100px;
        border-radius: 50px;
        border: 2px orange solid;
    }
    img:hover{
        transform: rotate(45deg);
    }
</style>
</head>
<body>
    <div>
        <img src="../images/猛男.jpg" alt="">
    </div>
</body>
</html>

小狗歪头

练习2

改变中心点:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        div{
            width: 100px;
            height: 100px;
            margin: 0 auto;
            background-color: orange;
            /* 可以跟方位名词 */
            transform-origin: left bottom;
            
        }
        div:hover{
            transform: rotate(45deg);
        }
    </style>
</head>
<body>
    <div></div>
</body>
</html>

旋转2

练习3

旋转:鼠标经过盒子时,其他盒子旋转进来

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        div{
            width: 100px;
            height: 100px;
            margin: 0 auto;
            border: 1px orange solid;
            overflow: hidden;
        }
        div::after{
            content: '';
            display: block;
            width: 100%;
            height: 100%;
            background-color: chartreuse;
            /* 可以跟方位名词 */
            transform-origin: left bottom;
            transform: rotate(90deg);
            border-radius: 50%;
            transition: all 0.5s;
        }
        div:hover::after{
            transform: rotate(0deg);
        }
    </style>
</head>
<body>
    <div></div>
</body>
</html>

旋转案例3

2.3 2D转换之缩放scale

放大和缩小元素

transform:scale(x,y);
说明:
1、x和y没有单位,是倍数的意思。1就是1倍不变,2就是2倍
2、只写一个参数,就代表等比缩放
3、参数值小于1就是缩小
4、scale优势:
不影响其他盒子,可以设置缩放中心点transfor-origin

练习1

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        div{
            width: 100px;
            height: 100px;
            background-color: orange;
            margin: 0 auto;
            
        }
        div:hover{
            transform: scale(2,2);
        }
    </style>
</head>
<body>
    <div></div>
    其他盒子
</body>
</html>

练习2

小狗缩放时,不出边框

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        div{
            float: left;
            margin: 10px;
            width: 100px;
            height: 100px;
            overflow: hidden;
            border-radius: 50%;
        }
        div img{
            width: 100px;
            transition: all 3;
            border-radius: 50%;
        }
        div img:hover{
            transform: scale(1.5);
        }
    </style>
</head>
<body>
    <div><a href=""><img src="../images/猛男.jpg" alt=""></a></div>
    <div><a href=""><img src="../images/猛男.jpg"></a></div>
    <div><a href=""><img src="../images/猛男.jpg"></a></div>
</body>
</html>

2D转换综合写法

  • 同时使用多个转换,其格式为:
transform:translate()  rotate()  scale()
  • 书写顺序会影响转换效果,先旋转会改变坐标轴方向
  • 当同时有位移和其他属性时,要将位移放到最前面

转换综合练习

鼠标经过小狗时,边移动边放大

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        div{
            float: left;
            margin: 10px;
            width: 100px;
            height: 100px;
            overflow: hidden;
            border-radius: 50%;
            /* transform-origin: (left bottom); */
        }
        div img{
            /* transform-origin: (left bottom); */
            width: 100px;
            transition: all 3;
            border-radius: 50%;
        }
        div img:hover{
            transform: translate(50px) scale(1.5);
        }
    </style>
</head>
<body>
    <div><a href=""><img src="../images/猛男.jpg" alt=""></a></div>
    <div><a href=""><img src="../images/猛男.jpg"></a></div>
    <div><a href=""><img src="../images/猛男.jpg"></a></div>
</body>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/104209.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Fabric.js 修改画布交互方式到底有什么用?

本文简介 点赞 关注 收藏 学会了 fabric.js 为我们提供了很多厉害的方法。今天要搞明白的一个东西是 canvas.interactive 。 官方文档对 canvas.interactive 的解释是&#xff1a; Indicates that canvas is interactive. This property should not be changed. canvas.in…

FPU与VFP最全面解释

本文希望能将FPU以及ARM中的FPU介绍清楚。 1. FPU&#xff08;Floating-Point Unit&#xff09; 浮点运算单元是处理器内部用于执行浮点数计算的逻辑部件&#xff0c;或者说硬件电路。不是所有的处理器都有该功能。浮点运算满足IEEE 754的标准&#xff0c;所谓IEEE 754标准&a…

关于Linux的动静态库

文章目录什么是动静态库生成静态库生成发布生成动态库发布使用库使用静态库查看系统头文件路径查看系统库文件路径使用库文件和头文件指定路径搜索头文件卸载库使用动态库动态库的运行搜索路径什么是动静态库 静态库&#xff08;.a&#xff09;&#xff1a;程序在编译链接的时…

再携手,齐并进!菊风助力宁波银行坐席PUSH外呼项目

随着“金融数字化”逐步成为金融行业的新浪潮&#xff0c;运用更加灵活的触达手段提升营销效果&#xff0c;促成业务闭环愈发成为银行业等金融机构角逐数字化转型成功的关键。 在此背景下&#xff0c;金融机构对于实时音视频技术的应用也从普遍的「呼入」需求逐步扩展到创新的…

LinkedHashSet源码解析

LinkedHashSet源码解析 问题 &#xff08;1&#xff09;LinkedHashSet 的底层使用什么存储元素&#xff1f; &#xff08;2&#xff09;LinkedHashSet 与 HashSet 有什么不同&#xff1f; &#xff08;3&#xff09;LinkedHashSet 是有序的吗&#xff1f; &#xff08;4&a…

Vue2与Vue3 setup的使用差异与对比

最近一直在做vue2的技术栈升级&#xff0c;于是心血来潮&#xff0c;就想要不写篇文章总结一下vue2和vue3在使用上的不同吧&#xff0c;于是乎&#xff0c;我们这就开始吧&#xff01; 首先说明一下&#xff0c;vue3有多种写法&#xff0c;本文使用setup语法糖&#xff0c;不考…

硬核!Github 星标 79.4K 的阿里强推 Java 面试参考指南到底有多强?

谈到 Java 面试&#xff0c;相信大家第一时间脑子里想到的词肯定是金三银四&#xff0c;金九银十。好像大家的潜意识里做 Java 开发的都得在这个时候才能出去面试&#xff0c;跳槽成功率才高&#xff01;但 LZ 不这么认为&#xff0c;LZ 觉得我们做技术的一生中会遇到很多大大小…

组件技术--设计--jsp+servlet+bean+MySQL 简单的登录注册案例

JavaBeanMySQLjspservlet 简单的登录注册案例登录注册案例需求核心系统组成Javaweb项目框架基本思想BeancounterUserDaoUserDaoservletLoginCljspindex.jspLoginServlet.jspregister.jspregisterMessage.jspwelcome.jsptargetpom.xmlWEB-INFweb.xml登录注册案例需求 本项目利用…

【论文阅读笔记】CycleISP: Real Image Restoration via Improved Data Synthesis

论文地址&#xff1a;https://arxiv.org/abs/2003.07761 代码地址&#xff1a;https://github.com/swz30/CycleISP 论文小结 总的来说&#xff0c;就是现实世界中无法获取有效的图像对。且之前合成噪声的方式是在sRGB上添加高斯白噪声&#xff0c;但对于相机传感器成像管道来说…

工控CTF之协议分析7——OMRON

协议分析 流量分析 主要以工控流量和恶意流量为主&#xff0c;难度较低的题目主要考察Wireshark使用和找规律&#xff0c;难度较高的题目主要考察协议定义和特征 简单只能简单得干篇一律&#xff0c;难可以难得五花八门 常见的工控协议有&#xff1a;Modbus、MMS、IEC60870、…

同源策略跨域

目录1.同源策略限制的意义1.请求协议 均为 http2.主机此这为 localhost3.端口号不同 一个 8080 一个 50002.注意3.解决跨域代理服务器 80801.同源策略限制的意义 让前端发送的请求不能随意访问其他端口的服务器&#xff0c;一定程度保护服务器和用户的隐私 1.请求协议 均为 …

nexus上传jar包

nexus上传自定义starter1、普通jar包和springboot的starter1.1、starter上传简介1.2、上传方法2.1.1、setting.xml文件2.1.2、项目中的pom文件1.3、具体部署2、父pom文件上传这里我们主要讲解两种&#xff0c;一种是jar包上传&#xff0c;包含普通jar包和springboot的starter包…

jmeter简单压力测试

测试目的&#xff1a;10个用户并发访问一个接口&#xff08;http://127.0.0.1:8080/dfm/login.action&#xff09;&#xff0c;能否正常响应。 一、打开JMeter 二、右击“测试计划”&#xff0c;添加线程组 三、设置线程组的线程数 JMeter中的线程组&#xff0c;类似于LoadRunn…

RCTFweb复现

文章目录filechecker_minieasy_uploadfilechecker_plusfilechecker_pro_maxezbypassezruoyifilechecker_mini 给了附件&#xff0c;代码比较短&#xff0c;先审计一下。 在这里发现了file –b命令&#xff0c;且filepath部分可控&#xff0c;明显的ssti漏洞&#xff0c;没过…

Clickhouse引擎之kafka

Clickhouse kafka引擎需要结合kafka使用&#xff0c;需要确保已经安装clickhouse和kafka 实战环境&#xff1a; Clickhouse-server 版本&#xff1a;22.4.5 Kafka版本&#xff1a;kafka_2.13-3.2.0 Clickhouse数据库执行&#xff1a; 1、使用引擎创建一个kafka消费者 CREA…

【OpenCV+Qt】使用车牌识别系统EasyPR识别车牌号

EasyPR是一个中文的开源车牌识别系统&#xff0c;其车牌识别划分为了两个过程&#xff1a;即车牌检测&#xff08;Plate Detection&#xff09;和字符识别&#xff08;Chars Recognition&#xff09;两个过程&#xff1a; 车牌检测&#xff08;Plate Detection&#xff09;&am…

用于医疗诊断的花青染料ICG-Sulfo-EG8-OSu,

凯新生物产品介绍&#xff1a; (ICG)是一个用于医疗诊断的花青染料。它是用于测定心输出量、肝脏功能、肝血流量,和对于眼科血管造影术。它有一个最大吸收光谱在800nm附近。这些红外波段可以穿透视网膜层,相比荧光素血管造影ICG血管造影图像允许进入更深的血液循环。传统的激活…

华为机试_HJ24 合唱队【中等】【收藏】

目录 描述 输入描述&#xff1a; 输出描述&#xff1a; 解题过程 提交代码 学习代码 代码一 代码二 收藏点 描述 N 位同学站成一排&#xff0c;音乐老师要请最少的同学出列&#xff0c;使得剩下的 K 位同学排成合唱队形。 设KK位同学从左到右依次编号为 1&#xff0…

想学Redis却不会安装,这有一个快速入门请拿去

一. Redis简介 1.什么是Redis Redis是一个完全开源免费、且遵守BSD协议的&#xff0c;高性能(NOSQL)的key-value数据库。Redis本身使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型&#xff0c;并提供多种语言的API。 2.Redis特点 Redis具有如下特点&#xff1…

DJ13-2 汇编语言程序设计

目录 一、顺序程序设计 二、分支程序设计 1. 用比较/测试命令条件转移指令实现分支 2. 采用跳转表实现多路分支 三、循环程序设计 1. 计数循环程序设计 2. 条件判断循环程序设计 四、子程序设计 1. 子程序设计举例 2. 主程序和子程序设计举例 一、顺序程序设计 举例…