CSS3过渡与动画,2D与3D

news2024/11/23 19:16:47

背景和边框

1. border-image

该属性用于定义元素边框的背景图像
语法:border-image:none | url(img) imagesection [/imagewidth] imaghandling
其中imagesection定义用于边框不同部分的图像部分。imagesection值可以由图像上的4条分隔线组成,每条线以像素或者百分比为度量。
imaghandling可以定义的三个关键字,用于控制分隔线中间的区域可以被拉伸(strench)、重复(repeat)、平铺(round)。

border-image的速写属性:border-image: source slice width outset repeat;

这些值的含义分别是:

  • source:指定边框图片的路径,可以是一个 URL 或者 linear-gradient 等。
  • slice:控制图片的切片方式。它可以是一个数值,也可以是一个百分比。例如,30 表示切片的值为 30 像素。
  • width:指定边框图片的宽度。它可以是一个数值,也可以是一个百分比。例如,50 表示图片的宽度为 50 像素。
  • outset:控制图片在边框之外的区域,可以是一个数值,也可以是一个百分比。这个值将在 repeat 模式下产生效果。
  • repeat:控制图片的平铺方式。它可以是 stretch、repeat、round 等。
border-image: url(https://www.runoob.com/images/border.png) 30 50 round;
  • url(https://www.runoob.com/images/border.png):指定边框图片的路径,这里是一张图片的 URL。你可以替换这个 URL 为你自己的图片路径。
  • 30:border-image-slice 属性的值。指定了图片的切片方式。在这个例子中,30 表示切片的值。这个值决定了图片的哪个部分将被用于边框。具体来说,它表示图片的四个边缘各取 30 个像素的区域作为切片。
  • 50:border-image-width 属性的值。指定了图片的宽度,即用于边框的图片的宽度。在这个例子中,它是 50,表示边框图片的宽度为 50 个像素。
  • round:border-image-repeat 属性的值。指定了图片的平铺方式。在这个例子中,round 表示图片将被拉伸并重复,直到边框完全被填充。这种方式确保了图片能够平均地覆盖整个边框,同时尽量避免图像变形。

2. background

background:[background-color] [background-image] [background-repeat] [background-attachment] [background-position] / [ background-size] [background-clip] [background-origin];
  • background-color:用于设置元素的背景颜色。
    语法:background-color:color | transparent | inherit
  • background-image:用于设置元素的背景图像。
    语法:background-image:url(image-file) | none | inherit
  • background-repeat:用于设置背景图像的平铺方式。
    语法:backgrounf-repeat:repeat | repeat-x | repeat-y | no-repeat | inherit
  • background-position:用于设置背景图像的起始位置。
    语法:background-position:horizontal vertical
    background-position-x:length | percentage | left | center | right
    background-position-y:length | percentage | top | center | bottom

在CSS中,background-position属性用于设置背景图像的起始位置。当使用多个背景图像时,你可以通过逗号分隔的值指定每个背景图像的位置。background-position: right bottom, left top; 意味着有两个背景图像,分别设置在右下角和左上角。

  • background-size:用于设置背景图像的大小。
    语法:background-size:length | percentage [length | percentage]
  • background-origin:用于指定背景图片的起始位置是以内容框、内边距框还是边框框为基准。
    语法:background-origin:border | padding | content [,border | padding | content,..]
  • background-clip:用于指定背景图片是否裁剪到边框框内。
    语法:background-clip:border | padding [,border | padding,..]
  • background-attachment:用于设置背景图像的滚动方式。
    语法:background-attachment:scroll | fixed | inherit
  • background-blend-mode:用于指定背景图像与元素内容的混合模式。

Firefox浏览器支持该属性的形式使用-moz-前缀,而基于WebKit的浏览器则为-webkit-

2D转换&3D转换

2D领域

  • translate():通过矢量translation-value-x、translation-value-y指定转换方式。translation-value-y是可选的,如果不指定该值,则为0。移动(平移)
    语法:translate(translation-value-x,translation-value-y)
transform: translate(50px,100px);
/*translate值(50px,100px)是从左边元素移动50个像素,并从顶部移动100像素。*/
  • rotate():旋转对象。旋转
    语法:rotate(angle)
transform: rotate(30deg);
/*rotate值(30deg)元素顺时针旋转30度。*/
  • scale():根据指定的scale值缩放对象。1是表示与对象大小一样,小于1表示缩小对象,大于1表示放大对象。如果忽略第二个值y轴的缩放,那么将被看作与第一个是一样的。缩放
    语法:scale(number,number)
transform: scale(2,3);
/*scale(2,3)转变宽度为原来的大小的2倍,和其原始大小3倍的高度。*/
  • skew():根据指定的angle值使元素沿着X轴和Y轴进行倾斜。第二个值可以去掉,或者设为0。
    语法:skew(angle,angle)
transform: skew(30deg,20deg);
/*skew(30deg,20deg) 元素在X轴和Y轴上倾斜20度30度。*/

  • matrix():接受六个参数,通过这些参数定义一个2x3的矩阵,该矩阵可以用来执行平移、旋转、缩放和倾斜等变换。
    语法:matrix(a, b, c, d, e, f);

每个参数的作用如下:
a (水平缩放)
b (水平倾斜)
c (垂直倾斜)
d (垂直缩放)
e (水平平移)
f (垂直平移)

这些参数对应于矩阵:
| a c e |
| b d f |
其中,前两个参数 (a和b) 控制水平方向的缩放和倾斜,下两个参数 (c和d) 控制垂直方向的倾斜和缩放,而最后两个参数 (e和f) 控制水平和垂直方向的平移。

3D领域

  • perspective():规定3D元素的透视效果。
    语法:perspective(number | none)
  • translate3d(translation-value-x,translation-value-y,translation-value-z):与2D的使用方法类似,z不可以是百分比值
  • rotate3d(x,y,z,angle):根据x、y、z定义的点旋转对象
  • scale3d(x,y,z):与2D的使用方法类似
  • matrix3d(n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n):定义 3D 转换,使用 16 个值的 4x4 矩阵。

过渡与动画

transition-过渡

transition:transition-property transition-duration transition-timing-function transition-delay
  • transition-property:该属性用于定义转换应该应用哪个属性
    语法:transition-property:all | none | property-name-1 [,...property-name-N] -
    property-name仅仅是一个CSS属性名,例如color。默认值是all,表示所有属性的变化都是动画形式。通过都好分隔的列表可以列出多个属性。如果是这种情况,其他转换属性也可以列在一个逗号分隔的列表中,值是按顺序匹配的。
  • transition-duration:该属性用于定义动画播放一次的时间。(默认值是0,表示没有动画播放)
    语法:transition-duration:time [,time] *
  • transition-timing-function:该属性用于描述动画如何播放。(默认值是ease)
    语法:transition-timing-function:timingfunction [,timingfunction2,...timingfunctionN]
    其中timingfunction是下列值中的一个:cubic-bezier(number,number,number,number) | ease | ease-in | ease-in-out | ease out | linear
描述
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之间的数值。
  • transition-delay:该属性用于在一个动画开始前定义延迟。(默认值是0,表示动画马上开始)
    语法:transition-delay:time1 [,...timeN]

animation-动画

animation:animation-name animation-duration animation-timing-function animation-delay animation-iteration-count animation-direction
  • animation-name:该属性用于定义应该运行的动画。@keyframe指令定义实施动画的属性。关键字none可以用于覆盖其他命令。
    语法:animation-name:@keyframe-name | none [,@keyframe-name | none] *
  • animation-duration:该属性用于定义一个动画播放一次的时间。(初始值是0,表示没有动画播放)
    语法:animation-duration:time [,time] *
  • animation-timing-function:该属性用于描述动画如何播放(默认值是ease)
    语法:animation-timing-function:timingfunction [,timingfunction2,...timingfunctionN]
    其中timingfunction是下列值中的一个:cubic-bezier(number,number,number,number) | ease | ease-in | ease-in-out | ease out | linear
  • animation-delay:该属性用于定义动画开始之前的延迟。(默认值是0,表示动画马上开始)
    语法:animation-delay:time1 [,...timeN]
  • animation-iteration-count:该属性用于定义动画播放的次数。
    语法:animation-iteration-count:number | infinite [,number | infinite]
    !注意:number是一个整数值,关键字infinite表示一个持续的动画
  • animation-direction:该属性表示,每次循环为动画反向演示,或者重复播放。
    语法:animation-direction:normal | alternate [,normal | alternate]
描述
normal默认值。动画按照正常的方向播放,即从第一帧到最后一帧,然后循环。
reverse动画反向播放,即从最后一帧到第一帧,然后循环。
alternate动画交替正向和反向播放。在每个迭代中,动画正向播放一次,然后反向播放一次,如此往复。
alternate-reverse与alternate相似,但是开始时是反向播放。

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

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

相关文章

华为配置BGP的基本示例

组网需求 如图1所示,需要在所有Switch间运行BGP协议,SwitchA、SwitchB之间建立EBGP连接,SwitchB、SwitchC和SwitchD之间建立IBGP全连接。 说明 请确保该场景下互联接口的STP处于未使能状态。因为在使能STP的环形网络中,如果用交…

Docker部署 flowable-ui 进行流程建模

Docker部署 flowable-ui 进行流程建模 简介 安装Docker Desktop,本篇无安装步骤安装正常打开运行后,正式开始部署flowable-uicmd执行拉取镜像操作docker pull flowable/flowable-uicmd启动镜像docker run -d --name flowable -p 8081:8080 flowable/flowable-ui修…

最新国内可用使用GPT4.0,GPT语音对话,Midjourney绘画,DALL-E3文生图

一、前言 ChatGPT3.5、GPT4.0、GPT语音对话、Midjourney绘画,相信对大家应该不感到陌生吧?简单来说,GPT-4技术比之前的GPT-3.5相对来说更加智能,会根据用户的要求生成多种内容甚至也可以和用户进行创作交流。 然而,GP…

2023 年最佳物联网应用开发平台

您是否知道物联网应用程序开发平台是一个令人惊叹的概念,它改变了我们的做事方式?这一切都是为了连接事物,比如你的智能手机和你的房子。所以,想象一下:您正在房间里放松,您想让房间变得舒适。 您无需起身…

大数据知识图谱解码:从核心概念到技术实战

文章目录 大数据知识图谱解码:从核心概念到技术实战1. 概述什么是知识图谱知识图谱与自然语言处理的关系 2. 发展历程语义网络本体论大数据时代的知识图谱知识图谱与深度学习的融合 3. 研究内容知识图谱的建模与表示知识抽取知识图谱的融合与对齐知识图谱的推理知识…

[XR806开发板试用] XR806——基于FreeRTOS下部署竞技机器人先进模糊控制器

前言 很荣幸参与到由“极术社区和全志在线联合组织”举办的XR806开发板试用活动。本人热衷于各种的开发板的开发,同时更愿意将其实现到具体项目中。秉承以上原则,发现大家的重心都放在开发中的环境构建过程,缺少了不少实际应用场景的运用&am…

安卓好用的python编辑器,安卓平台python编辑器

本篇文章给大家谈谈安卓上好用的python编辑软件有哪些,以及安卓上好用的python编辑软件推荐,希望对各位有所帮助,不要忘了收藏本站喔。 1. 简介 Thonny是基于python内置图形库tkinter开发出来的支持多平台(windows,Mac,Linux)的python IDE&am…

Dubbo的学习笔记

目录 架构 zookeeper的简单介绍 简单案例 Dubbo-admin的简单使用 Dubbo高级特性 序列化 地址缓存 超时与重试 多版本 负载均衡 集群容错 服务降级 Dubbo是阿里巴巴开源的一个高性能、轻量级RPC框架 架构 provider:暴露服务的服务提供方container&#x…

React学习计划-React16--React基础(三)收集表单数据、高阶函数柯里化、类的复习

1. 收集表单数据 包含表单的组件分类 受控组件——页面中所有输入类的DOM,随着输入,把值存维护在状态里,需要用的时候去状态里取值(推荐,避免了过渡使用ref)非受控组件——页面中所有输入类的DOM,现用现取…

【Vulnhub 靶场】【ContainMe: 1】【简单-中等】【20210729】

1、环境介绍 靶场介绍:https://www.vulnhub.com/entry/containme-1,729/ 靶场下载:https://download.vulnhub.com/containme/THM-ContainMe-v4.ova 靶场难度:简单 - 中等 发布日期:2021年07月29日 文件大小:2.2 GB 靶…

文件的查看与管理

目录 一、命令之-----cat (一)查看文本文件内容 (二)合并文件内容 (三)创建文件 (四)追加内容到文件 二、管道符的作用 三、分页显示 (一)命令之…

Postgresql源码(118)elog/ereport报错跳转功能分析

1 日志接口 elog.c完成PG中日志的生产、记录工作,对外常用接口如下: 1.1 最常用的ereport和elog ereport(ERROR,(errcode(ERRCODE_UNDEFINED_TABLE),errmsg("relation \"%s\" does not exist",relation->relname)));elog(ERRO…

重塑数字生产力体系,生成式AI将开启云计算未来新十年?

科技云报道原创。 今天我们正身处一个历史的洪流,一个巨变的十字路口。生成式AI让人工智能技术完全破圈,带来了机器学习被大规模采用的历史转折点。 它掀起的新一轮科技革命,远超出我们今天的想象,这意味着一个巨大的历史机遇正…

Hbase的安装配置

注:本文默认已经完成hadoop的下载以及环境配置 1.上传zookeeper和hbase压缩包到指令路径并且解压 (理论上讲,hbase其实内置了zookeeper,我们也可以不另外下载,另外下载的目的在于减少组件间依赖性) cd /home mkir hbase cd /hom…

IDEA 黑色主题很难看到鼠标

“控制面板”—搜索“鼠标”关键字—选择“更改鼠标设置” 参考: IDEA 黑色主题很难看到鼠标

ansible的脚本-----playbook剧本

ansible的脚本-----playbook剧本 playbook组成部分: 1、tasks任务:包含要在目标主机上执行的操作,使用模块定义这些操作。每个任务都是一个模块的调用 2、variables变量:存储和传递数据,变量可以自定义,…

WeakMap 和 WeakSet:解决内存泄漏避免循环引用(上)

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

React组件状态管理

React组件的状态管理是一个很重要的内容。从字面来理解,按钮是否可单击、图片是否显示等,这些都是状态。广义来讲,React组件的状态还1包括传入React的数据,例如某个组件要展示列表,列表的数据也是该组件的状态。总之&a…

Dynamic Coarse-to-Fine Learning for Oriented Tiny Object Detection(CVPR2023待补)

文章目录 BeginningAbstract挑战方法成果 Introduction引出问题早期的work及存在的问题近期的work及存在的问题our workContribution Related Work(paper for me)Oriented Object DetectionPrior for Oriented ObjectsLabel Assignment Tiny Object Dete…

【算法】算法题-20231221

这里写目录标题 一、830. 较大分组的位置二、657. 机器人能否返回原点三、771. 宝石与石头 一、830. 较大分组的位置 在一个由小写字母构成的字符串 s 中,包含由一些连续的相同字符所构成的分组。 例如,在字符串 s "abbxxxxzyy"中&#xff0…