获取指定元素的总宽度,包括边距和填充

时间:2012-10-12 01:46:01

标签: javascript jquery css

好的,我有这段代码。

<script>
$(document).ready(function(){

    var totalWidth = 0;

    $('.thewidgets').each(function(index) {
        totalWidth += parseInt($(this).width(), 10);
    });

    $('#marginwidgets').css({width: totalWidth});

});
</script>

html

<div id="marginwidgets">
 <div class="thewidgets">
  the widgets 1
 </div>
 <div class="thewidgets">
  the widgets 2
 </div>
 <div class="thewidgets">
  the widgets 3
 </div>
</div>

和css

#marginwidgets
{
margin: 0px auto;
overflow: auto;
max-width: 100%;
}
.thewidgets
{
width: 284px
padding: 5px;
margin-left: 10px;
}
.thewidgets:first-child
{
margin-left: 0px !important;
}

正如您在脚本中看到的那样,例程是获取.thewidgets的总宽度,然后将其总宽度应用到#marginwidgets中,这应该使#marginwidgets完美集中。

但是我希望.thewidgets的总宽度包括边距和填充,然后将其应用到#marginwidgets但我不知道如何制作它,有人可以在这里弄清楚如何做到这一点吗?

1 个答案:

答案 0 :(得分:3)

使用outerWidth代替宽度,并将true作为参数传递以包含边距:

$(this).outerWidth(true);

此外,维度函数返回Numbers而不是字符串,因此您可能需要parseIntMath.floorMath.ceil来使用Math.round