一,.width() 和 .height()方法

1.8多了对css属性box-sizing的支撑,需要专注与1.7.2底分别了。1.7.2同以前的本子无论是否定义box-sizing:
border-box返回的都是盒模型中元素内容之宽度或可观,不包括padding和border。

1.8晚则不同了,当装了css属性box-sizing:
box-border后,使用width()返回的数值来或与css中设置的异。如

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8"/>
        <style type="text/css">
            #container {
                box-sizing: border-box;
                -moz-box-sizing: border-box;
                width: 500px;
                padding: 5px;
                border: 5px solid gold;
            }
        </style>
        <script src="js/jquery-1.8.0.js"></script>
    </head>
    <body>
        <div id="container"></div>
        <script>
            var $el = $('#container')
            var w = $el.width();
            console.log(w)
        </script>
    </body>   
</html>

 

div[id=container]的box-sizing设置为border-box(Firefox14.1尚非支持border-box,使用-moz-border-box)。

除却设置width:500px外,还安装了padding和border分别吗5px。各浏览器打印结果如下

IE6/7 : 500

IE8/9/10: 480

Safari5/6: 480

Chrome21/Firefox14: 480

 

IE6/7勿支持box-sizing,输出的还是500。但支持该熟悉的浏览器此时出口的结果则是480(刨去了盒模型的border和padding)。因此于1.8中需要小心运用box-sizing属性带来的width和height的结果生成。

 

二,.outerWidth 和 .outerHeight()方法

1.7.2跟前面版本,outerWidth/outerHeight只作为getter。不传true时返回元素的增幅或可观(含padding和border),传true时(当然也可传数字1)返回值长margin。

1.8跟后具有了setter功能,如果获时想计算margin只能传true,不可知传数字1等,因为传数字1等在jQuery内部用处理啊安元素宽高。且返回的匪是数字而是jQuery对象(和jQuery其它setter一样)。

 

相关:

http://www.w3.org/TR/css3-box/

http://www.w3.org/TR/2002/WD-css3-box-20021024/

https://developer.mozilla.org/en-US/docs/CSS/box-sizing

相关文章

网站地图xml地图