如何知道是否使用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属性,如height
, left
等。
jsFile of it in action: http : //jsfiddle.net/dwjqfLsz/
如果使用CSS设置宽度,您应该能够像这样计算出来:
var width = $('#yourDiv').css('width'); var widthSetAsPercentage = width.indexOf('%') > -1; var widthSetAsPixel = !widthSetAsPercentage;