CSS Content Property可以在IE7中运行吗?

时间:2011-08-23 07:31:38

标签: css css-selectors cross-browser internet-explorer-7 css-content

我遇到了CSS内容属性,它可以将文本添加到元素中。

例如:

.class:after{
   content: "testing";
}

不幸的是,此CSS属性仅在IE8中使用!DOCTYPE已定义。

我们是否还可以使用它在IE7中工作?不使用JavaScript或jQuery。

4 个答案:

答案 0 :(得分:18)

我正在使用此解决方案,它不需要js。

.whatever {
  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = 'my content');
}

不要添加伪元素:before或:after。也可以使用regular html entities和html十六进制实体;它们似乎是某些角色所必需的,例如:正斜杠,/

对此解决方案的字体很棒:http://fortawesome.github.com/Font-Awesome/。我不确定他们是否开发了这种技术,但这是我第一次看到它的地方。

仅针对IE7,我使用Paul Irish的技术进行条件IE评论:http://paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/

所以它变成了:

.lt-ie8 .whatever {
  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = 'my content');
}

答案 1 :(得分:1)

不,IE7 does not support it

唯一可能是使用Javascript / Jquery。

答案 2 :(得分:0)

您可以使用CSS表达式在目标元素之后添加元素,然后使用另一个CSS表达式将内容添加到新元素,如下所示:

.class {zoom: expression( this.runtimeStyle.zoom="1", this.appendChild( document.createElement("i")).className="ie-after" );}

.class .ie-after {zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = 'testing');}​

答案 3 :(得分:0)

如果您的内容无意在运行时更改,则可以使用以下内容:

.icon-glass {
  *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}

如果您的内容打算在运行时更改,您可以执行以下操作:

.icon-glass {
  *top:expression(0, this.innerHTML = '');
}

不幸的是,这非常慢。虽然它可能会在IE6中显着降低您的性能,但如果您的页面上有太多图标,IE7可能会崩溃。所以除非你只使用很少的图标,否则你不会推荐第二种技术,你可以负担得起性能降低。