如何知道是否使用jQuery在Percentage或Pixel中设置DIV宽度

如果DIV的宽度设置为百分比或像素,是否可以知道。

if (widthSetAsPixel) { // code for doing something with respect to Pixel } if (widthSetAsPercentage) { // code for doing something with respect to Percentage } 

你实际上不想使用jQuery,因为它只会给你px的宽度,即使它是以百分比(或其他单位)设置的。 因此,为了获得宽度的单位,你需要使用window.getComputedStyle 。 问题仍然是这只会给你宽度px,除非元素有display: none;

所以……为了得到实际单位的宽度,我写了这个函数:

 function getStyle(el){ var display = window.getComputedStyle(el).getPropertyValue("display"); el.style.display = "none"; var width = window.getComputedStyle(el).getPropertyValue("width"); el.style.display = display; return width; } 

然后检查宽度是否为百分比执行此操作:

 var element = document.getElementById("myElementID"); var widthIsPercent = getStyle(element).indexOf("%") > -1; 

这个原则适用于其他CSS属性,如heightleft等。

jsFile of it in action: http : //jsfiddle.net/dwjqfLsz/

如果使用CSS设置宽度,您应该能够像这样计算出来:

 var width = $('#yourDiv').css('width'); var widthSetAsPercentage = width.indexOf('%') > -1; var widthSetAsPixel = !widthSetAsPercentage;