大佬教程收集整理的这篇文章主要介绍了jQuery outerHeight返回错误值IE,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
HTML:
<section> <article> ... </article>
JavaScript的:
var height = myElement.outerHeight(true);
有许多事情可能使这一点复杂化.
>我正在尝试测量元素
它是动态的
添加到页面(元素是
添加为ajax的结果
请求),
>我想测量的元素
是一个html5元素(部分).
我注意到的一件事是,当使用开发人员工具查看时,插入的html5元素的格式很差.我得到像< / article />这样的东西.加载时页面中的任何内容都很好.
>我已添加css申请
display:阻止所有html5元素
>我添加了Remy Sharp的“html5”
启用脚本“
(http://remysharp.com/2009/01/07/html5-enabling-script/)
>我正在使用
>我尝试过使用所有div而不是
html5元素
> myElement.height()返回一个值
IE8中的’auto’,而在其他
浏览器我得到一个像素值.
innerHeight()返回null.
谢谢
这不是糟糕的格式化,这是开发人员工具告诉你IE DOM的确切内容. IE无法正确解析HTML5元素,导致元素不在您期望的位置,因此高度和渲染与您期望的不匹配.
会发生的是IE将未知元素视为始终是EMPTY内容模型的元素:< img />等元素或者< br />从来没有一个close-tag(需要XHTML中的自动关闭语法).因此,当IE看到< section>时,它会创建并关闭一个section元素.然后,下一个元素< article>来自< section />之后而不是在里面.当IE看到< / section>它认为它不是一个封闭标签,而是一个空标签,其名称为/ section(当然这是非常无效的,但是当IE关心它的时候呢?).
所以< section />的高度元素,其中不包含任何内容,可能为零,如果您在其上放置背景,则背景将不包含< article />.
正如尼克所说,html5shiv可以通过使用createElement暂时欺骗IE认为它知道< section>来解决其中一些问题.是一个真实的元素.但是,这并没有真正涵盖整个问题,因为当你开始进行进一步的解析操作(如设置innerHTML)时,它会再次出错.下一阶段是尝试使用innershiv解决这个问题;这有一些性能上的缺点,所以请确保你只在IE上使用它,并且只在需要时(它不像jQuery的html()接口那样健壮).
就个人而言,我并没有看到所有这些麻烦的好处.目前,< section />并没有真正得到任何< div class =“section”>没有.在未来,可能有一些工具可以对语义做些什么,并且在IE6-8中使网站看起来完全正确无关紧要.但那一天离IMO很远.
以上是大佬教程为你收集整理的jQuery outerHeight返回错误值IE全部内容,希望文章能够帮你解决jQuery outerHeight返回错误值IE所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。