CSS DIV 布局网页内容 在IE下不显示的原因

DIV+CSS 布局的网页 在IE下部分或全部内容不显示 在Firefox chrome等标准浏览器中显示正常 想请教一下 造成此类问题的原因有哪些 及为何会如此 希望能有明白人不吝赐教 复制党请低调瓢过 不要浪费自己的时间去浪费别人的时间 谢谢! 下面的 错误演示图片 如果太小 查看不便 可查看原图 标示
当前页面为UTF8编码 未使用任何JS脚本 在IE下 主体页面内容不显示 右健查看源代码 内容均解析正常 并加载 在 Firefox等标准浏览器 均正常 IE版本 为 IE7 偿试过使用 IE.JS 未能解决, 满分诚心求教 特别希望您能给指点一下造成此类问题的原因有哪些 谢谢!
经过一小天的折腾 这个问题最终我自己解决了
虽然楼下各位的方法均不正确
但还是非常感谢你们的回答 谢谢
此问继续挂这儿 因为虽然我解决了 但是造成这类问题的原因我还是不十分确定及理解
所以 希望能就此问 继续聆听各位的高见
我解决的方法是 把当前页面样式中所有涉及隐藏部分的 属性 全去掉 (display: none; )
然后想其他方法把需要隐藏的内容处理一下
只是还没发现具体是哪一级样式中的 display: none; 影响到的
这个再排查吧 谢谢大家!

之前看到很多人一直都问这个问题,不过当时我没当一回事,因为在 CSS 中要垂直居中,多数是在有高度的情况下,或者容器高度不定的情况下才用,看上去比较舒服,而且实现的方法也不少,不一定要拘泥于和 table 布局一样。不过最近有人问了几个例子,看来对此的需求还不少。现在就把我经验拿出来分享一下,希望大家鼓鼓掌。

首先,要有一个概念:凡是 table 布局可以实现的,CSS 一定可以实现。CSS 可以实现的,table 未必能做到。

现在来几个例子:

一、单行内容的居中
只考虑单行是最简单的,无论是否给容器固定高度,只要给容器设置 line-height 和 height,并使两值相等,再加上 over-flow: hidden 就可以了
.middle-demo-1{
height: 4em;
line-height: 4em;
overflow: hidden;
}

优点:
1. 同时支持块级和内联极元素
2. 支持所有浏览器
缺点:
1. 只能显示一行
2. IE中不支持<img>等的居中
要注意的是:
1. 使用相对高度定义你的 height 和 line-height
2. 不想毁了你的布局的话,overflow: hidden 一定要
为什么?

二、多行内容居中,且容器高度可变
也很简单,给出一致的 padding-bottom 和 padding-top 就行
.middle-demo-2{
padding-top: 24px;
padding-bottom: 24px;
}

优点:
1. 同时支持块级和内联极元素
2. 支持非文本内容
3. 支持所有浏览器
缺点:
容器不能固定高度

三、把容器当作表格单元
CSS 提供一系列diplay属性值,包括 display: table, display: table-row, display: table-cell 等,能把元素当作表格单元来显示。这是再加上 vertical-align: middle, 就和表格中的 valign="center" 一样了。
.middle-demo-3{
display: table-cell;
height: 300px;
vertical-align: middle;
}

可惜IE不支持这些属性,不过在其他浏览器上显示效果非常完美。
要注意的是:和一个合法的<td>元素必须在<table>里一样,display: table-cell 元素必须作为 display: table 的元素的子孙出现。

优点:
不用说了吧,就是表格,效果和表格一模一样
缺点:
IE下无效

四、以毒攻毒!用 IE 的 bug 解决 IE 中的绝对居中
先不得不说一句,IE 真的是个很烂的浏览器,CSS1中的定义都不支持,害得要我们转个大圈子来造居中。不过就像我说的,凡是 table 布局可以实现的,CSS 一定可以实现,即使在 IE 里也不例外。我研究 IE layout 模式多年,还是找出了一个可以在 IE 中绝对居中的方法。这个方法就是基于 IE layout 的 bug,也可以算以毒攻毒。至于原理,不要问我,这是独门秘学,何况三言两语也讲不清楚,只要好用就行
.middle-demo-4{
height: 300px;
position: relative;
}
.middle-demo-4 div{
position: absolute;
top: 50%;
left: 0;
}
.middle-demo-4 div div{
position: relative;
top: -50%;
left: 0;
}追问

我对你们这些Copy党真的是很无语
浪费自己的时间 去浪费别人的时间 你们图个什么劲这是

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-05-07
楼主:
一、如果能排除硬件上的原因(内存条不兼容,更换内存。显卡驱动是否正确按装或者是否被恶意覆盖否?)往下看:
二、系统或其它软件引起的,可用下述方法处理: 系统本身有问题,及时安装官方发行的补丁,必要时重装系统。 病毒问题:杀毒,建议使用诸如金山毒霸(免费)卡巴(收费)等高质量杀毒软件对电脑杀毒
三、浏览器出现内存不能读、写的提示:
1、运行→regedit→进入注册表, 在→
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellExecuteHooks
这个位置有一个正常的键值{AEB6717E-7E19-11d0-97EE-00C04FD91972}, 将其他的删除。
2、打开CMD窗口输入如下命令:
for %i in (%windir%\system32\*.dll) do regsvr32.exe /s %i 回车
for %i in (%windir%\system32\*.ocx) do regsvr32.exe /s %i 回车
两条分别运行完成后重启机器。
第2个回答  2011-05-02
就凭这么一张图,叫找问题,还真是让人头疼,又不是找桩=W=,至少有条页面地址,或html代码吧…

