如果最大宽度值是%或px

时间:2016-06-30 09:48:47

标签: jquery css

jQuery中有一些方法可以知道css页面中定义的元素的最大宽度值是%还是px,因为jQuery总是返回px中的值。

我的意思是......

.contain {
   max-width:80%;
}

jQuery - > .contain是%!

.contain {
   max-width:80px;
}

jQuery - > .contain在px!

THX!

3 个答案:

答案 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)

来自jQuery .css() page.

的引文
  

«.css()方法是获取计算样式属性(...)»

的便捷方法      

«请注意,元素的计算样式可能与样式表中为该元素指定的值不同。例如,计算的维度样式几乎总是像素,但它们可以在样式表中指定为em,ex,px或%。»

这是一个使用最新jQuery版本(3.0.0)的测试 Fiddle

所以......简单的答案是不。