HTML5&CSS3笔记:CSS3过渡、变形和动画

2023-11-08

目前的情况是,如果页面上需要一些动画效果,要么你自己编写 JavaScript,要么使用 JavaScript 框架(如 jQuery)来提高效率。

但是,虽然 CSS3 不可能在短期内取代 jQuery 或类似的框架,但它完全有能力做一些如平滑过渡(比如在鼠标悬停时)和在屏幕上移动元素之类的事情。这对我们来说是个好消息,它意味着在越来越多支持现代浏览器的设备中,我们可以使用 CSS 替代 JavaScript 实现动画效果。

用纯 CSS 能完成同 JavaScript 一样有趣的效果。和之前一样,不支持这些特性的浏览器不会受到任何影响,它们会自动跳过无法识别的规则,就好像这些代码根本不存在一样。

什么是 CSS3 过渡以及如何使用它

我们在给超链接设置样式时,一般都会设置一个悬停状态(hover)的效果,这种方法能明显地提醒用户他的鼠标指向的是一个超链接。虽然对越来越多的触摸屏设备没太大用处,但不管怎么说,这种方法对网站和用户之间的交互是非常简单实用的。

通常,使用 CSS 时悬停状态就是一个开关。它默认有一个状态,然后在鼠标悬停时马上切换到另一种状态。

但是使用 CSS3 过渡,正如其名字所暗示的,可以让元素从一种状态慢慢转换到另一种状态。这种转换并不局限于悬停状态。

首先来看悬停效果:

#content a:hover {
    border: 1px solid #000000;
    color: #000000;
    text-shadow: 0px 1px white;
}

这里只是在鼠标悬停时简单地修改了一下文字、文字阴影以及边框的颜色。所以,你可能想象出来,使用这段 CSS 代码,当鼠标悬停在按钮上面时,按钮会直接从第一种状态突变到第二种状态——就是一个开关效果。下面来给第一段 CSS 规则添加一点 CSS3 :

#content a { 
    /*......原来的样式......*/ 
    transition: all 1s ease 0s;
}

现在再把鼠标悬停在按钮上,文字、文字阴影和边框阴影的颜色都会从第一种状态平滑过渡到第二种状态。

注意,这里把过渡应用到了元素而不是悬停状态hover上。这样做是为了让元素的其他状态(如:active)也能设置不同的样式并拥有类似的效果。所以请记住, 过渡声明要放在过渡效果开始的元素上。

.testcss{
    color:red;
    transition: all 3s ease 0s;
}
.testcss:hover{
    color:yellow;
}

过渡相关的属性

CSS3 过渡效果涉及四个属性,也可以使用包含这四个属性的缩写。

transition-property:要过渡的 CSS 属性名称(比如 background-color、 text-shadow 或者 all,使用 all 则过渡会被应用到每一个可能的 CSS 属性上);

transition-duration:定义过渡效果持续的时间(时间单位为秒,比如.3s、2s 或 1.5s);

transition-timing-function:定义过渡期间速度如何变化(比如 ease、linear、 ease-in、ease-out、ease-in-out 或 cubic-bezier);

transition-delay:可选,用于定义过渡开始前的延迟时间。相反,将该值设置为一个负数,可以让过渡效果立即开始,但过渡旅程则会从半路开始。

单独使用各种过渡属性创建转换效果的语法如下:

#content a {
......其他样式......
    transition-property: all;
    transition-duration: 1s;
    transition-timing-function: ease;
    transition-delay: 0s;
}

和以前一样,别忘了浏览器私有前缀。例如,上面那句简写声明添加了浏览器私有前缀之后,代码如下:

-o-transition: all 1s ease 0s; 
-ms-transition: all 1s ease 0s; 
-moz-transition: all 1s ease 0s; 
-webkit-transition: all 1s ease 0s; 
transition: all 1s ease 0s;

我们将没有前缀的标准版本放在了最后面,这样当浏览器完全实现了标准之后,这句代码就会覆盖之前带前缀的版本。

在不同时间段内过渡不同属性

当一条规则要实现多个属性过渡时,这些属性不必步调一致。看看下面这段代码:

#content a {
    /*......其他样式......*/
    transition-property: border, color, text-shadow; 
    transition-duration: 2s, 3s, 8s;
}

理解过渡调速函数

ease、linear、ease-in、ease-out、 ease-in-out 以及 cubic-bezier 这些东西都是做什么用的?
它们其实都是某种贝塞尔曲线,本质上就是缓动函数。详情链接:http://cubic-bezier.com/

