4

我想获取浏览器在渲染期间实际未使用的css样式表的值。

例如:

.blur {    
  data : "Great";
}

假设我在 div 上使用此类:

<div class = "blur"></div>

我尝试过但不起作用。

$(".blur").css("data");

预期产出

Great

编辑:对不起,我之前没有提到这一点,现在似乎引起了一些混乱。但是请阅读这个!

正如我在下面的评论中所说并想强调的那样,我已经制定了在 Internet Explorer 上生成一些文本阴影的算法——不是最好的算法,但仍然可以解决问题。但是,我试图访问某个元素的 text-shadow 属性,但我不能,因为 Internet Explorer 不存储它,因为它并没有真正呈现它,所以我需要访问样式表数据。所以我问的问题是再次访问“数据”,它也不像 IE8、IE9 的 textShadow 那样存储。

4

3 回答 3

4

您可以将数据存储在 HTML5 数据属性中。

<div class="blur" data-foo="great"></div>

然后用 jQuery 检索它

$('.blur').data('foo');
于 2012-12-28T20:28:14.213 回答
3

您可以对样式表标签进行原始访问,这是您能做的最好的事情,然后您可以使用http://jsfiddle.net/V7Zmn/1/之类的方式解析文本以获取您正在寻找的信息

// You'd have to find the right style tag
document.getElementsByTagName("style")[0].innerText
// outputs  a string like:   .blur {      color: red;  data : "Great";}  

这看起来像一个大技巧,但我还想不出一种更优雅的方式来做你需要的事情。,更好的方法是在 Internet Explorer 中使用类似 IE 的过滤器而不是文本阴影?我认为您尝试自己解决此问题的方法将花费比其价值更多的努力,并且您将逆流而上,与其他代码产生摩擦。

.myclass {    
  text-shadow: 2px 2px gray;
  filter: progid:DXImageTransform.Microsoft.dropshadow(OffX=2, OffY=2, Color='gray')
}

例子

于 2012-12-28T20:36:06.730 回答
1

我不确定浏览器是否有义务保留它不理解的属性。您可以尝试使用此代码,它显示了如何以编程方式访问样式表规则。然而,正如其他人所指出的,这可能不是 CSS 的最佳用途,即使它碰巧起作用。

于 2012-12-28T20:24:49.623 回答