jQuery outerWidth()是否包含css大纲?

jQuery outerWidth()是否包含css大纲?,jquery,Jquery,令人惊讶的是,我在书中找不到这个问题的答案 我确实理解,根据大纲 大纲不占用空间,而是在内容上方绘制 不过,我还是会被玩大纲时看到元素宽度的不同结果弄糊涂。一个简单的测试表明情况并非如此。jquery版本1,2,3都没有考虑到这一点-对于不同的大纲s: $('.outlined').text(函数(){return$(this).outerWidth();}) 。概述{ 宽度:50px; 高度:50px; 边框:1px实心#f00; 边缘顶部:10px; } .大纲:第n个子(2){大纲:2p

令人惊讶的是,我在书中找不到这个问题的答案

我确实理解,根据大纲

大纲不占用空间,而是在内容上方绘制


不过,我还是会被玩大纲时看到元素宽度的不同结果弄糊涂。

一个简单的测试表明情况并非如此。jquery版本1,2,3都没有考虑到这一点-对于不同的
大纲
s:

$('.outlined').text(函数(){return$(this).outerWidth();})
。概述{
宽度:50px;
高度:50px;
边框:1px实心#f00;
边缘顶部:10px;
}
.大纲:第n个子(2){大纲:2px实心#000;}
.轮廓:第n个子(3){轮廓:3px实心#333;}
.轮廓:第n个子(4){轮廓:4px实心#666;}
.outline:n子项(5){outline:5px固体#999;}

一个简单的测试表明情况并非如此。jquery版本1,2,3都没有考虑到这一点-对于不同的
大纲
s:

$('.outlined').text(函数(){return$(this).outerWidth();})
。概述{
宽度:50px;
高度:50px;
边框:1px实心#f00;
边缘顶部:10px;
}
.大纲:第n个子(2){大纲:2px实心#000;}
.轮廓:第n个子(3){轮廓:3px实心#333;}
.轮廓:第n个子(4){轮廓:4px实心#666;}
.outline:n子项(5){outline:5px固体#999;}

轮廓应用于边界规则之上。因此,outerWidth()不包括其计算的大纲,正如我们从jQuery文档中看到的:

获取匹配元素集中第一个元素的当前计算宽度,包括填充和边框

没有提到提纲

因此,要计算包括轮廓在内的宽度,需要显式添加它:

parseFloat($(elem).outerWidth())+parseFloat($(elem).css('outline-width'));

注意:即使您决定采用包括边距在内的元素宽度,也不能仅使用
外径(true)
获得轮廓宽度值。您需要手动添加轮廓宽度。

轮廓应用于边界规则上方。因此,outerWidth()不包括其计算的大纲,正如我们从jQuery文档中看到的:

获取匹配元素集中第一个元素的当前计算宽度,包括填充和边框

没有提到提纲

因此,要计算包括轮廓在内的宽度,需要显式添加它:

parseFloat($(elem).outerWidth())+parseFloat($(elem).css('outline-width'));

注意:即使您决定采用包括边距在内的元素宽度,也不能仅使用
外径(true)
获得轮廓宽度值。您需要手动添加轮廓宽度。

否,jquery函数。outerWidth()不包括css轮廓和边距属性。它包括填充和边框css属性。

否,jquery函数。outerWidth()不包括css轮廓和边距属性。它包括填充和边框css属性。

您必须演示“不同的结果”让我们知道你指的是什么。@Paulie_D谢谢,我本来会这样做的,但是当我得到第一个答案时,我已经明白我的错误是由不同的问题(优先级)造成的,你必须演示“不同的结果”“让我们知道你指的是什么。@Paulie_D谢谢,我本来会这么做的,但当我得到第一个答案时,我已经明白我的错误是由另一个问题引起的(优先级)