我正在尝试想出一些好的默认样式<input>
HTML5 中的 s 并尝试了以下操作:
input::after { display: inline; }
input:valid::after { content: ' ✓ '; color: #ddf0dd; }
input:invalid::after { content: ' ✗ '; color: #f0dddd; }
唉,::after
内容永远不会显示。伪元素的双冒号与单冒号不是问题;我两种都试过了。拥有伪元素和伪类也不是问题;我已经尝试过没有:valid
and :invalid
。我在 Chrome、Safari 和 Firefox 中得到了相同的行为(Firefox 没有:valid
and :invalid
伪类,但我在没有这些的情况下尝试过。)
伪元素工作得很好<div>
, <span>
, <p>
, and <q>
元素——其中一些是块元素,一些是内联元素。
所以,我的问题是:为什么浏览器同意<input>
没有::after
?我在规范中找不到任何表明这一点的内容。
正如您可以在这里阅读的那样http://www.w3.org/TR/CSS21/generate.html, :after 仅适用于具有(文档树)内容的元素。<input>
没有内容,以及<img>
or <br>
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)