一,.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></div> 
        <script> 
            var $el = $('#container') 
            var w = $el.width(); 
            console.log(w) 
        </script> 
    </body>    
</html>
除了設置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一樣)。
新聞熱點
疑難解答
圖片精選