CSS3 的 2D 变形

虽然两个英文单词发音相似,但 CSS 变形 (transformation,包括 2D 变形和 3D 变形) 和 CSS 过渡 (transitions) 完全不同。可以这样理解:过渡元素从一种状态平滑转换到另一种状态,而变形则定义了元素将会变成什么样子。

例如:2D 变形

nav ul li a:hover {
    transform: scale(1.7);
}

现在如果你尝试在 Safari 浏览器中添加这种规则,须注意它需要应用该规则的原始元素必须以块状显示。不这样做的话,什么效果都没有。

我们能做哪些变形

有两种可用的 CSS3 变形:2D 变形和 3D 变形。

2D 变形的实现更广泛,浏览器支持更好, 写起来也更简单些。CSS3 的 2D 变形模块允许我们使用下列变形:

scale:用来缩放元素(放大或缩小)
translate:在屏幕上移动元素(上下左右四个方向)
rotate:按照一定角度旋转元素(单位为度)
skew:沿 XY 轴对元素进行斜切
matrix:允许你以像素精度来控制变形效果

scale:transform: scale(0.5);

translate:transform: translate(40px, 0px);
translate 会告知浏览器按照一定度量值移动元素,可以使用像素或百分比。语法是第 一个值表示从左向右移动的距离(本例中是 40 像素),然后是从上往下移动的距离(本例中是 0 像素)。

rotate:transform: rotate(90deg)

skew:transform: skew(10deg, 2deg);
它会让元素在一个或两个轴上变形偏斜。第一个值是 X 轴上的斜切(本例中是 10 度),第二个值是 Y 轴上的斜切(本例中是 2 度)。 省略第二个值意味着仅有的值只会应用在 X 轴上(水平方向)。

matrix:transform: matrix(1.678, -0.256, 1.522, 2.333, -51.533, -1.989);
要完全理解矩阵你得了解相关的数学知识: http://www.w3.org/TR/css3-2d-transforms/#cssmatrix-interface
如果你的数学也不太好,我建议你访问这里:http://www.useragentman.com/matrix/
Matrix Construction Set 这个网站可以让你精确地将元素拖曳成想要的样子,然后它会自动生成完美的矩阵代码(代码中包含了浏览器私有前缀)。

transform-origin 属性:
在使用上述变形效果的同时,你还可以使用 transform-origin 属性来修改变形效果的起点。
transform-origin 属性的详细信息请见这里:http://www.w3.org/TR/css3-2d-transforms/#transform-origin-property

尝试 CSS3 的 3D 变形

Webkit 核心浏览器(Safari 和 Chrome)和 Firefox 10+都已支持 CSS3 的 3D 变形,但最新的 IE10 都还不支持该特性。尽管缺少“桌面版”浏览器的广泛支持,但多亏了移动平台浏览器基本都是 Webkit 血统,所以 3D 变形在 Android(V3 以后的版本)和 iOS(所有版 本)上均被支持。

实例代码:

html

<section class="Qcontainer">
  <div class="film">
    <div class="face front">
      <img src="img/goonies.jpg" alt="The Goonies" />
    </div>
    <div class="face back"><h5>HOT!</h5></div>
  </div>
</section>

css

.Qcontainer {
    height: 100%;
    width: 28%;
    position: relative;
    -webkit-perspective: 800;
    float: left;
    margin-right: 2%;
}
.film {
    width: 100%;
    height: 15em;
    -webkit-transform-style: preserve-3d;
    -webkit-transition: 1s;
}
.Qcontainer:hover .film {
    -webkit-transform: rotateY(180deg);
}
.face {
    position: absolute;
    -webkit-backface-visibility: hidden;
}
.back {
    width: 66%;
    height: 127%;
    -webkit-transform: rotateY(180deg);
    background: #3b3b3b;
    background: -webkit-linear-gradient(top,
        rgba(0,0,0,0.65) 0%,
        rgba(0,0,0,0) 100%);
    padding: 15%;
}

代码部署好之后,将鼠标悬停在图片上,会看到图片翻转到背面并显示出了该电影的评判结果。

下面来研究一下代码,看看 3D 变形效果是如何实现的。

第一个要点是在父级元素上设置透视。这样就开启了 3D 场景:

.Qcontainer {
    height: 100%;
    width: 28%;
    position: relative; 
    -webkit-perspective: 200; <-- 这是重点
    float: left;  
    margin-right: 2%;
}

