当前位置:  开发笔记 > 编程语言 > 正文

我可以在输入字段上使用:before或:after伪元素吗?

如何解决《我可以在输入字段上使用:before或:after伪元素吗?》经验,为你挑选了13个好方法。

我试图:afterinput字段上使用CSS伪元素,但它不起作用.如果我使用它span,它可以正常工作.


这是有效的(在"buu!"之后和"更多"之前放置笑脸)

buuu!a some more

这不起作用 - 它只用红色调色someValue,但没有笑脸.


我究竟做错了什么?我应该使用另一个伪选择器吗?

注意:我不能添加span我的input,因为它是由第三方控件生成的.



1> Robert Korit..:

:before:after在容器内渲染

并且不能包含其他元素.


伪元素只能在容器元素上定义(或者更好地说只支持).因为它们的呈现方式容器本身内作为子元素.input不能包含其他元素因此不受支持.甲button在另一方面这也是一个表格元件支持它们,因为它的其他子元素的容器.

如果你问我,如果某个浏览器确实在非容器元素上显示这两个伪元素,那就是一个bug和一个非标准的一致性.规范直接谈到元素内容......

W3C规范

如果我们仔细阅读规范,它实际上说它们被插入包含元素中:

作者使用:before和:after伪元素指定生成内容的样式和位置.正如其名称所示,:before和:after伪元素指定元素文档树内容之前和之后的内容位置.'content'属性与这些伪元素一起指定插入的内容.

看到?元素的文档树内容.据我所知,这意味着容器内.


+1比接受的答案要好得多.感谢标准本身的清晰解释.对于`[required] :: before {content"*"; 红色; `:P
提示:如果您遇到的问题只是提交输入,例如``,请使用`
可爱的天使keven_464
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有