CSS3 平面 2D 变换+CSS3 过渡


个人主页:学习前端的小z
个人专栏:HTML5和CSS3悦读
本专栏旨在分享记录每日学习的前端知识和学习笔记的归纳总结,欢迎大家在评论区交流讨论!


文章目录

  • ✍一、CSS3 平面 2D 变换
    • 💎1 坐标轴
    • 💎2 transform 语法
    • 💎3 translate 平移
    • 💎4 rotate 旋转
    • 💎5 transform-origin 语法
    • 💎6 scale 缩放
    • 💎7 skew 倾斜
  • ✍二、CSS3 过渡

✍一、CSS3 平面 2D 变换

容许元素在 2D 平面上进行变换:

  • 平移(translate)
  • 旋转(rotate)
  • 缩放(scale)
  • 倾斜(skew)

💎1 坐标轴

在这里插入图片描述

💎2 transform 语法

在 2D 平面上进行变换是通过设置 transform 属性,语法格式如下:

transform: none|transform-functions;

代码示例:

transform: translate(20px, 30px) rotate(30deg) scale(3, 4) skew(20deg, 30deg);

💎3 translate 平移

对非置换的行内元素无效,比如span(inline)无效,img(虽然是inline,但是它是置换元素)有效。

transform不会脱离文档流,也不改变文档流的大小和位置。只是视觉上发生了变换。

translate()方法,根据左(X 轴)和顶部(Y 轴)位置给定的参数,从当前元素位置移动。

transform: translate(50px, 100px);
transform: translateX(50px);
transform: translateY(50px);

translate值(50px,100px)是从左边元素移动50个像素,并从顶部移动100像素。

💎4 rotate 旋转

rotate()方法,在一个给定度数顺时针旋转的元素。负值是允许的,这样是元素逆时针旋转。

transform: rotate(30deg);

rotate值(30deg)元素顺时针旋转30度。

如果先旋转,则会导致坐标轴发生改变,从而后面的变换根据已改变的坐标轴进行变换:

/*改变 translateX,发现它是水平移动,坐标轴并没有改变*/
transform: translateX(10px) rotate(45deg);

/*改变 translateX,发现它是以改变的坐标轴进行移动,也就是斜角45deg往下走了*/
transform: rotate(45deg) translateX(10px);

💎5 transform-origin 语法

transform-origin属性允许您更改转换元素的位置。2D转换元素可以改变元素的X和Y轴。语法如下:

transform-origin: x-axis y-axis;
/*默认值是 x-axis:center y-axis: center*/

取值如下:

描述
x-axis定义视图被置于 X 轴的何处。可能的值:left、center、right、length、%
y-axis定义视图被置于 Y 轴的何处。可能的值:top、center、bottom、length、%

💎6 scale 缩放

scale()方法,该元素增加或减少的大小,取决于宽度(X 轴)和高度(Y 轴)的参数:

transform: scale(2, 3);

transform: scaleX(2);
transform: scaleY(3);

scale(2,3)转变宽度为原来的大小的2倍,和其原始大小3倍的高度。

缩放用 >=0 数字

💎7 skew 倾斜

语法

transform:skew(<angle> [,<angle>]);

包含两个参数值,分别表示X轴和Y轴倾斜的角度,如果第二个参数为空,则默认为0,参数为负表示向相反方向倾斜。

  • skewX(<angle>);表示只在X轴(水平方向)倾斜。
  • skewY(<angle>);表示只在Y轴(垂直方向)倾斜。
transform: skew(30deg, 20deg);
transform: skewX(30deg);
transform: skewY(20deg);

skew(20deg,30deg) 元素在 X 轴倾斜 20 度和 Y 轴上倾斜 30 度。

✍二、CSS3 过渡

过渡(transition)是CSS3中具有颠覆性的特征之一,我们可以在不使用 Flash 动画或 JavaScript 的情况下,当元素从一种样式变换为另一种样式时为元素添加效果。

过渡动画: 是从一个状态(起始值) 渐渐的过渡到另外一个状态(终止值)

  • 0 ~ 100,100s,叫做过渡,里面存在一个速率

可以让我们页面更好看,更动感十足,虽然 低版本浏览器不支持(ie9以下版本) ,但是不会影响页面布局。

我们现在经常和 :hover 一起 搭配使用

transition: 要过渡的属性 花费时间 运动曲线 何时开始;
  • 属性 : 想要变化的 css 属性, 宽度高度 背景颜色 内外边距都可以 。如果想要所有的属性都变化过渡, 写一个all 就可以。
  • 花费时间: 单位是 秒(必须写单位) ,比如 0.5s
  • 运动曲线: 默认是 ease (可以省略)
  • 何时开始: 单位是 秒(必须写单位)可以设置延迟触发时间 默认是 0s (可以省略)

