前段时间做了一个网站,http://www.haoweishiye.com
IE 8 打开的时候布局都是正常的,上下对齐,
但在IE 6 下打开,就会出现不对齐现象,有的东西跑到左右,有的跑到右边,
应该是CSS样式控制的问题,希望高手给出CSS兼容方面的解答。应该怎样设置DIV的样式,才能让其在浏览器中都正常显示!
IE 8 打开的时候布局都是正常的,上下对齐,
但在IE 6 下打开,就会出现不对齐现象,有的东西跑到左右,有的跑到右边,
应该是CSS样式控制的问题,希望高手给出CSS兼容方面的解答。应该怎样设置DIV的样式,才能让其在浏览器中都正常显示!
比如:height:100px; 这是通常的写法,_height:105px;这是ie6的写法。
具体你哪些有问题要自己细心找了。
DIV+CSS相对IE6 IE7和IE8
IE8 Standard Modes :默认的最标准的模式,严格按照W3C相关规定
IE7 Standards Modes :IE7现在用的解析网页的模式,开起机关是在<head>中加入 <meta http-equiv="X-UA-Compatible" content="IE=7">
Quirks Modes :IE5用的解析网页的模式,开起机关是删除HTML顶部的DOCTYPE声明
注意:不同模式间的网页在IE8中可以互相 frame ,因此因不会模式下的DOM和CSS渲染不一样,所以会引发很多问题,务必注意如果你的页面对IE7兼容没有问题,又不想大量修改现有代码,同时又能在IE8中正常使用,微软声称,开发商仅需要在目前兼容IE7的网站上添加一行代码即可解决问题,此代码如下: IE8 最新css hack: "\9" 例:"margin:0px auto\9;".这里的"\9"可以区别所有IE和FireFox.
"*" IE6、IE7可以识别.IE8、FireFox不能.
"_" IE6可以识别"_",IE7、IE8、FireFox不能.例子:所有浏览器 通用
height: 100px; IE6 专用
_height: 100px; IE6 专用
*height: 100px; IE7 专用
*+height: 100px; IE7、FF 共用
height: 100px !important;以下两种方法几乎能解决现今所有兼容. 1, !important (不是很推荐,用下面的一种感觉最安全) 随着IE7对!important的支持, !important 方法现在只针对IE6的兼容.(注意写法.记得该声明位置需要提前.) 代码:
<style>
#wrapper {
width: 100px!important; /* IE7+FF */
width: 80px; /* IE6 */
}
</style> 2, IE6/IE77对FireFox <from 针对firefox ie6 ie7的css样式> *+html 与 *html 是IE特有的标签, firefox 暂不支持.而*+html 又为 IE7特有标签. 代码:
<style>
#wrapper { width: 120px; } /* FireFox */
*html #wrapper { width: 80px;} /* ie6 fixed */
*+html #wrapper { width: 60px;} /* ie7 fixed, 注意顺序 */
</style> 注意:
*+html 对IE7的兼容 必须保证HTML顶部有如下声明: 代码:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">