为什么占位符伪元素的过渡属性在Chrome中有效?

The*_*lob 13 css placeholder css-transitions

::placeholder当我发现奇怪的东西时,我正在使用Codepen(Chrome 59.0.3071)上的伪元素.(请看我的JSFiddle)

简而言之,此CSS不应启用::placeholder2s 以上的颜色转换:

input::placeholder {color:red;transition:2s;}
input:hover::placeholder {color:green}
Run Code Online (Sandbox Code Playgroud)

使用Firefox,有超过上悬停2秒的时间间隔内没有颜色转变(这似乎根据是正确的这一部分是W3C规范的和此部分的不同的一个的-遵循螺纹的::first-line伪元素),而是有是一种立即向绿色的过渡;

但是,使用Chrome的同一个JSFiddle 确实::placeholder在2秒的时间内显示颜色转换,根据规格,这似乎是不正确的.

这是这个版本的Chrome中的一个错误(如果是这样,是否正在解决?)或者这是对我对CSS缺乏了解的指控?

Ben*_*orm 0

我在 w3c 文档中找不到它。看起来它曾经在一些较旧的 Firefox 版本中工作。

css 的解决方法可能是:

input[placeholder]{color:red; transition:color 2.1s;}
input:focus[placeholder]{color:blue}
Run Code Online (Sandbox Code Playgroud)

适用于 Chrome 和 Firefox。