我遇到了CSS内容属性,它可以将文本添加到元素中。CSS内容属性可以在IE7中工作吗?
例如:
.class:after{
content: "testing";
}
不幸的是这个CSS属性只在IE8的工作只有DOCTYPE定义。
无论如何还是有解决方法,我们可以使这个工作在IE7呢?无需使用JavaScript或jQuery。
我遇到了CSS内容属性,它可以将文本添加到元素中。CSS内容属性可以在IE7中工作吗?
例如:
.class:after{
content: "testing";
}
不幸的是这个CSS属性只在IE8的工作只有DOCTYPE定义。
无论如何还是有解决方法,我们可以使这个工作在IE7呢?无需使用JavaScript或jQuery。
我正在使用此解决方案,它不需要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只有我用保罗爱尔兰的技术条件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');
}
这是一个了不起的解决方案...我可以使用它来制作[JIR CSS文本替换](http://alicious.com/new-css-image-replacement -jir /)在IE7中工作(pre:':before'支持)。 – thirdender
梦幻般的解决方案!我想为我的表单标签添加红色星号,所以我对IE7进行了如下修改。很棒。谢谢帕迪: form label.required {zoom}:expression(this.runtimeStyle ['zoom'] ='1',this.innerHTML + =' *'); } 表格标签。要求的跨度{font-size:16px; color:#ff0000; } – SixtySticks
+1此解决方案。它对我来说就像一个魅力。真的很烦人,我不得不将所有这些大类添加到我的CSS中,但这绝对有效。再次感谢。 – sma
您可以使用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');}
如果您的内容不intented在运行时改变,你可以ü SE以下内容:
.icon-glass {
*zoom: expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = '');
}
如果你的内容被设计在运行时改变,你可以做这样的事情:
.icon-glass {
*top:expression(0, this.innerHTML = '');
}
不幸的是,这是极其缓慢的。尽管IE6可能会在性能显着下降的情况下工作,但如果页面上的图标太多,IE7可能会崩溃。所以我不会推荐这个第二种技术,除非你只使用很少的图标,并且你可以承担性能的降低。
可能的重复[你如何解决IE不支持:之后?](http://stackoverflow.com/questions/813419/how-do-you-work-around-ie-not-supporting-after) –