透视的值越大,就表示你的视点与 3D 场景之间的景深越大。因此,如果想要一点隐约的 3D 效果,就增大透视值;如果想要非常明显的 3D 效果,则减小透视值。(3D 效果的立体程度,取决于 3D 场景与观察者之间的距离。)

下一个要点:

.film {
     width: 100%;
     height: 15em;
     -webkit-transform-style: preserve-3d;<-- 这是重点
     -webkit-transition: 1s;
 }

.Qcontainer 类中添加的透视声明只会应用到其第一个子元素上(即本例中的 class为.film 的 div)。因此,为了延续父元素的透视,我们给.film 元素设定了 preserve-3d (这样可以设置一个 3D 场景)。

接下来,当鼠标悬停在.Qcontainer 模块上时,我们给.film 这个 div 添加一个翻转效果:

.Qcontainer:hover .film {
    -webkit-transform: rotateY(180deg);
}

接下来的规则用来处理当海报翻转之后隐藏在其背面内容:

.face {
    position: absolute; 
    -webkit-backface-visibility: hidden;
}

.face 必须使用绝对定位,这样海报才能盖在.back 这个 div 的上面:

.back {
    width: 66%;
    height: 127%;
    -webkit-transform: rotateY(180deg);
    background: #3b3b3b;
    background: -webkit-linear-gradient(top,rgba(0,0,0,0.65) 0%,rgba(0,0,0,0) 100%);
    padding: 15%;
}

最后,我们给.back 这个 div 也加上 rotateY。不加这句的话,.back 这个 div 就会显示在正面海报之上。

我们可以用一点传统的 CSS 代码为非 Webkit 核心浏览器提供一个合理的降级方案。

3D 变形尚未成熟,大多数 3D 变形在使用百分比尺寸时效果都不太好。但是,CSS3 3D 变形的前途是光明的,当浏览器开始广泛支持时,它就为我们提供了一次难得的机遇,让我们可以将现在依赖于 JavaScript 的优雅效果移植到样式表中。

CSS3 动画效果

相较于 3D 变形,CSS3 动画的浏览器支持度更高。Firefox 5+、Chrome、Safari 4+、Android(所有版本)、 iOS (所有版本)均支持,IE 10 也决定加入该行列。

CSS3 动画由两部分组成:首先是关键帧声明,然后在动画属性中使用该关键帧声明。

上一节我们制作了一个简单的翻转效果,用于展示我对电影的评判结果。但是翻转效果的背面文字非常丑陋,所以我们来给这些文字添加一个有趣的闪烁效果。

首先是关键帧规则:

@keyframes warning {
  0% {
    text-shadow: 0px 0px 4px #000000;
  }
  50% {
    text-shadow: 0 0 20px #000000;
  }
  100% {
    text-shadow: 0px 0px 4px #000000;
  }
}

此处的代码没有加前缀,如果在浏览器中没有效果,你可能需要添加一组完整的浏览器私有前缀(如@-webkit-keyframes)。

分析一下上面的代码。

首先,我们定义了一个@keyframes(关键帧)声明。然后为这个特定的关键帧声明设置 了一个名称:warning。你可以将其叫成任何名字,但考虑到这些关键帧声明可以在多个元素上复用,所以建议取一个合理的名字。

可以设置多个关键帧(比如百分比值 10%、20%、30%、40%等等),或者也可以使用 from 和 to 值来定义动画的开始帧和结束帧。但注意 Webkit 浏览器在使用 from 和 to 值的情况下效果无法保证。

本例给文字阴影加一点动画,动画开始时是 4 像素阴影,然后用 50%的时间变化至 40 像素阴影,之后再变化回 4 像素阴影。

我们已经声明了关键帧,接下来可以在动画属性中引用它:

.back h5 {
    font-size: 4em;
    color: #f2050b;
    text-align: center;
    animation: warning 1.5s infinite ease-in;
}

在 animation 属性之后,我们设定了要使用的关键帧(例子中的 warning),然后设定了动画的持续时间(1.5s),之后设定了 animation-iteration-count(我们在此时使用了 infinite 让动画连续循环播放),最后设定了调速函数(ease-in)。

CSS3 动画缩写语法可以接受全部 7 个独立动画属性的值。
除了上例中使用的之外,还可以设定 animation-delay(动画开始前的延时),animation-play-state(值可以是 running 或 paused,用于控制动画的播放和暂停),最后还有 animation-fill-mode, 这个属性到现在我也没找到用武之地(默认值是 none)。当然也可以不用缩写语法,而是将它们一个一个单独列出来。

