哪些元素支持 ::before 和 ::after 伪元素?

2023-12-02

我正在尝试想出一些好的默认样式<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(使用前将#替换为@)

哪些元素支持 ::before 和 ::after 伪元素? 的相关文章

随机推荐