jQuery   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了jQuery outerHeight返回错误值IE大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我试获取页面上元素的高度.我在Mac上获得FF和Webkit的预期值(700px左右),但我在IE8中获得的值为0.我还没有尝试过早期版本的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,请注明来意。