zoukankan      html  css  js  c++  java
  • jQuery1.8的几个小变化

     

    一,.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;
    				 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)。

    除了设置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

  • 相关阅读:
    Extjs 4.0 Grid 数据绑定 json 分页 不分页
    [转]AS语言基础
    tig支持中文搜索
    LPC及MudOS简介(一)
    欢送2012
    存储器性能测试
    为什么go语言适合开发网游服务器端
    从一段代码里看FreeBSD与Linux内存分配的不同
    新的开始
    多语言协作与二进制交互
  • 原文地址:https://www.cnblogs.com/snandy/p/2645882.html
Copyright © 2011-2022 走看看