Css Internet Explorer 8未正确应用“显示内联”和“阻止”

Css Internet Explorer 8未正确应用“显示内联”和“阻止”,css,internet-explorer-8,Css,Internet Explorer 8,简而言之。 我有这样的想法: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > <html> <head> <style> .vertical_panel > .fields > .item { display: block; background-color: #344; } .horizon

简而言之。 我有这样的想法:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<html>
<head>
    <style>
    .vertical_panel > .fields > .item {
        display: block;
        background-color: #344;
    }

    .horizontal_panel > .fields > .item {
        display: inline;
        background-color: #FAE;
    }

    .item {
        width: 100px;
        height: 50px;
        margin: 2px;
    }

    .fields {
        margin: 0px;
        padding: 0px;
    }

    #specialSpan {
        display: table;
        margin: 0px auto;   
    }
    </style>
</head>
<body>

<div  class="horizontal_panel" id = "specialSpan" style="width: 300px; height: auto;">
    <fieldset class="fields">
        <span class="vertical_panel item" style="width: 300px; height: auto;">
            <fieldset class="fields">
                <div class="item">
                    <span>text</span>
                </div>

                <div class="item">
                    <span>text</span>
                </div>
            </fieldset>
        </span>

        <div class="item">
            <span>text</span>
        </div>

        <div class="item">
            <span>text</span>
        </div>
    </fieldset>
</div>

</body>
</html>

我可以在调试器工具中看到类已更改,但视图未更改。我尝试了许多块和内联块的组合,但没有找到有效的组合。

由于您使用的doctype,您处于怪癖模式,IE将再次执行,就像1998年一样。自1999年以来,新网页不应使用该doctype


解决这个问题的唯一方法是将元素的CSS属性设置为您想要的样式,而不是其他浏览器正确显示它们的样式。

doctype中没有任何内容,属性值中也没有任何内容。使用jquery而不是css文件帮助设置样式。

不要使用html 4,尝试使用html 5而不是internet explorer 8,使用其他浏览器。保持一切兼容不再是开发人员的任务。世界各地的用户都有互联网,因此最好建议他们下载最新的浏览器版本,或者忘记IE。REgards@ARMBouhali由于技术原因,我不能改变到现代技术上。@ARMBouhali:你知道你是在和开发人员而不是用户说话吗…@ARMBouhali你知道吗,有些项目有几百万行代码,仅仅改变doctype就会造成难以想象的bug和错误重构?请明确说明问题所在。“未正确渲染”不是问题描述,“如果我按下按钮并调用该函数,项目不会改变其方向”也不能真正说明问题。哪些项目?他们应该如何安排,为什么?哪个按钮?哪个功能?您显示了一个函数,但没有在任何地方调用它。代码中没有按钮。也许有些东西需要设计样式和脚本来充当按钮。虽然这可能都是真的,但它并没有回答问题。嗯,我认为这是一个非问题的非答案。@JukkaK.Korpela我以为我只是累了,但你可能是对的,因为我不认为我完全清楚这个问题是什么。浏览互联网表明显示属性没有问题。不幸的是,我不能正确地给出不工作的例子,因为它不仅仅在我的环境中工作。我无法通过这里的几个1k行文件。对于新的doctype,我还有另一个问题。这就是我无法切换的原因。有趣的事实是,没有人考虑到:当我通过调试工具输入值时,就像已经在样式中的值一样,逐字逐句,看起来应该是这样的。@Cassandradid你是对的,我从我的答案中删除了它。更改doctype会更改所有其他内容的原因是,其他内容是在“怪癖”模式下创建的,使用新的doctype,您将处于应该处于的标准模式。这就是为什么新的网页应该总是使用标准模式的doctype,而你永远不想陷入怪癖。
function SetPanelOrientation(panel) {
    // this attribute doesn't exit in example but actually exist in project's code
    // and always correct
    var isVertical = panel.getAttribute("IsVertical");
    if (isVertical == '0') {
        $(panel)
            .removeClass('vertical_panel')
            .addClass('horizontal_panel');
    } else {
        $(panel)
            .removeClass('horizontal_panel')
            .addClass('vertical_panel');
    }
};