css - 在 IE 中对 CSS 伪元素使用 "attr()"

标签 css internet-explorer-9 pseudo-element

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

<h4 class="category-label">This is a new event</h4>

h4:after
{
  content: attr(class);
  display: block;
  padding: 1em;
  background-color: #555;
}

将产生预期的结果 -- H4 元素的适当标签 类,H4 元素没有任何标签没有 大多数浏览器 Safari 5+ 中的 class 属性。

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

IE9

有没有办法保证IE9不为缺少引用content属性的父元素显示伪内容?没有内容的伪元素不应呈现...

最佳答案

就用

h4[class]:after

因此样式将仅应用于具有已定义类的元素

关于css - 在 IE 中对 CSS 伪元素使用 "attr()",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8646951/

相关文章:

css - Twitter Bootstrap 3 模态 : image not resizing vertically

html - 未显示弹出窗口

CSS :before Pseudo-element not displaying background-image with IE8

CSS 下拉菜单在 IE 7 中不起作用

php - &lt;!--[if lte IE8]>< ![endif]--> 出现在网站和下拉问题上

javascript - IE9 将上下文 'this' 转换为对象

html - IE9标题栏只显示域名不显示页面标题

javascript - Internet Explorer 9 是否会因为数组和对象文字末尾的额外逗号而窒息?

html - 如何重复CSS伪元素?

html - 汉堡包菜单(两行之间不可点击)