我遇到了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) –