【发布时间】:2014-10-13 18:44:18
【问题描述】:
Google Chrome 版本 36.0.1985.143 似乎存在错误,或者我在这里遗漏了什么。 Firefox 和 Safari 似乎可以正常工作。
结帐Demonstration video on Vimeo
当以下 html 文档中存在表单元素时,似乎会在文档加载时触发 Css 转换:
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="style.css" />
</head>
<body>
<div></div>
<form></form>
</body>
</html>
还有一个简单的css文件:style.css
div {
-webkit-transition:background-color 2s;
-moz-transition:background-color 2s;
-o-transition:background-color 2s;
transition:background-color 2s;
width: 188px;
height: 188px;
background-color: red;
margin: 0 auto;
}
div:hover {
background-color: green;
}
当<form></form> 元素被移除时或当样式表规则被内联放置在文档的头部部分时,转换停止触发,如下所示:
<style>
div {
-webkit-transition:background-color 2s;
-moz-transition:background-color 2s;
-o-transition:background-color 2s;
transition:background-color 2s;
width: 188px;
height: 188px;
background-color: red;
}
</style>
这是一个实际的错误,还是我做错了什么?
P.S:我没有启用任何扩展,这种行为也显示在隐身模式下。 此外,这个问题还表明文档是通过文件夹在浏览器中打开还是从实际的 apache 网络服务器提供。
当我从类似的问题中重新创建“错误”时:CSS transition defined in external stylesheet causes transition on page load 它似乎已修复。直到我将过渡属性更改为背景颜色,当然添加了 <form></form> 元素..
更新:似乎这是 Chrome 中的一个实际错误。报告了here 和here。尽管他们不会很快修复它。任何人都知道一个简单的(css)黑客/修复这个?
更新2:Another Demo
【问题讨论】:
-
首先是什么导致了“过渡”?我认为我们缺少一些 CSS。
-
为了简化示例,我省略了转换的“原因”。我们可以添加一个额外的规则:
div:hover { background-color: green; }。无论哪种方式,在我的浏览器中,它现在从白色变为红色,当悬停时变为绿色。 -
你能向我们演示一下这个问题吗?
-
@Paulie_D 我添加了一个演示错误的视频:vimeo.com/103906083 并链接到 Chrome 的实际错误报告。遗憾的是他们不会修复它。
标签: html css forms google-chrome css-transitions