首页  >  文章  >  web前端  >  为什么 HTML5 中输入元素的内容显示后不会出现 ::after?

为什么 HTML5 中输入元素的内容显示后不会出现 ::after?

Susan Sarandon
Susan Sarandon原创
2024-10-24 17:45:02925浏览

Why Won't ::after Content Display for Input Elements in HTML5?

输入字段的 CSS 伪元素

在 HTML5 中,使用 CSS 伪元素添加视觉提示以形成输入可以增强用户体验。人们可能会尝试使用 ::before 和 ::after 伪元素进行样式设置,如以下示例所示:

<code class="css">input::after         { display: inline; }
input:valid::after   { content: ' ✓ '; color: #ddf0dd; }
input:invalid::after { content: ' ✗ '; color: #f0dddd; }</code>

但是,在显示输入元素的 ::after 内容时可能会遇到困难。尽管使用单冒号和双冒号、删除伪类并尝试不同的浏览器,内容仍然不可见。

而 ::after 伪元素可以在 div、span、p 和 等元素上无缝运行。 q,输入元素的情况并非如此。这种行为源于这些元素的一个基本属性:它们缺少文档树内容。

元素内容的角色

根据 CSS 规范 (http:// www.w3.org/TR/CSS21/generate.html), ::after 伪元素明确要求具有文档树内容的元素才能呈现其内容。输入元素与 img 和 br 类似,不包含此类内容。因此,根据设计,浏览器不会在输入字段的内容之后显示 ::after 内容。

以上是为什么 HTML5 中输入元素的内容显示后不会出现 ::after?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn