0

我很难弄清楚为什么 Firefox3.1 在测试元素上返回“内容”的值,而 Safari 4 不会。

我的示例页面设置如下:

<style>
#asd{
content: 'test';
}
</style>

<div id="asd">
Bleh
</div>

我的 JS 正在使用 getComputedStyle。这适用于“背景颜色”等其他属性,但不适用于“内容”:

if( window.getComputedStyle ){
    var thestyle = window.getComputedStyle( document.getElementById('asd'), '');
    alert( thestyle.getPropertyValue('content') );
}

Safari 是否对伪元素选择器 :before 和 :after 有更多限制?我用 :after 进行了测试,但也失败了,而 FF 成功返回了数据。

4

2 回答 2

2

Safari 仅支持 :before 和 :after 伪元素的 content 属性。

于 2009-04-28T07:50:12.113 回答
1

看看这条线,它可能会解决你所有的问题:

<div id="#asd">

那不应该是:

<div id="asd">

我猜这是一个简单的错误,但为了澄清,您不需要(不应该)在元素 ID 的名称中包含 # 。

另外我猜 Firefox 忽略了这个问题,只是补偿了它,而 safari 可能在代码的实现上更加严格,所以它不会补偿。

于 2009-04-28T06:56:08.717 回答