CSS3 渐变、变形、过渡、动画小结

2024-08-29 00:38

本文主要是介绍CSS3 渐变、变形、过渡、动画小结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

CSS3 渐变(IE9&-用滤镜filter来兼容)

线性渐变:

linear-gradient([ [ <angle> | to <side-or-corner> ] ,]? <color-stop>[, <color-stop>]+)

<side-or-corner> = [left | right] || [top | bottom]   八个方向,to bottom是默认值,相当于180deg。

<color-stop> = <color> [ <length> | <percentage> ]?

例:background-image:linear-gradient(to left bottom, red 20%, orange 40%, yellow 85%,green 100%);

      background-image:linear-gradient(-135deg,#ccc, #fcf);

径向渐变:

radial-gradient([ [ <shape> || <size> ] [ at <position> ]? , | at <position>, ]?<color-stop>[ , <color-stop> ]+)

<position> = [ <length> | <percentage> | left | center| right ]? [ <length> | <percentage> | top | center②| bottom ]? 

确定圆心的位置,默认值为center。如果提供2个参数,第一个表示横坐标,第二个表示纵坐标;如果只提供一个,第二值默认为50%,即center.

<shape> = circle |ellipse   圆或椭圆

例:background-image:radial-gradient(circle at 50px top, red 30%, yellow,green, aliceblue);

重复线性渐变repeating-linear-gradient; 重复径向渐变repeating-radial-gradient;

例:background-image:repeating-radial-gradient(circle,red, yellow 10px, green 80px);

 

CSS3 变形transform

1D变形函数:translateX(), translateY(), scaleX(),scaleY(), skewX(), skewY()…

2D变形函数:translate(),scale(),skew(), rotateZ()…

3D变形函数:rotateX(), rotateY(), rotate3d(),translateZ(), translate3d(), scaleZ(), scale3d(), matrix3d(), perspective()…

 

transformnone<transform-function> [<transform-function>]*

transform-origin<percentage> | <length> | left | center | right ] [ <percentage> | <length> | top | center | bottom ]?   变形中心50% 50%

transform-styleflat | preserve-3d

                            flat: 所有子元素在2D平面呈现;preserve-3D:

perspectivenone<length>  景深,属性要设置在父元素上才有效;越小越靠近,越大趋近于none;

                       vs perspective函数用在变形元素上,可与其他transform函数一起使用;

perspective-origin<percentage> | <length> | left | center | right ] [ <percentage> | <length> | top | center | bottom ]?    透视中心50% 50%

backface-visibilityvisible | hidden

例:transform: translateX(18px) scaleY(0.8)rotate(18deg) skew(-18deg) //X平移+Y缩放+旋转+倾斜


CSS3 过渡 transition:

·实现属性开始值与结束值之间的平滑过渡;

transition:<single-transition>[,<single-transition>]*

<single-transition> = [ none | <transition-property> ] || <transition-duration> || <transition-timing-function> || <transition-delay>

<' transition-property '>:过渡属性

<' transition-duration '>:过渡持续时间

<' transition-timing-function '>:过渡动画函数

<' transition-delay '>:过渡延迟时间

<transition-timing-function> = ease | linear | ease-in | ease-out |ease-in-out | step-start | step-end | steps(<integer>[, [ start | end ] ]?) | cubic-bezier(<number><number><number><number>)

 

linear:线性过渡。等同于贝塞尔曲线(0.0, 0.0, 1.0,1.0)

ease:平滑过渡。等同于贝塞尔曲线(0.25, 0.1,0.25, 1.0)

ease-in:由慢到快。等同于贝塞尔曲线(0.42, 0, 1.0,1.0)

ease-out:由快到慢。等同于贝塞尔曲线(0, 0, 0.58,1.0)

ease-in-out:由慢到快再到慢。等同于贝塞尔曲线(0.42, 0, 0.58,1.0)

step-start:等同于 steps(1,start)

step-end:等同于 steps(1, end)

steps(<integer>[, [ start | end ] ]?):接受两个参数的步进函数。第一个参数必须为正整数,指定函数的步数。第二个参数取值可以是start或end,指定每一步的值发生变化的时间点。第二个参数是可选的,默认值为end。

cubic-bezier(<number>, <number>, <number>,<number>):特定的贝塞尔曲线类型,4个数值需在[0, 1]区间内

例:

.front{

  background-color:#fcf;

  border:3px solid grey;

  transition:background-color 1.5s ease-in, border-radius 1.5s ease-out, border-color 1.3s linear 0.2s

}

front:hover{

  background-color:#cec;

  border-radius:150px;

  border-color:transparent;

}

  

触发过渡的方式:CSS伪类如:hover、:focus…;媒体查询;JS切换类名…;

解决-webkit-留下痕迹的问题:硬件加速(添加-webkit-transform:translate(0));


CSS3 动画animation

·  transition只能指定属性的起止状态;animation通过指定“关键帧”来声明动画;

animation:<single-animation>[,<single-animation>]*

