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

时间:2015-05-15 03:10:46

标签: javascript jquery

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

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

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

2 个答案:

答案 0 :(得分:4)

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

,否则这仅以px为单位给出宽度

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

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/

答案 1 :(得分:3)

如果使用CSS设置宽度,您应该能够像这样解决:

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