我认为IE7及以上版本遵循与Chrome / Firefox / Opera相同的盒子模型,但是当我在IE8中运行以下代码然后在Chrome / Firefox / Opera中运行时,我会得到不同的结果。
在IE8中,框的结尾出现了一些我想摆脱的嘴唇。是否可以严格使用CSS来解决我的问题,或者我是否需要使用Javascript来检测浏览器然后更改CSS?
以下是我正在使用的代码的链接。为了查看我的问题,您需要使用IE,然后使用Chrome,Firefox或Opera。
答案 0 :(得分:1)
IE7有两种模式:兼容模式和标准模式。这是MS在IE上的一系列精彩动作。 (是的,我是讽刺的):
通常绊倒的人是,默认情况下,如果页面是在本地加载或从网络上的服务器加载,IE8将恢复为兼容性(即中断)模式。我猜逻辑是它必须是你内联网上的一个页面,并且由于90%的所有内网网络软件都是可怕的编码IE6怪物,几乎在任何标准浏览器中破坏,它更好地假设代码被破坏并恢复到兼容模式
对于IE8的检测,您可以通过IE的条件注释在没有JavaScript的情况下进行检测。我通常做的是将开头体标签包装在条件中,并为每个标签分配一个唯一的ID:
<!--[if !IE]> -->
<body>
<!--<![endif]-->
<!--[if gt IE 8]>
<body id="IE9">
<![endif]-->
<!--[if IE 8]>
<body id="IE8">
<![endif]-->
<!--[if IE 7]>
<body id="IE7">
<![endif]-->
<!--[if lt IE 7]>
<body id="IE6">
<![endif]-->
然后在你的css中,你可以根据需要轻松提供单独的CSS:
.myStyle {for good browsers}
#ie7 .myStyle {fix for IE7}