我试图让一个网站在IE6和IE7中正常显示。这里是它在IE6中的外观截图。IE6网站显示问题(背景或填充问题?)
alt text http://img225.imageshack.us/img225/4779/screenshot20091006at239.png
IE8,Safari浏览器,Firefox等所有显示这个网站正常。有人能给我一个暗示,是什么导致了IE6的失真?
如果你想看看网页的源文件,该网站是:www.devaswami.com
从here获取CSS。
我试图让一个网站在IE6和IE7中正常显示。这里是它在IE6中的外观截图。IE6网站显示问题(背景或填充问题?)
alt text http://img225.imageshack.us/img225/4779/screenshot20091006at239.png
IE8,Safari浏览器,Firefox等所有显示这个网站正常。有人能给我一个暗示,是什么导致了IE6的失真?
如果你想看看网页的源文件,该网站是:www.devaswami.com
从here获取CSS。
您正在为导航栏使用自动布局表格,并且它有colspans。这会让IE感到困惑,因为在有colspans的时候,这并不是很好的解决多大表需要的表格。它使得桌子比你需要的宽,这使得你的细胞比预期的更宽,这使得丑陋的黄色背景显示出来,并且它不排队。
为了解决这个问题,设置表格元素上的样式table-layout: fixed; width: 970px;
,并添加一个<col>
元素为每一列,每一个width: ...px
风格,告诉IE究竟有多大,使每一列。然后它不会犯任何错误(并且更大的固定表格布局渲染速度更快)。
为了更好地解决问题,请删除布局表格并为导航链接使用定位的div。然后,您也可以丢失无聊的图像切片,并为整个标题背景使用单个GIF,并将照片和链接放置在顶部。你也可以在你的样式表中使用//
作为单行注释,但是在CSS中没有这种东西;你只会混淆解析器进入丢弃规则。)
嗯,一目了然,你有东西是左边的浮动,你有一个余量留在它呢?
#foo {
float: left;
margin-left: 20px; //20px in all browsers except IE6 where it will be 40px;
display: inline; //this will fix this issue
}
有很多的可能性,很难根据屏幕截图进行猜测。然而,朝着使IE 6和7的行为更好的一个大的步骤是在文档的顶部声明文档类型:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
这对HTML 4.01,你必须更新它来搭配你在做什么特别是使用如果它不是HTML(即XHTML)。仅仅这些有助于解决一些基本问题,但不是全部。如果这样做不行,谷歌“IE6 CSS黑客攻击”,你会发现很多可能适用于你的上下文的潜在信息。
编辑:我建议你修复与缺少/不正确的结束标记错误:
错误行199列194:为元素结束标记 “一个”未打开
错误线200,柱49:结束标记为 元件 “p”,这是不开放
完成之后,我们可以推断出它不是标记相关的问题。
原来的答复:
尝试任何浮动元素上应用hasLayout的每一个元素,并使用display:inline
:
#nav li { display:inline; } /* the selector *must* be floated and have horizontal margins in the direction of the float. */
* { zoom:1; }
对于任何固定的缩放:1,适用于宽度/高度和会触发hasLayout。
虽然它可能会有用,如果你实际上发布了一些源代码。
不在页面上浮动。 – Candidasa 2009-10-06 03:47:33