一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

jQuery 中css方法对浮动

时间:2011-09-07 编辑:简简单单 来源:一聚教程网

JavaScript中设置元素的浮动属性(float),标准浏览器使用css教程Float,IE旧版本使用styleFloat。这样使用$(xx).css("cssFloat", "right") 或 $(xx).css("styleFloat", "right") 各浏览器就都ok了

jQuery的css方法统一了两种写法,直接使用float属性即可,如下css方法中传参数“float”即可以设置也可以获取元素的float。

float div

但jQuery非要自作聪明,加上对cssFloat和styleFloat的支持,见API文档,比如获取元素的float属性时,以下是等价的。

1 $('div.left').css('float');

2 $('div.left').css('cssFloat');

3 $('div.left').css('styleFloat');

但方式3在各个浏览器中返回值不同,比如使用styleFloat获取浮动

float div

IE6/7/8:设置未成功

IE9/10/Firefox/Safari/Chrome/Opera:设置成功

又如使用styleFloat设置浮动:

float div

这样使用$(xx).css("styleFloat") 就没有兼容性问题了。

2,修改jQuery.style方法,加个判断如果传styleFloat或cssFloat都转成float

// Don't set styles on text and comment nodes
if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
 return;
}

// 这是加的修复代码

if( name === "cssFloat" || name === "styleFloat" ) {
 name = "float"
}
// Make sure that we're working with the right name
var ret, type, origName = jQuery.camelCase( name ),
 style = elem.style, hooks = jQuery.cssHooks[ origName ];

热门栏目