animation-name: warning;
animation-duration: 1.5s;
animation-timing-function: ease-in-out;
animation-iteration-count: infinite;
animation-play-state: running;
animation-delay: 0s;
animation-fill-mode: none;

这只是使用 CSS3 动画的一个简单示例。事实上任何 CSS 属性都可以用在关键帧动画中,所以有无限可能性。

网上有数不清的 CSS3 动画技巧范例,像 http://webdesignerwall.com/trends/47-amazing-css3-animation-demos 这个网页就足以给你提供丰富的 CSS3 动画灵感。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HTML5&CSS3笔记:CSS3过渡、变形和动画 的相关文章

  • 资深架构师分享:10个 Javascript 小技巧帮你提升代码质量

    主要介绍以下几点 提炼函数 合并重复的条件片段 把条件分支语句提炼成函数 合理使用循环 提前让函数退出代替嵌套条件分支 传递对象参数代替过长的参数列表 少用三目运算符 合理使用链式调用 分解大型类 本文会不断更新 不足之处欢迎评论区补充 1
  • CSS 学习笔记(基础)

    用来控制网页表现的语言 CSS Cascading Style Sheet 层叠样式表 然后我们继续看看 W3C 标准 结构 HTML 表现 CSS 行为 JavaScript CSS导入方式 选择器 属性 由于网页的框架结构是由HTML实
  • 函数防抖知识要点

    函数防抖 debounce JavaScript 中的函数大多数情况下都是由用户主动调用触发的 比如说点击 拖拽 改变浏览器尺寸 提交表单等 除非是函数本身的实现不合理 否则一般不会遇到跟性能相关的问题 但是在一些少数情况下 函数的触发不是
  • Saas-Export项目之部门数据回显(下拉框和单选框回显)

    Saas Export项目之部门数据回显 之前的经验 做数据回显一般就是在数据修改时需要查询出这条信息 然后再将数据拆分每一项逐一赋值在表单上 通常赋值就行 而且都是input type text这种类型的 所有只要在input里增加val
  • EduCoder_web实训作业--文本层次语义元素

    第一关 A D B B 第二关 strong 重要通知 strong
  • Vue框架--Ruoyi解析(前端)

    路由router注册 router目录下的 index js 配合 permission js 是整套vue前端项目的权限判断核心 index js 里面的path 配置都是一些不会与权限挂钩的路由 例如 404 登录页面路径等 permi
  • HTML5游戏实战(2):90行代码实现捕鱼达人

    捕鱼达人是一款非常流行的游戏 几年里赚取了数以千万的收入 这里借用它来介绍一下用Gamebuilder CanTK开发游戏的方法 其实赚钱的游戏未必技术就很难 今天我们就仅用90来行代码来实现这个游戏 CanTK Canvas ToolKi
  • 浏览器主页被篡改360篡改浏览器主页,官方四步最完美解决办法

    以前写过一篇浏览器主页被360篡改成他们的主页的文章 那时真的就是气的直接卸载了360 之后通过修改注册表的方式 将主页修改回来 方法很暴力 由于重做了系统 360又被重新安装了回来 结果和以往一样 我的主页还是被强制修改了 但是这次我冷静
  • web前端技术笔记(九)JavaScript介绍、变量、操作元素属性

    JavaScript JavaScript介绍 变量 变量类型 变量 函数 属性 函数参数命名规范 获取元素方法一 操作元素属性 通过 操作属性 通过 操作属性 innerHTML JavaScript介绍 JavaScript是运行在浏览
  • z-index 与 元素的层叠顺序

    z index 属性设置元素的堆叠顺序 拥有更高堆叠顺序的元素总是会处于堆叠顺序较低的元素的前面 注释 元素可拥有负的 z index 属性值 注释 Z index 仅能在定位元素上奏效 例如 position absolute 说明 该属
  • 使用h5标签需要兼容,不使用没有标签进行语义化,如何取舍?兼容IE6,7,8,canvas,video

    HTML5已向开发人员提供了很多新的标签 如section nav article header和footer等 这些标签语义化程度高 会被经常使用 但在IE6 IE7 IE8和Firefox 2等老式浏览器中却不能识别和正常使用 很多浏览
  • div标签的contenteditable属性实现input效果以及控制input的聚焦失焦

    在触屏 移动端网页 中 聊天室类型的输入框很常见 但是很多都是自定义样式的 直接改造input标签会很麻烦 给div标签设置contenteditable属性可以达到input标签的效果还能轻松的自定义样式 利用input事件和v text
  • HTML 5 标签、属性、事件及浏览器兼容性速查表

    HTML 5 可以说是近十年来 Web 标准最巨大的飞跃 和以前的版本不同 HTML 5 并非仅仅用来表示 Web 内容 它的使命是将 Web 带入一个成熟的应用平台 在这个平台上 视频 音频 图象 动画 以及同电脑的交互都被标准化 尽管
  • BugkuCTF-WEB题文件上传

    启动场景 发现是文件上传 只能上传图像 不能上传PHP文件 那应该是寻找漏洞上传PHP文件 PHP文件里写入一句话木马 使用burp抓包 不断尝试发现发现需要修改的地方有三个 一个是http head里的Content Type multi
  • webpack5 配置&使用 文档(大全)

    一 起步 1 基本安装 首先我们创建一个目录 初始化 npm 然后 在本地安装 webpack 接着安装 webpack cli 此工具用于在命令行中运行 webpack mkdir webpack demo cd webpack demo
  • HTML5学习(三):布局标签、列表、超链接和id

    1 布局标签 header表示网页的头部 页眉 main表示网页的主体部分 一个页面中只会有一个main footer表示网页的底部 页脚 nav表示网页中的导航 aside和主体相关的其他内容 侧边栏 article表示一个独立的文章 s
  • 滚动条样式

    一 在div中的滚动条样式 div webkit scrollbar width 5px 滚动条宽度 div webkit scrollbar thumb border radius 10px 滚动条圆角 webkit box shadow
  • 基于html5的国家历史文物网站的设计与实现-计算机毕业设计源码63653

    目 录 摘 要 Abstract 第 1 章
  • 移动端界面布局适配方案

    自适应和响应式 1 自适应 根据不同的设备大小来自动调整尺寸 大小 2 响应式 会随着屏幕的实时变动而自动调整 是一种自适应 移动端视口 能看到的区域就是视口 viewport fixed就是相对于视口来进行定位的 在PC端视口就只有一个
  • 第8章 多媒体嵌入

    学习目标 了解视频 音频嵌入技术 能够总结HTML5视频 音频嵌入技术的优点 了解常用的视频文件格式和音频文件格式 能够归纳HTML5支持的视频和音频格式 掌握HTML5中视频的嵌入方法 能够在HTML5页面中添加视频文件 掌握HTML5中

