如何知道如果DIV宽度设置在百分比或像素使用jQuery

How to know if a DIV width is set in Percentage or Pixel using jQuery

本文关键字:百分比 像素 jQuery 设置 如果 何知道 DIV      更新时间:2023-09-26

是否有可能知道如果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

jsFiddle的作用:http://jsfiddle.net/dwjqfLsz/

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

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