我正在努力弄清楚为什么Firefox3.1会在测试元素上返回'content'的值,而Safari 4则不会。
我的示例页面设置如下:
<style>
#asd{
content: 'test';
}
</style>
<div id="asd">
Bleh
</div>
我的JS正在使用getComputedStyle。这适用于其他属性,如“background-color”,但不适用于“content”:
if( window.getComputedStyle ){
var thestyle = window.getComputedStyle( document.getElementById('asd'), '');
alert( thestyle.getPropertyValue('content') );
}
Safari是否对伪元素选择器有更多限制,:before和:after?我测试过:after,也失败了,而FF成功返回数据。
答案 0 :(得分:2)
Safari仅支持:before和:after伪元素的内容属性。
答案 1 :(得分:1)
检查此行可能会解决您的所有问题:
<div id="#asd">
不应该是:
<div id="asd">
我猜这是一个简单的错误,但为了澄清,你不需要(不应该)在元素id的名称中包含#。
另外我猜测Firefox忽略了这个问题并且只是补偿它,而safari可能会更严格地执行代码,因此它不会补偿。