我正在尝试为HTML5中的<input>
标签设置一些良好的默认样式,尝试了以下方法:
input::after { display: inline; }
input:valid::after { content: ' ✓ '; color: #ddf0dd; }
input:invalid::after { content: ' ✗ '; color: #f0dddd; }
哎呀,::after
的内容从未显示出来。这不是伪元素中使用双冒号与单冒号的问题;我已经尝试了两种方式。也不是伪元素和伪类同时存在的问题;我已经尝试过不使用 :valid
和 :invalid
。我在Chrome、Safari和Firefox中都遇到了同样的行为(Firefox没有 :valid
和 :invalid
伪类,但我尝试过不用这些)。
伪元素在 <div>
、<span>
、<p>
和 <q>
元素上正常工作——其中一些是块级元素,一些是内联元素。
所以,我的问题是:为什么浏览器都认为 <input>
没有 ::after
?我在规范中找不到任何有关这一点的信息。