为什么jquery / css需要top属性的’px’,而不是width或height属性?

前端之家收集整理的这篇文章主要介绍了为什么jquery / css需要top属性的’px’,而不是width或height属性?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有以下 javascript / jquery代码
var some_div = $('<div>',{});

 some_div.
    css('position','absolute').
    css('width','100').
    css('height','100').
    css('top','100px').
    css('background-color','#ddf');

 some_div.appendTo('body');

它按预期工作,因为它从body的顶部定位some_div 100像素,并将其宽度和高度设置为100像素.

如果我将top属性的行更改为css(‘top’,’100′).即如果我省略了px,则该框忽略指定的属性.显然,top属性需要px才能生效.

我想知道为什么我不必为盒子的宽度和高度指定px.

解决方法

仔细阅读了源代码后,它看起来像是一个jQuery怪癖而不是浏览器或CSS奇怪. jQuery的css函数this function中对你提供的值进行大部分预处理.

函数以各种方式处理某些CSS奇怪和输入奇数.一种方法是通过添加“px”将数字转换为字符串.这从不适用于您的情况,因为您提供字符串.

jQuery还有一组挂钩,在将它们设置在DOM节点上之前调用CSS值.您的宽度和高度值正在增加here以考虑IE5.5’s box model并且px由setPositiveNumber()添加.

结论:
从顶部,底部,左侧,右侧,宽度和高度样式中省略’px’是无效的CSS.由于jQuery正在修改您的属性支持过时的浏览器和数值,因此您可以通过省略“px”来消除宽度和高度属性中的无效CSS!

以下将有效:

css('top',100)

猜你在找的jQuery相关文章