12

类似于这个问题: get CSS rule's percent value in jQuery

但是,我正在编写一个插件,它需要根据最初指定宽度的方式优雅地处理它。如果元素最初以像素为单位指定,那很好,因为这是,.width()和返回的值。.innerWidth()outerWidth().css('width')

但我想知道它是否最初设置为百分比。因此,如果容器元素调整大小,那么我知道要重新计算我在元素上设置的宽度。

这可能吗?我唯一能想到的就是尝试遍历 document.stylesheets 以寻找相关规则,但我认为这或多或少是不可能做到的。还有其他想法吗?

谢谢!

4

2 回答 2

4

这似乎.css('width')对我有用。

展示这个作品的小例子:

<html>
<head>
  <script src="http://code.jquery.com/jquery-latest.min.js"></script>
</head>
<body>

<div style="width:10%;" id="foo"></div>
<script>
alert($("#foo").css('width'));
</script>

</body>
</html>

这给了我“10%”的输出。希望我没有错过任何明显的东西。

于 2010-08-21T11:20:35.090 回答
2

我找不到解决问题的方法,但我想出了一个解决方法,让我可以在我的情况下做我需要做的事情。有问题的代码适用于我的名为 jScrollPane ( http://jscrollpane.kelvinluck.com/ ) 的 jQuery 插件。最后我所做的是将宽度设置为空(elem.css('width', null);)。这将删除我之前自己设置的宽度,并允许元素采用样式表中定义的自然宽度(即,如果它是这样定义的,则使用百分比)。然后我可以测量这个新值并使用它来将宽度设置为我想要的数字......

于 2010-08-22T21:48:52.600 回答