如果元素是floated
并且位置为absolute
orfixed
并且脚本$(el).css('float')
运行 Chrome 将返回“left”,但所有其他主要(最新)浏览器返回“none”。
为什么是这样?我该如何解决这个问题?
示例: http: //jsfiddle.net/ChPCD/7/ <在不同的浏览器中运行
编辑:感谢 Explosion Pills 的技术回答。更改了我的脚本以将定位短暂切换为静态以获取先前的浮点值。还是觉得跨浏览器的结果是一样的=P
如果元素是floated
并且位置为absolute
orfixed
并且脚本$(el).css('float')
运行 Chrome 将返回“left”,但所有其他主要(最新)浏览器返回“none”。
为什么是这样?我该如何解决这个问题?
示例: http: //jsfiddle.net/ChPCD/7/ <在不同的浏览器中运行
编辑:感谢 Explosion Pills 的技术回答。更改了我的脚本以将定位短暂切换为静态以获取先前的浮点值。还是觉得跨浏览器的结果是一样的=P
欢迎来到跨浏览器支持的美妙世界。
您的两个选择是:
1)编写浏览器特定的代码。使用某种方法来检测当前浏览器并执行特定于该浏览器的代码。
2)另辟蹊径。例如,与其说检查浮点值,不如查找特定的类或其他属性。
如果您使用position: absolute;
. 也许它对你有用之一
parseInt( $(el).css( 'left' ), 10)
或者
$(el).position().left
看起来,由于absolute
或fixed
定位覆盖了float
行为,不同的浏览器正在返回被覆盖属性的不同值:完全丢弃或保留它。
也许您可以使用不同的方法来查找这些元素:也许是基于与float
最初应用的相同规则的 jQuery 选择器,例如:
CSS div.float-left{float:left;}
jQuery $('div.float-left').each(foo);