随机推荐

  • 系统默认编码的配置(转)

    运行locale指令得到当前系统编码设置的详细资料 一 locale的五脏六腑 1 语言符号及其分类 LC CTYPE 2 数字 LC NUMERIC 3 比较和排序习惯 LC COLLATE 4 时间显示格式 LC TIME 5 货币单位
  • java开发用amd处理器,为什么我的Java应用程序在AMD处理器上速度更快?

    I made the observation that my java application is running much faster when executed on an AMD processor in contrast to
  • java学习之_Spring框架01_IoC控制反转和DI依赖注入

    spring架构 Spring 最初的目标就是要整合一切优秀资源 然后对外提供一个统一的服务 Spring 模块构建在核心容器之上 核心容器定义了创建 配置和管理 bean 的方式 bean可以看成是一个黑盒子 即只需要知道其功能而不必知道
  • CustomEditor CustomPropertyDrawer

    CustomEditor typeof Type 这是所有写过编辑器的人非常熟悉的一行代码 因为它是编辑器的入口 但是 CustomPropertyDrawer typeof Type 恐怕就没几个人知道了 它和CustomEditor功能
  • 如何分析FPGA的片上资源使用情况

    如何分析FPGA的片上资源使用情况 在维护遗留代码 4 时序问题初露端倪这篇文章中 我提到 第三方开发的设计中 组合逻辑与时序逻辑的比例为2 6 1 这是造成该设计时序收敛困难的原因之一 mengyudn朋友很热心 对这个数据的来历产生了疑
  • 神经网络笔记

    神经网络 一 什么是神经网络 是基于生物学中神经网络的基本原理 在理解和抽象了人脑结构和外界刺激响应机制后 以网络拓扑知识为理论基础 模拟人脑的神经系统对复杂信息的处理机制的一种数学模型 二 神经网络的基本特性 1 非线性 非线性关系是自然
  • jsp自定义标签库

    标签的概念 标签 标签是一种XML元素 通过标签可以使JSP网页变得简洁并且易于维护 还可以方便地实现同一个JSP文件支持多种语言版本 由于标签是XML元素 所以它的名称和属性都是大小写敏感的 标签处理类 标签处理类似是Java类 这个类继
  • 绘图工具(代码实现绘图)---plantuml

    基础入门第一个例子 时序图 流程图 源代码 图片展示 还有很多这里不再介绍 最近看到asciidoc和plantuml 是编写文档的极好工具 相对word和visio 最大的好处是可以实现代码版本管理 作为changelist asciid
  • eclipse运行,提示错误:The selection cannot be launched,and there are no recent launch

    错误原因 1 代码编辑错误 重点检查 main的拼写 String args 的拼写 类名后有没有空格 的书写等 2 没有定义类 需要先添加类 在文件中书写 如下 先新建Hello world类 再在生成的文件中书写代码 运行 就能得到正确
  • 没有与参数列表匹配的构造函数_C++构造函数和初始化表

    构造函数和初始化表 1 构造函数 当类对象被创建时 编译系统对象分配内存空间 并自动调用该构造函数 由构造函数完成成员的初始化工作 因此构造函数的作用是初始化对象的数据成员 2 构造函数可以重载 构造函数通过参数表的差别化可以形成重载 创建
  • 移动开发学习第二课学习记录

    图片资源 图片资源有 png jpg gif 9 png等文件 图片资源分类 应用图标资源村房子啊mipmap文件中 界面中使用的图片资源 存放在drawable文件夹中 一般不采用花哨的配色 除了个别的活动主题外 一般以浅色暖色为主 调用
  • Kioptrix: Level 2靶机实战 sql注入万能密码到后台 命令执行;getshell 内核漏洞9542 提权

    Kioptrix Level 1靶机实战 前言 0x01 信息收集 1 1 探测靶机ip 1 2 nmap探测端口 0x02 漏洞探测 2 1 访问首页 80端口 2 1 1远程系统管理员登录界面 2 1 1 1 尝试万能密码 2 1 1
  • 统计学中的Bootstrap方法(Bootstrap抽样)

    Bootstrap又称自展法 自举法 自助法 靴带法 是统计学习中一种重采样 Resampling 技术 用来估计标准误差 置信区间和偏差 Bootstrap是现代统计学较为流行的一种统计方法 在小样本时效果很好 机器学习中的Bagging
  • C语言实现成语接龙完整版

    C语言实现成语接龙报告完整版 代码在最后面 实验报告书 实验名称 成语接龙人机对战游戏 摘要 成语接龙是中华民族传统的文字游戏 它有着悠久的历史 也有广泛的社会基础 是老少皆宜的民间文化娱乐活动 同时成语又是体现我国文字 文化 文明的一个缩
  • c# 微信支付宝退款

    支付宝 根据官网接口参数传即可 private static string appId XXX appid private static string privateKeyPem XXX 私钥private static string Al
  • kong的端口简介以及如何远程连接kong的管理端口

    KONG的端口 kong有四个端口号 分别为两个代理端口 proxy listen 0 0 0 0 8000 0 0 0 0 8443 ssl 两个管理端口 admin listen 127 0 0 1 8001 127 0 0 1 844
  • PAT : PAT (Basic Level) Practice(中文)答案(1001 ~ 1095)(纯C编写)

    题目集地址 报名了12月的PAT B 先试试水 已完成 2018 10 22 2018 11 14 更新 2018 12 09 PAT乙级考试100分 考试代码已更新 冬天坐火车跑去考试冻懵了 来年对战PAT甲级考试 目录 目录 题目集地址
  • Transactional outbox pattern

    文章目录 Transactional outbox pattern 事件驱动架构 Event Driven Architecture EDA 数据库事务和消息发布的一致性问题 Transactional outbox如何解决数据事务和消息发
  • FastDFS踩坑记

    FastDFS踩坑记 本篇文章转载于FastDFS作者 余庆 大佬的 FastDFS分享与交流 公众号 分享几个收集到的FastDFS踩坑案例 供大家参考 以防掉进同一个坑里 欢迎在评论区补充踩坑案例 案例一 我在之前的公司碰到的案例 st
  • HTML5&CSS3笔记:CSS3过渡、变形和动画

    目前的情况是 如果页面上需要一些动画效果 要么你自己编写 JavaScript 要么使用 JavaScript 框架 如 jQuery 来提高效率 但是 虽然 CSS3 不可能在短期内取代 jQuery 或类似的框架 但它完全有能力做一些如