- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我到处搜索以找到这个问题的答案,但我找不到。
我的问题是关于shorthand animation property 与 long way around。
当您想将两个动画链接在一起时,您不能执行以下操作
animation-name: keyframename1 1s, keyframename2 3s;
那行不通,但如果您通过删除 -name 执行以下操作,它会起作用。
animation: keyframename1 1s, keyframename2 3s;
我无法在任何地方在线找到任何信息,说明为什么您需要从选择器中删除名称部分才能使其正常工作。我知道这是一个速记属性,但似乎并不是一个冗长的方式来包含 2 个关键帧以一个接一个地工作。
因为一旦您声明了animation-name:,它只会采用第一个关键帧名称而忽略第二个。但是 animation: 应该是为一个关键帧组合各种选择器。不适用于组合多个关键帧名称。
如果不采用速记方式,您将如何包含两个关键帧名称以一个接一个地工作?是否可以使用 animation-name: 的选择器?为什么 W3C 网站不解释您实际上可以在速记属性中链接关键帧名称,而不仅仅是过渡选择器等。
最佳答案
MDN article在我看来,很有见地。
问题是当您指定 animation-name
时只是,您也不能指定持续时间。因此,您建议的规则
animation-name: keyframename1 1s, keyframename2 3s; /* this won't work! */
是无效语法。您的浏览器可能会将此解释为“让我们只应用动画 keyframename1
”,但至少在 Firefox 中该规则被完全忽略。实际上,我会预料到这种行为。
您的第二条规则是有效的并且确实会应用两个动画。这是因为 animation
指令将获取一个动画列表,每个动画都包含一个名称和持续时间。您可以指定更多,例如 animation-timing-function
, animation-iteration-count
和 animation-fill-mode
.您未指定的值设置为默认值。
这最后一句话很重要!当你写下以下内容时
animation-duration: 10s; /* this will be overwritten by the next line */
animation: keyframename1;
持续时间将为 0s
,因为这是 animation
的默认值,如您在链接文章中所见。
前面提到的特定指令也都包含一个列表。因此,如果您想应用多个动画,您可以在单个 animation
规则中完全指定它们,或者使用其他指令分别设置它们的所有属性。
以下代码段说明了这两种方法。可以看到结果完全一样。
@keyframes fly-down {
from { top: 0; }
to { top: 100px; }
}
@keyframes fly-right {
from { left: 0; }
to { left: 100px; }
}
div {
display: inline-block;
position: relative;
padding: 20px;
border: 1px solid #000;
}
div.method1 {
animation-duration: 1s, 3s;
animation-fill-mode: both;
animation-name: fly-right, fly-down;
}
div.method2 {
animation: fly-right 1s both,
fly-down 3s both;
}
<div class="method1">Hi!</div>
<div class="method2">Hi!</div>
关于css - 动画:速记属性与动画名称:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43395500/
哪个更好?使用像这样的速记: padding:5px 10px 15px 20px; 或者像这样使用手写体: padding-top:5px; padding-right:10px; padding-
我目前在编辑 manuscript.tex 文件时遇到问题。到目前为止,我一直使用文本简写 $$;然而,出现了一些问题,它要求我将所有 $...$ 替换为 \(\)。 我认为带有替换操作的“sed”应
我想要一个简单的 if 速记来检查一个数组是否有一个特定的键,如果有则取消设置它。 $test = array("hi" => "123"); isset($test["hi"]) ? unset($
我在 F# 中映射记录列表并获取命名值: type Person = { FirstName: string; LastName: string } let people = [ { Firs
因此,我有一对类型类,我将经常一起使用它们,并且我想避免每次都指定它们。基本上,而不是把 :: (Ord a, Fractional a, Ord b, Fractional b, ... Ord z
有没有更优雅的写法? : var AllOperation = $('#menu > li.operation'); var Operation1= AllOperation[0]; $(Operat
基本上我想这样做: x ? console.log("true") : x=55 && console.log("changed!!") 如果x为false,它会将值更改为55和console.log
而不是在方法的开头声明一个列表,添加到它然后返回它 - 我确信有一些可以写在循环中的速记返回语句,例如,保存额外的代码(声明等),但我忘记了。有人知道我的意思吗? 最佳答案 使用 yield : pu
我发现自己经常写这样的东西而且看起来太罗嗦了: obj = my_dict.get('obj') if obj: var = obj 有更好的方法吗?也许在一行中? 最佳答案 get 函数接受
多年来我一直在使用 PHP 进行编程,我一直想知道是否有一种方法可以“预连接”一个字符串。示例: $path = '/lib/modules/something.php'; $server = $_S
在将值附加到数组时,是否有 JavaScript(甚至在 coffeescript 中).push() 的简写?很像 php 的 $array[] = 'added to array';。 最佳答案
我读了this tutorial关于在 CSS 选择器中使用正则表达式并试图推断:是否有 CSS 速记来执行以下操作?我想选择所有类为“foo”的 div,这些类有一个附加类“a”、“b”、“c”或“
如何将 rotateX(50deg) rotateY(20deg) rotateZ(15deg) 组合成简写 rotate3d()? 最佳答案 rotateX(50deg) 等价于rotate3d(1
如何将 rotateX(50deg) rotateY(20deg) rotateZ(15deg) 组合成简写 rotate3d()? 最佳答案 rotateX(50deg) 等价于rotate3d(1
我有一个像这样的简单对象(或数组)... stdClass Object ( [people] => Array ( [0] => stdClass Object ( [nam
我有一个变量,如果该变量是一个对象,我想在该对象上调用一个方法,如果不是,我什么也不想做。 我想知道是否有任何理由不应该这样做。 var foo = null; /////////////////
我想知道是否有任何简写方式可以在 JavaScript 中创建一个 promise,或者有什么方法可以将 .then 添加到普通函数中。示例: dbl = a => a | 0 ? a * 2 : !
是否有以下 JavaScript bool 三元表达式的简写语法: var foo = (expression) ? true : false 最佳答案 当然,您只想将表达式转换为 bool 值: v
这个问题在这里已经有了答案: One-liner to take some properties from object in ES 6 (13 个答案) How to get a subset o
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭8 年前。 Improve
我是一名优秀的程序员,十分优秀!