我正在编写一个jQuery插件,我需要能够做的事情是确定用户指定的元素的宽度。问题是.width()或.css('width')总是会报告精确的像素,即使开发者已经分配了它,例如宽度:90%的CSS。
有没有办法让jQuery以px或%的格式输出元素的宽度,这取决于开发人员用CSS给它的值?
发布于 2010-10-24 07:44:17
我想说最好的方法是自己计算它:
var width = $('#someElt').width();
var parentWidth = $('#someElt').offsetParent().width();
var percent = 100*width/parentWidth;
发布于 2013-11-09 15:57:41
这绝对是可能的!
您必须首先隐藏()父元素。这将阻止JavaScript计算子元素的像素。
$('.parent').hide();
var width = $('.child').width();
$('.parent').show();
alert(width);
请参阅我的example。
发布于 2010-10-24 08:11:32
在这个堆栈溢出问题中记录了执行此操作的方法。
How do you read CSS rule values with JavaScript?
您唯一需要知道的是哪个样式表是类,还是遍历所有样式表的循环。下面的函数给出了类的所有特征,使用正则表达式来提取你想要的特征是很容易的。
function getStyle(className) {
var classes = document.styleSheets[0].rules || document.styleSheets[0].cssRules
for(var x=0;x<classes.length;x++) {
if(classes[x].selectorText==className) {
(classes[x].cssText) ? alert(classes[x].cssText) : alert(classes[x].style.cssText);
}
}
}
getStyle('.test');
https://stackoverflow.com/questions/4006588
复制相似问题