结合CSS属性和伪元素选择器?

Sen*_*ful 7 css google-chrome css-selectors pseudo-element

如何将伪元素selector(:after)与属性selector([title])组合?

我尝试过使用div[title]:after,但这在Chrome中不起作用.

HTML:

<div title="foo">This div has a title.</div>
<div>This div does not have a title.</div>
Run Code Online (Sandbox Code Playgroud)

CSS:

div:after {
    content: "NO";
}
div[title]:after {
    content: "YES";
}
Run Code Online (Sandbox Code Playgroud)

演示:http://jsfiddle.net/jmAX6/

它在每个div的末尾显示"YES",当它在第二个div之后显示"NO"时.

我正在运行Chrome 17.0.963.38.它似乎在Safari 5.1.2中运行良好.

Bol*_*ock 9

这看起来像一个bug,最后报道了.如果您在样式表中的div[title] 任何位置添加至少一个声明的CSS规则,您的div[title]:after规则将会神奇地应用.例如:

div:after {
    content: "NO";
}
div[title] {
    display: block;
}
div[title]:after {
    content: "YES";
}
Run Code Online (Sandbox Code Playgroud)

看到更新的小提琴.

它似乎与你的第二个div有或没有某些HTML属性有关,如下面的评论所示.

  • 看起来它也依赖于所使用的属性,所以这肯定是一个错误:http://jsfiddle.net/jmAX6/7/同时查看带有`tabindex`的那个,当你勾选它时,伪元素纠正自己. (2认同)