1

我对 IE8 有一个奇怪的问题。Page DOCTYPE 是 QuirksMode,我无法更改它(我希望可以,但目前没有办法)。宽度被破解以修复 IE 和其他浏览器之间的盒式调制解调器解释的差异。这是一个简单的水平导航栏。它一直都有一个边框,并且选中的项目应该大一点,以便“覆盖”外边框。在 FF 中就像一个魅力,但在 IE 中,#container 忽略它的高度属性并扩展以适应它的孩子,最多 34 像素并且不覆盖边框。

简化的 HTML 是这样的:

<style>
    #container {
        padding:0px;
        margin:0px;
        height:30px;
        border-bottom:#000 2px solid;
        background-color:#ccc;width:780px
    }
    #list {
        padding:0px;
        margin:0px;
        height:100%;
        float:left;
        background-color:#CCFFFF
        list-style-type:none;
    }
    #list li {
        float:left;
    }
    .selected_item {
        height:30px;
        *height:32px;
        border-bottom:#FFF 2px solid;
        background-color:#FFCCFF
    }
    .nonselected_item {
        height:28px;
    }
</style>
    <div id="container">

            <ul id="list">
                <li class="selected_item">First item</li>
                <li class="nonselected_item">Second item</li>
            </ul>

    </div>

有任何想法吗?提前致谢。安德里亚。

4

4 回答 4

1

感谢您的回答 Alohci,成功了!

MSW,也谢谢你的回答,但这个应用程序每天有大约 5000 个用户使用,还有 40 个运行在相同代码上的生产性网站,我们应该上传和测试大约 2000 个页面以更改 doctype。并且...我们不会经常遇到这种 CSS 问题,因为结构不会经常改变。我们每年可能会有一两个这样的,所以现在改变文档类型的努力是不合理的。我们将在需要实施影响所有 40 个网站的更改的那一天进行更改,否则无法实现。

于 2010-07-26T11:24:18.080 回答
1

尝试将 position:absolute 添加到#list

于 2010-07-23T20:57:30.817 回答
0

使用 Quirks DOCTYPE,您要求 IE 假装它是 IE6(或多或少)。如果它确实是一个不可变的 DOCTYPE,那么您要么必须按照 IE6 的怪癖适当的标记进行编码,因为十年来的网络游侠不得不这样做,要么找到某种方法告诉 IE8 永远不要尊重 Quirks。

工程是关于权衡的;是的,我知道您可能无法更改该关键任务页面中的那个单词,并且从 2001 年开始编写浏览器标准将花费您巨大的精力,但如果这些是限制因素,那就去吧。

于 2010-07-23T20:39:49.653 回答
0

第一行,没有定义类型,试试 <style type='text/css'>

在第 7 行,您在 width background-color:#ccc;width:780px 后错过了一个分号

尝试添加最大高度:32px;到#list li

于 2010-07-24T01:25:58.197 回答