0

如果元素是floated并且位置为absoluteorfixed并且脚本$(el).css('float')运行 Chrome 将返回“left”,但所有其他主要(最新)浏览器返回“none”

为什么是这样?我该如何解决这个问题?

示例: http: //jsfiddle.net/ChPCD/7/ <在不同的浏览器中运行

编辑:感谢 Explosion Pills 的技术回答。更改了我的脚本以将定位短暂切换为静态以获取先前的浮点值。还是觉得跨浏览器的结果是一样的=P

4

3 回答 3

0

欢迎来到跨浏览器支持的美妙世界。

您的两个选择是:

1)编写浏览器特定的代码。使用某种方法来检测当前浏览器并执行特定于该浏览器的代码。

2)另辟蹊径。例如,与其说检查浮点值,不如查找特定的类或其他属性。

于 2012-12-28T04:56:53.747 回答
0

如果您使用position: absolute;. 也许它对你有用之一

parseInt( $(el).css( 'left' ), 10)

或者

$(el).position().left
于 2012-12-30T18:28:33.800 回答
0

看起来,由于absolutefixed定位覆盖了float行为,不同的浏览器正在返回被覆盖属性的不同值:完全丢弃或保留它。

也许您可以使用不同的方法来查找这些元素:也许是基于与float最初应用的相同规则的 jQuery 选择器,例如:

CSS div.float-left{float:left;}

jQuery $('div.float-left').each(foo);

于 2012-12-28T05:03:44.173 回答