我试图<input>在HTML5中为s 提出一些好的默认样式并尝试以下方法:
input::after { display: inline; }
input:valid::after { content: ' ? '; color: #ddf0dd; }
input:invalid::after { content: ' ? '; color: #f0dddd; }
Run Code Online (Sandbox Code Playgroud)
唉,::after内容永远不会出现.伪元素的双冒号与单冒号不是问题; 我试过了两个.拥有伪元素和伪类也不是问题; 我试过它不:valid和:invalid.我在Chrome,Safari和Firefox中都有相同的行为(Firefox没有:valid和:invalid伪类,但我没有那些尝试过.)
伪元件正常工作的<div>,<span>,<p>,和<q>元素-其中一些是块元件和一些是内联.
所以,我的问题是:为什么浏览器同意<input>s没有::after?我在规范中找不到任何可以表明这一点的内容.