Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 获取用百分比(最大宽度和最大高度)定义的计算CSS属性_Jquery_Html_Css - Fatal编程技术网

Jquery 获取用百分比(最大宽度和最大高度)定义的计算CSS属性

Jquery 获取用百分比(最大宽度和最大高度)定义的计算CSS属性,jquery,html,css,Jquery,Html,Css,我正在寻找一种安全的方法来获取CSS属性的计算值,这些属性目前不处于“活动”状态,例如minwidth,minheight,max width,max height等等 我的CSS代码如下所示: .element { width: 30%; max-width: 60%; } 如果我使用以下方法,jQuery将返回原始值: $('.element').css('max-width'); // returns "60%" 有趣的是,我用其他单位得到了正确的px结果: max-w

我正在寻找一种安全的方法来获取CSS属性的计算值,这些属性目前不处于“活动”状态,例如
minwidth
minheight
max width
max height
等等

我的CSS代码如下所示:

.element {
    width: 30%;
    max-width: 60%;
}
如果我使用以下方法,jQuery将返回原始值:

$('.element').css('max-width'); // returns "60%"
有趣的是,我用其他单位得到了正确的px结果:

max-width: 60em; // returns "960px"
max-width: 60rem; // returns "960px"
max-width: 60vh; // returns "396px"
max-width: 60vmax; // returns "1132px"
max-width: 60pt; // returns "80px"
一个简单的解决方案就是自己计算:

function calculatePixelFromPercentage(percentage, size) {
   return parseFloat(size * (parseFloat(percentage) / 100));
}

calculatePixelFromPercentage($('.element').css('max-width'), $('.element').parent().innerWidth());
问题是,结果可能会错误,具体取决于定位:绝对定位元素应该包含填充,相对定位元素应该排除填充。如果绝对定位的父对象不是相对的,结果也会不同。因此,我想知道是否有一个安全的解决方案关注CSS的这些特性

为什么jQuery的
css
-函数不计算这个呢?规范()告诉我应该计算它

你知道什么解决办法吗