timing-function 曲线属性

在这里插入图片描述

描述
linear规定以相同速度开始至结束的过渡效果(等于 cubic-bezier(0,0,1,1))。
ease规定慢速开始,然后变快,然后慢速结束的过渡效果(cubic-bezier(0.25,0.1,0.25,1))。
ease-in规定以慢速开始的过渡效果(等于 cubic-bezier(0.42,0,1,1))。
ease-out规定以慢速结束的过渡效果(等于 cubic-bezier(0,0,0.58,1))。
ease-in-out规定以慢速开始和结束的过渡效果(等于 cubic-bezier(0.42,0,0.58,1))。
cubic-bezier(n,n,n,n)了解 cubic-bezier 函数中定义自己的值。可能的值是 0 至 1 之间的数值。

cubic-bezier 即为贝兹曲线中的绘制方法。图上有四点,P0-3,其中 P0、P3 是默认的点,对应了[0,0], [1,1]。而剩下的 P1、P2 两点则是我们通过 cubic-bezier()自定义的。cubic-bezier(x1, y1, x2, y2) 为自定义,x1,x2,y1,y2 的值范围在[0, 1]。

在这里插入图片描述

贝兹曲线调试网址:cubic-bezier

使用方法:在上面网址中选择想要的缓动效果(如:cubic-bezier(.17,.67,.84,.66)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用keil开发stm32串口

1&#xff0c;初始化IO串口1&#xff0c;pclk2:PCLK2时钟频率(Mhz)&#xff0c;波特率9600&#xff0c; 中断向量一般配置用中断方式接收数据 I/O口配置&#xff1a;TXD配置为复用推挽输出&#xff08;GPIO_Mode_AF_PP&#xff09;&#xff0c;RXD配置为浮空输入&#xff08;GP…

总分410+专业130+国防科技大学831信号与系统考研经验国防科大电子信息与通信工程,真题,大纲,参考书。

好几个学弟催着&#xff0c;总结一下我自己的复习经历&#xff0c;希望大家复习少走弯路&#xff0c;投入的复习正比换回分数。我专业课831信号与系统130&#xff08;感觉比估分要低&#xff0c;后面找Jenny老师讨论了自己拿不准的地方也没有错误&#xff0c;心里最近也这经常回…

ETL结合飞书快速实现业务信息同步

一、ETL工具介绍 ETLCloud数据集成平台是一款针对IT以及数据工程师推出的全域数据集成平台产品。它是集实时数据集成和离线数据集成以及API发布为一体的数据集成平台。与其他开源数据集成工具相比&#xff0c;系统采用轻量化架构、具有更快的部署速度、更快的数据传输速度、更…

机器学习-09-图像处理02-PIL+numpy+OpenCV实践

总结 本系列是机器学习课程的系列课程&#xff0c;主要介绍机器学习中图像处理技术。 参考 【人工智能】PythonOpenCV图像处理&#xff08;一篇全&#xff09; 一文讲解方向梯度直方图&#xff08;hog&#xff09; 【杂谈】计算机视觉在人脸图像领域的十几个大的应用方向&…

hertzbeat监控工具部署

目录 参考简介部署docker-compose.ymldocker安装使用portanier部署访问地址默认用户密码 配置SpringBoot程序配置基础信息新增阈值规则新增通知策略 参考 家庭私有云上 Docker 部署 hertzbeat&#xff0c;好用的监控告警系统 官网 简介 hertzbeat是一个拥有强大自定义监控能…

CSS实现弹性盒子保持水平和垂直居中

弹性盒子 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> </head> &…

算法思想总结:分治思想

一、颜色划分 . - 力扣&#xff08;LeetCode&#xff09; class Solution { public:void sortColors(vector<int>& nums) {//三路划分的思想int nnums.size();int left-1, rightn,cur0;while(cur<right){if(nums[cur]0) swap(nums[left],nums[cur]);else if(nums…

014:vue3 van-list van-pull-refresh实现上拉加载,下拉刷新

文章目录 1. 实现上拉加载&#xff0c;下拉刷新效果2. van-list&#xff0c;van-pull-refresh组件详解2.1 van-list组件2.2 van-pull-refresh组件 3. 完整案例4. 坑点&#xff1a;加载页面会一直调用加载接口 1. 实现上拉加载&#xff0c;下拉刷新效果 通过下拉刷新加载下一页…

【尝试】域名验证:配置github二级目录下的txt文件

【尝试】域名验证&#xff1a;配置github二级目录下的txt文件 写在最前面一、初始化本地仓库二、设置远程仓库1. 远程仓库 URL 没有设置或设置错误添加远程仓库修改远程仓库 2. 访问权限问题3. 仓库不存在步骤 1: 在你的仓库中添加文件步骤 2: 确认GitHub Pages设置步骤 3: 访问…

Android Studio 使用Flutter开发第一个Web页面(进行中)

附上Flutter官方文档 1、新建Flutter项目&#xff08;需要勾选web选项&#xff09; 新建项目构成为&#xff1a; 2、配置 Flutter 使用 path 策略 官方文档 在main.dart中&#xff0c;需要导入flutter_web_plugins/url_strategy.dart包&#xff0c;并在main(){}函数中usePath…

玄子Share-使用 Pycharm 执行 Shell 脚本

玄子Share-使用 Pycharm 执行 Shell 脚本 Why&#xff1f; 为什么我要使用 Pycharm 执行 Shell 脚本呢&#xff0c;我直接使用 Linux 不行吗&#xff1f; 使用 Pycharm 执行 Shell 脚本的好处 我们的宿主机都是 WIndows 平台&#xff0c;若想编译 Shell 脚本&#xff0c;我…

Java并发(1)--线程,进程,以及缓存

线程和进程是什么&#xff1f; 进程 进程是程序的一次执行过程&#xff0c;系统程序的基本单位。有自己的main方法&#xff0c;并且主要由主方法运行起来的基本上就是进程。 线程 线程与进程相似&#xff0c;但线程是一个比进程更小的执行单位。一个进程在其执行的过程中可以…

Android广播之监听应用程序安装与卸载

&#x1f604;作者简介&#xff1a;小曾同学.com,一个致力于测试开发的博主⛽️&#xff0c; 如果文章知识点有错误的地方&#xff0c;还请大家指正&#xff0c;让我们一起学习&#xff0c;一起进步。&#x1f60a; 座右铭&#xff1a;不想当开发的测试&#xff0c;不是一个好测…

一个开源跨平台嵌入式USB设备协议:TinyUSB

概述 TinyUSB 是一个用于嵌入式系统的开源跨平台 USB 主机/设备堆栈&#xff0c;设计为内存安全&#xff0c;无需动态分配&#xff0c;线程安全&#xff0c;所有中断事件都被推迟&#xff0c;然后在非 ISR 任务函数中处理。查看在线文档以获取更多详细信息。 源码链接&#xff…

算法:双指针

算法&#xff1a;双指针 双指针快慢指针对撞指针总结 双指针 LeetCode 283.移动零 以上题目要求我们把所有0移动到数组的末尾&#xff0c;也就是说&#xff0c;我们要把数组转化为以下状态&#xff1a; [ 非0区域 ] [ 0区域 ] 像这种把一个数组划分为多个区域的题型&#xff0…

ChatGPT 会被 OpenAI 的版权诉讼摧毁吗?|TodayAI

未来人工智能是否能与人类融合成为一个引人关注的问题&#xff0c;但目前&#xff0c;ChatGPT等人工智能技术可能首先需要面对一个更紧迫的挑战&#xff1a;大规模的版权侵权诉讼。近期&#xff0c;ChatGPT因涉嫌在未经授权的情况下使用大量作者的作品进行训练&#xff0c;而被…

【Linux】网络基础(一)

文章目录 一、计算机网络背景1. 网络发展2. 认识“协议” 二、网络协议初识1. 协议分层2. OSI七层模型3. TCP/IP五层&#xff08;或四层&#xff09;模型 三、网络传输基本流程1. 同局域网的两台主机通信数据包封装和分用封装分用 2. 跨网络的两台主机通信 四、网络中的地址管理…

轻量带屏解决方案之恒玄芯片移植案例

本文章基于恒玄科技BES2600W芯片的欧智通 Multi-modal V200Z-R开发板 &#xff0c;进行轻量带屏开发板的标准移植&#xff0c;开发了智能开关面板样例&#xff0c;同时实现了ace_engine_lite、arkui_ui_lite、aafwk_lite、appexecfwk_lite、HDF等部件基于OpenHarmony LiteOS-M内…

线性代数

标量、向量、张量 标量占据的是零维空间向量占据的是一维数据&#xff0c;例如语音信号矩阵占据的是二维数组&#xff0c;例如灰度图像张量占据的是三维乃至更高维的数组&#xff0c;例如RGB图像和视频 内积(点乘)概述 内积(inner product) 计算的则是两个向量之间的关系 两…

掌握JMeter HTTP 请求头:简单易懂

在深入研究 JMeter 的过程中&#xff0c;任何涉及性能测试或接口验证的专业人员都会认识到&#xff0c;合理配置HTTP请求头部信息是实现精确测试的关键步骤之一。不同情景下&#xff0c;如数据提交形式的不同&#xff08;例如 JSON、XML 等&#xff09;&#xff0c;或是需要通过…