首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >哪些元素支持::after和::after伪元素?

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

Stack Overflow用户
提问于 2010-08-22 02:51:17
回答 3查看 10.4K关注 0票数 24

我正在尝试为HTML5中的<input>s设计一些很好的默认样式,并尝试了以下方法:

代码语言:javascript
复制
input::after         { display: inline; }
input:valid::after   { content: ' ✓ '; color: #ddf0dd; }
input:invalid::after { content: ' ✗ '; color: #f0dddd; }

遗憾的是,::after内容从未出现过。对于伪元素,使用双冒号和单冒号不是问题;我已经尝试过这两种方法。拥有伪元素和伪类也不是问题;我已经在没有:valid:invalid的情况下尝试过了。我在Chrome、Safari和Firefox中也得到了相同的行为(Firefox没有:valid:invalid伪类,但我尝试过没有这些伪类)。

伪元素可以很好地处理<div><span><p><q>元素--其中一些是块元素,另一些是内联元素。

所以,我的问题是:为什么浏览器会同意<input>没有::after?我在说明书里找不到任何能说明这一点的东西。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-08-22 03:02:34

您可以在这里阅读http://www.w3.org/TR/CSS21/generate.html,:after只适用于包含(文档树)内容的元素。与<img><br>一样,<input>也没有内容。

票数 31
EN

Stack Overflow用户

发布于 2013-04-16 10:32:34

您可以在元素之前或之后放置跨度。例如:

代码语言:javascript
复制
<style>
  #firstName:invalid+span:before {
    content: "** Not OK **";
    color: red;
  }
  
  #firstName:valid+span:before {
    content: "** OK **";
    color: green;
  }
</style>

<input type="text" 
    name="firstName" 
    id="firstName" 
    placeholder="John" 
    required="required" 
    title="Please enter your first name (e.g. John )" 
/><span>&nbsp;</span>

票数 6
EN

Stack Overflow用户

发布于 2011-02-25 22:59:08

Webkit允许您在输入元素上执行::after。如果你想让它在Firefox中工作,你可以尝试在输入的标签上使用::after,而不是输入本身。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3538506

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档