Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用;attr();论IE中的CSS伪元素_Css_Internet Explorer 9_Pseudo Element - Fatal编程技术网

使用;attr();论IE中的CSS伪元素

使用;attr();论IE中的CSS伪元素,css,internet-explorer-9,pseudo-element,Css,Internet Explorer 9,Pseudo Element,我正在对我的H4元素使用伪元素:after,并为内容属性提供一个attr('class'): <h4 class="category-label">This is a new event</h4> 将产生预期的结果——在大多数浏览器Safari 5+中,对带有类的H4元素使用适当的标签,对没有class属性的H4元素不使用任何标签 但是在IE9中,没有class属性的H4元素仍然会创建块伪元素,导致没有文本的空白灰色框,这不是预期的行为。在下图中,只有第一个块包含具有c

我正在对我的
H4
元素使用伪元素
:after
,并为
内容属性提供一个
attr('class')

<h4 class="category-label">This is a new event</h4>
将产生预期的结果——在大多数浏览器Safari 5+中,对带有类的
H4
元素使用适当的标签,对没有
class
属性的
H4
元素不使用任何标签

但是在IE9中,没有
class
属性的
H4
元素仍然会创建块伪元素,导致没有文本的空白灰色框,这不是预期的行为。在下图中,只有第一个块包含具有
class
属性的
H4
,值为“panel”;第二和第三个块中的其他
H4
元素没有任何
class
属性:

有没有办法确保IE9不会为缺少引用内容属性的父元素显示伪内容?不包含内容的伪元素不应呈现…

仅使用

h4[class]:after

因此,该样式将仅应用于具有已定义类的元素,我怀疑您是否可以在不使用javascript设置其显示的情况下“确保”它。可能发生的情况是浏览器之间的差异,即按照您的预期运行的浏览器忽略了
:在
和IE9将内容视为空内容后,请注意:'

,您不应该引用
这个词。正确的语法是
attr(class)
,而不是
attr('class')
。完全正确-抱歉。我的实际代码没有被引用。而且,这是预期的行为,所以它不是IE9错误。这种情况也发生在其他支持生成内容的浏览器中(请参阅)。我会解释原因,但我必须写一个完整的答案…啊-我检查了Chrome和FF上的小提琴,你是对的。与IE9的行为相同。看起来我是在iOS和Safari 5+上测试的,如果缺少属性,它就不会呈现内容。这是一次出人意料的旅行!我将在这里插入相关规范。不太热衷于添加一个解释行为的答案,但实际上并没有回答您的问题:|在这里查看
attr()
的描述:然后阅读本节:JavaScript也不能处理CSS生成的内容:/n不直接,但编写CSS规则是可以的(不可否认,这将是一个可怕的处理方法),特别是考虑到法布里齐奥优雅的解决方案。这非常有效——非常感谢。我的替代方案也会是类似的,比如
h4:not():after
,但我怀疑这是否有效。@atwixtor:嗯,你不能使用
:not()
指定具有属性的元素。(您可以使用它来指定没有属性的元素,例如
h4:not([class]):在
之后,但当然是相反的方式…):即使与CSS3选择器一起使用的属性是一个
类,也不行?我的直觉是,我会将所有H4元素作为目标,而没有类或ID。@atwixtor:
:not()
应该使用另一个简单的选择器作为括号中的参数。另外,由于属性是DOM元素的单个组件,因此不能真正选择没有属性的元素。
h4[class]:after