Jquery 获取用百分比(最大宽度和最大高度)定义的计算CSS属性
我正在寻找一种安全的方法来获取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
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
-函数不计算这个呢?规范()告诉我应该计算它
你知道什么解决办法吗