Html IE7显示错误,不应该存在的魔术填充/边距
前言:如果这个问题应该发布在姐妹网站上,那就很抱歉了。现在有这么多人,很难说还有什么人在苏的管辖之下 问题:我对连续的Html IE7显示错误,不应该存在的魔术填充/边距,html,css,internet-explorer-7,browser-bugs,Html,Css,Internet Explorer 7,Browser Bugs,前言:如果这个问题应该发布在姐妹网站上,那就很抱歉了。现在有这么多人,很难说还有什么人在苏的管辖之下 问题:我对连续的元素有问题。有时它们之间有一个神奇的填充/空白,我不知道为什么 正如您所看到的,我的容器的header div和body div之间有一个空格。让我解释一下我的DOM/CSS是如何设置的: HTML <div class="Product-IconView"> <div class="PIV_TopCap"></div> <di
元素有问题。有时它们之间有一个神奇的填充/空白,我不知道为什么
正如您所看到的,我的容器的header div和body div之间有一个空格。让我解释一下我的DOM/CSS是如何设置的:
HTML
<div class="Product-IconView">
<div class="PIV_TopCap"></div>
<div class="PIV_Body">
...
</div>
</div>
正文:
正如你所看到的,CSS也很简单,没有什么特别的。主体内部是另一系列
项目,遵循与此分区相同的原则(容器分区、堆叠子项)。不会有像这样奇怪的填充物
我在IE9中使用了开发人员工具(启用了IE7标准)来检查DOM,看看是什么导致了这种情况(比如页边从顶部往上推或者其他什么)
正如你在这里看到的:
div的边界完整且正确
结论这是一个非常奇怪的错误,我在我早期的设计中看到了它,但也无法在那里找到它。到目前为止,这是我在这个项目中遇到的唯一一个IE7迁移问题。据我所知,我非常严格地遵循HTML标准(我知道IE在某些情况下往往不尊重这些标准,但计划是尽我所能做到这一点)
您的问题:
- 我应该寻找什么可能导致这种情况
- 我做错什么了吗?如果是,我如何修复它
- 有没有更简单/更好的方法
- 我有什么明显的遗漏吗
如果您需要澄清或更多信息,请随时将其留在评论中,我将在看到它们时予以答复。(在周五晚些时候发布:o)。找到了答案,所以我将在这里发布给任何登陆这里寻求IE7帮助的人 问题是顶部div的
字体大小,而我的行高为1px代码>设置时,渲染引擎仍然为12px字体分配14px,这种不可见的分配/填充/边距/任何内容通过div流出,即使有溢出:隐藏
或严格的大小限制
只需确保这两行都在我的顶部div中(小于一行文本):
字体大小:1px代码>
行高:1px代码>
…将解决问题
IE7似乎没有很好地遵守线条高度。我忘了提到,这在IE8/IE9/Firefox/Chrome/Safari中工作得非常好。您使用的doctype是什么?另外,您是否使用了任何类型的重置样式表?尽管我尽了最大努力,但我无法用您的代码重新创建错误。你能试着制作一个示例页面,或者一个展示问题的测试用例吗?如果您这样做,您的问题很可能会得到解决。@Chris Lively:使用重置脚本是的,DOCTYPE
@Chris Lively:对于重置脚本。12px字体
-这就是为什么我无法重新创建错误,以及为什么没有人能够回答此问题的原因。我怀疑这可能是字体大小
、行高
和高度
的组合,但我一直在等待一个测试页面,当然,它从未出现过。啊,嗯,+1。是的,这是我第一个想到的(因此我的线高是1px),但那也是周五晚上,我的想法不正确p谢谢你的努力:)
.PIV_TopCap
{
margin: 0px;
padding: 0px;
height: 10px;
line-height: 1px; /* For IE so the text doesn't make the div higher */
overflow: hidden;
background-repeat: no-repeat;
background-image: url(/Images/Controls/IconView/PIV-Regular-Top.png);
}
.PIV_Body
{
height: 266px;
padding-left: 10px;
padding-right: 10px;
background-repeat: repeat-y;
background-image: url(/Images/Controls/IconView/PIV-Regular-Body.png);
}