现在能想到的:
一、细心检查不显示那部分代码有没错漏。

二、把文档声明(DTD)删掉试试。

三、把编码改为gb2312

四、在页面 右击>编码>自动(或UTF-8)

上面几点,自己各试试。追问

谢谢你的提示 虽然也不正确 但你比其他人的回答要靠谱的多
我之所以不帖代码或给演示页面 是因为我想知道造成这问题的原因
而非具体案例的解决方法

追答

=@=,忘了个css。排查的话,如果写css按由大到小的话倒是好办,主要集中头部与内容区交界处的css进行排查就可,如果乱写,一来易出错,二来查时费时,三来费读。
建议你排查用注释法,较!important方便得多。
贴代码或演示,就算你不是图个解决方案,但也能知道问题所在。而且更能节约回答者的时间,你这么问,跟“我电脑开不了机了,请把可能的原因列出来”这种无意义问题有啥区别?
还有,懂一点技术也没什么好自傲,回答的也只是出于好意而已。

第3个回答  2011-05-05
查看 css 文件中 是否有注释,将注释删除 或者font-family:"微软雅黑" 这种 中文字体 ,“宋体” 没事
第4个回答  2011-05-05
浏览器不同内置差别很大的,你可能一个标签写错了,有的就能忽略错误,有的就显示不出来

我用HTML中div+css写的网页,有的IE支持,有的IE就不支持,Goole直接错位...
1.文字本身的大小不兼容。同样是font-size:14px的宋体文字,在不同浏览器下占的空间是不一样的,ie下实际占高16px,下留白3px,ff下实际占高17px,上留白1px,下留白3px,opera下就更不一样了。解决方案:给文字设定 line-height 。确保所有文字都有默认的 line-height 值。这点很重要,在高度上...

...而在IE8里却内容错位或者是没有显示,是何原因?
这是浏览器碎片化造成的。你如果是开发人员,在开发之前就应该预料到这种情况。IE,Chrome, FF, Opera, Safari 等等,世界各大知名浏览器厂商,以及以他们为内核进行包装、修改的小厂商,他们为了在相互竞争中能战胜对方、最大化的占有市场份额,在遵循 HTML、CSS、JavaScript等国际标准的同时,又或多或少...

CSS+DIV在IE8正常显示可为什么在IE6不能正常显示? 你的这个问题是怎么解...
那是应为浏览器对代码的解释不同就是兼容不同 #left { float:left; background:#FF0000;} 你的这段 float:left 是无效的 应该#left ul li{ float:left; background:#FF0000;} 所以在这里你的 ul li 还是按照原来的 一行一个 输出 然后你的 <div id="left"> 是在<div id="in...

我的网站是用div+css做的,在IE7.0里显示正常,在火狐里就乱了,_百度知...
\/* 在IE浏览中,浏览器不会解析第二个样式,故字体的颜色是蓝色的,而FF就可以解析第二个样式,根据最近原则,在FF中,字体的颜色是红色的。*\/ \/\/利用这个区别你就可以编写不同的样式来适应不用的浏览器。\/\/由于FF和IE的边距等一些内容的默认值不一样,建议你看看《css网站布局实录》这本书,上...

DIV+CSS布局的网页,傲游2浏览正常,IE各版本却页面混乱
IE确实在读取div+CSS布局的网页上存在很多问题 用 Firefox就可以了。完全兼容

自己做的div+css的网页在本地测试很好,为何传到网上后板块错位了,希望...
你是不是用了很多margin和padding,如果用了就需要调兼容性 ,你在css文件头部里加入 { margin:0 ;padding:0;} 试试

...里面布局好的页面,在浏览器中有一部分显示不出来怎么回事
貌似问题不是很清晰 怎么布局的呢?是用Div+CSS么?如果是的话,显示与否在你的css样式表中会有设置。……不好回答啊,你的问题问的不够详细 “插入的图片就会显示,做背景就不显示怎么回事”这很可能是你的样式表规定了其他的图片或者背景色 ...

Div+CSS在IE8可以正常显示按钮,到IE6就飘了。。求助啊、、
网页尽量少用margin,padding多用没有问题。你看你上面又是浮动,又是负外边距。你把你的按钮设置为绝对定位试一试,也就是position:absolute ;浮动在ie中一直大有问题。能不用就不用。

用div+css display:table;属性制作的table表格,在Ie中无法实现,貌似Ie...
因为你写的这个没有一个width值。。所以他会根据你所给的类容把表格撑开。而且给标签定义样式的时候。比如像margin和padding值在ie里不显示。有的还不显示。。你也可以先给table里的td固定好width值和height值。然后在里面套用表格里的文本区域。给这个文本域定义一下显示宽度。然后超过这个宽度会自动...

我用CSS+DIV做网页的时候用的是IE8 显示的很正常,到了IE6就乱套了~
这就是浏览器的兼容问题,你拿到谷歌、火狐下浏览可能又会不同。这不是一两句代码就能解决的问题,你是初学者吧,你百度下CSS浏览器兼容,学学知识吧!学会用HACK,但最终HACK不是办法!!你用的是IE7,只要你下面这句话加在头部,IE8就正常了,以后就不用考虑IE8了,只考虑IE6就OK <meta http...

相似回答