jQuery中有一些方法可以知道css页面中定义的元素的最大宽度值是%还是px,因为jQuery总是返回px中的值。
我的意思是......
.contain {
max-width:80%;
}
jQuery - > .contain是%!
.contain {
max-width:80px;
}
jQuery - > .contain在px!
THX!
答案 0 :(得分:3)
$('.contain').css('max-width')
它将返回一个字符串," 80px"要么" 80%"
然后你可以使用indexOf查找是否有" px"或"%"
if ($('.contain').css('max-width').indexOf("px") !== -1) {
//is in px
} else if ($('.contain').css('max-width').indexOf("%") !== -1) {
//is in %
}
答案 1 :(得分:2)
奇怪的是Louys Patrice Bessette和Mayday都是对的。
五月天的答案是正确的......如果你在Chrome中测试它! .css('width')
将返回px
(即使设置为%
),而使用该单位时.css('max-width')
将返回%
!但是,在Firefox中,值始终为px
。您可以使用下面的代码对此进行测试,并在Firefox和Chrome中打开。
console.log($('div').css('max-width'));
console.log($('div').css('width'));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div style="width: 80%; max-width: 80%">
Bananas
</div>
通过这个我们可以说Louys Patrice Bessette是正确的,因为你不能这样做。这是真的,如果你在谈论jQuery的CSS方法 - 可能是任何类似getComputedStyle的方法。
但是,您可以执行的操作是解析样式表并读取样式中写入的实际值。有许多其他答案可以解决这个问题,所以请检查它们(您可以使用搜索功能查找更多):
或者您可以简单地将CSS文件作为文本文件读取,然后使用正则表达式来查找所需的值。 (但是,这可能更慢或至少更容易出错。)
答案 2 :(得分:0)
«.css()方法是获取计算样式属性(...)»
的便捷方法«请注意,元素的计算样式可能与样式表中为该元素指定的值不同。例如,计算的维度样式几乎总是像素,但它们可以在样式表中指定为em,ex,px或%。»
这是一个使用最新jQuery版本(3.0.0)的测试 Fiddle 。
所以......简单的答案是不。