【问题标题】:Can I set the height of the HTML element via jQuery?我可以通过 jQuery 设置 HTML 元素的高度吗?
【发布时间】:2013-01-24 12:49:24
【问题描述】:

我在 Boilerplate(和 HTML5Shiv)项目中遇到了 IE6 兼容性问题。我一直在尝试将<html> 元素设置为与<body> 元素相同的高度,但无论出于何种原因,它都固定为100%,没有任何特定代码。每页的长度都是动态的,所以我无法设置具体的值。

我想这样做有一个主要原因——即使下面有其他内容,IE6 也不显示滚动条。

我尝试通过以下代码设置高度,但没有任何运气:

$("html").css("height", parseInt($("body").height()) + "px");

我也尝试了以下代码,但只有 <body> 元素响应:

$("html, body").css("height", "2000px");

但是,我已经能够通过创可贴修复添加滚动:

html, body {
    overflow-y: scroll;
}

现在回到高度问题,这甚至可以通过jQuery 实现吗? IE6 根本不支持我所追求的吗?

谢谢!

【问题讨论】:

  • IE6?你真的要支持那个浏览器吗?
  • 根据经验,如果用户使用IE,我宁愿显示一个启动页面告诉用户升级当前浏览器
  • IE 7 及以下版本已死。 jQuery 2 将停止支持它们。值得庆幸的是,2013年IE 8及以下的市场份额已经跌破2%。
  • 欣赏“不支持 IE6”cmets,但我确实需要完成这项工作,因为项目用户群几乎主要是 IE6。这不是让它看起来和工作完美的情况,我真正想做的就是让 HTML 元素识别出子 BODY 元素的高度。看似简单,但显然不是。
  • IE6?那甚至不支持div,对吧? ;)

标签: jquery css html internet-explorer-6


【解决方案1】:

我很惊讶还没有人提到这一点。

忘记调整<html> 元素的大小。

html 元素不是用来调整大小的。我也不会费心尝试制作更小的body。如果您需要特定大小的元素,请将 div 粘贴到您的 body 中并设置样式。

HTML4 specification for the html tag 没有将style 列为属性,原因很容易理解。

即使在像 Chrome 这样的现代浏览器中,尝试调整 html 元素的大小也会产生一些奇怪的结果:http://jsfiddle.net/QdCmM/

【讨论】:

  • 嗨,杰森。感谢您的回复,html 标签不能通过 CSS 样式修改当然是有道理的。在任何情况下,IE6 都表现出奇怪的行为,因为 body 元素的尺寸没有显示在父 html 元素中。关于输入div,你的意思是我把它作为body 内的第一个孩子的容器?
  • 没错。在您的body 中使用divs 的组合,并设置它们的样式。如果我的回答对你有帮助,别忘了把它标记为正确:)
  • 嗨 Jezen,很抱歉我的回复迟到了。我尝试了您的方法,特别是将 div 容器设置为 body 的第一个子容器以包含页面上的所有内容。但是它仍然不会导致html 元素具有body 的高度,并且没有滚动条。但是,我做了一些额外的故障排除,看起来我的主 CSS 文件有一些东西导致它表现得像这样。佩布卡克!谢谢大家。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-01-04
  • 2010-09-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-03
相关资源
最近更新 更多