<single-animation> = <single-animation-name> || <time> || <single-animation-timing-function> || <time> || <single-animation-iteration-count> || <single-animation-direction> || <single-animation-fill-mode> || <single-animation-play-state>

<' animation-name '>:动画名称,动画名必须对应一个@keyframes规则;

<' animation-duration '>:动画的持续时间;

<' animation-timing-function '>:动画过渡类型,与transition-timing-function类似;

<' animation-delay '>:动画延迟的时间

<' animation-iteration-count '>=infinite | <number>:对象动画的循环次数。默认值为1;

<' animation-direction '>=normal | reverse | alternate| alternate-reverse

alternate:先正常再反方向,交替运行;alternate-reverse:先反向再正向;

<' animation-fill-mode '>= none | forwards | backwards | both对象动画时间之外的状态;

<' animation-play-state '>= running | paused对象动画的状态。


animation实现的近似翻牌效果

<style>

.wrap{

  perspective:1000px;

}

.card{

  width:250px;

  height:350px;

  background-image:url(frontface.jpg);

  background-size:100% 100%;

}

.card:hover{

  animation: spin 5s linear infinite;

}

@keyframes spin{

  0%{ transform:rotateY(0); }

  25%{ background-image: url(frontface.jpg); }

  26%{ background-image: url(backface.jpg); }

  75%{ background-image: url(backface.jpg); }

  76%{ background-image: url(frontface.jpg); }

  100%{ transform:rotateY(360deg); }

}

</style>

<div class="wrap">

    <div class="card"></div>

</div>


/* 部分属性总结自 @飘零雾雨 《CSS参考手册》,灰色底色代表属性的默认值*/

这篇关于CSS3 渐变、变形、过渡、动画小结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1116343

相关文章

Vue3 的 shallowRef 和 shallowReactive:优化性能

大家对 Vue3 的 ref 和 reactive 都很熟悉,那么对 shallowRef 和 shallowReactive 是否了解呢? 在编程和数据结构中,“shallow”(浅层)通常指对数据结构的最外层进行操作,而不递归地处理其内部或嵌套的数据。这种处理方式关注的是数据结构的第一层属性或元素,而忽略更深层次的嵌套内容。 1. 浅层与深层的对比 1.1 浅层(Shallow) 定义

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

【 html+css 绚丽Loading 】000046 三才归元阵

前言:哈喽,大家好,今天给大家分享html+css 绚丽Loading!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦 💕 目录 📚一、效果📚二、信息💡1.简介:💡2.外观描述:💡3.使用方式:💡4.战斗方式:💡5.提升:💡6.传说: 📚三、源代码,上代码,可以直接复制使用🎥效果🗂️目录✍️

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

csu(背包的变形题)

题目链接 这是一道背包的变形题目。好题呀 题意:给n个怪物,m个人,每个人的魔法消耗和魔法伤害不同,求打死所有怪物所需的魔法 #include<iostream>#include<algorithm>#include<cstring>#include<stack>#include<queue>#include<set>//#include<u>#include<map

hdu3389(阶梯博弈变形)

题意:有n个盒子,编号1----n,每个盒子内有一些小球(可以为空),选择一个盒子A,将A中的若干个球移到B中,满足条件B  < A;(A+B)%2=1;(A+B)%3=0 这是阶梯博弈的变形。 先介绍下阶梯博弈: 在一个阶梯有若干层,每层上放着一些小球,两名选手轮流选择一层上的若干(不能为0)小球从上往下移动,最后一次移动的胜出(最终状态小球都在地面上) 如上图所示,小球数目依次为

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

Vue3项目开发——新闻发布管理系统(六)

文章目录 八、首页设计开发1、页面设计2、登录访问拦截实现3、用户基本信息显示①封装用户基本信息获取接口②用户基本信息存储③用户基本信息调用④用户基本信息动态渲染 4、退出功能实现①注册点击事件②添加退出功能③数据清理 5、代码下载 八、首页设计开发 登录成功后,系统就进入了首页。接下来,也就进行首页的开发了。 1、页面设计 系统页面主要分为三部分,左侧为系统的菜单栏,右侧

Flutter 进阶:绘制加载动画

绘制加载动画:由小圆组成的大圆 1. 定义 LoadingScreen 类2. 实现 _LoadingScreenState 类3. 定义 LoadingPainter 类4. 总结 实现加载动画 我们需要定义两个类:LoadingScreen 和 LoadingPainter。LoadingScreen 负责控制动画的状态,而 LoadingPainter 则负责绘制动画。

【VUE】跨域问题的概念,以及解决方法。

目录 1.跨域概念 2.解决方法 2.1 配置网络请求代理 2.2 使用@CrossOrigin 注解 2.3 通过配置文件实现跨域 2.4 添加 CorsWebFilter 来解决跨域问题 1.跨域概念 跨域问题是由于浏览器实施了同源策略,该策略要求请求的域名、协议和端口必须与提供资源的服务相同。如果不相同,则需要服务器显式地允许这种跨域请求。一般在springbo