我在IE7中有显示问题,因为它以怪异模式渲染.我通过显示"document.compatMode"并返回"BackCompat"而不是"CSS1Compat"来确认这一点.使用IE8并恢复到IE7可以正常工作,因为这样可以避免怪癖.在简单的IE8中,我通过使用X-UA-Compatible标头强制渲染模式来修复它,但这对IE7不起作用.其他浏览器也会显示怪癖,但与IE不同,它不会将它们置于伪IE5.5模式,因此它们仍然可以正常渲染.
如何强制IE7在标准渲染模式下渲染而不是怪癖?我已经尝试将DOCTYPE设置为许多不同的选项,我没有添加xml序言.提前感谢您的回复.
我试图在HTML和CSS中实现完全辩护(与左对齐不同,最后一行是左对齐而不是对齐).
我有这个文档,加上doctype定义:
<style>
    p {
        border: 1px solid blue;
        text-align: justify;
    }
    p::after {
        content: "";
        width: 100%;
        display: inline-block;
    }
</style>
<meta charset=utf-8>
<title>Justification</title>
<p>Foo bar</p>
<p>Foo bar</p>
<p>Foo bar</p>
使用HTML 4.01 Transitional doctype(<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">),文档以有限的怪癖模式呈现,并且每个段落都根据需要完全对齐,不会占用额外的空间.
使用HTML 5 doctype(<!DOCTYPE html>)或HTML 4.01(严格)doctype(<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
),文档将以非怪癖模式呈现,并且每个段落都是完全对齐的,但需要额外的空格行.添加height: 0到::after什么都不做(它已经没有高度,因为background: red将会演示).
使用IE9,FF4等所有最新浏览器,不断更新Chrome等,我们还需要怪癖模式吗?
如果是,它在哪里有用?在哪种情况下?
在IE10开发人员工具,JavaScript和CSS方面,Quirks Mode和Internet Explorer 5怪癖有什么区别?
可以从HTML触发这两种模式中的哪一种(与devtools相对)?

我在MSDN上阅读了这篇博客文章,但无法理解这个IE5怪癖模式何时可以在现实世界的网站上运行.它说他们所要做的就是不包括doctype ,浏览器必须在兼容性视图中.后者是手动启用还是通过HTML启用?
我是一个插件作者,我很担心其他人的插件被文件/浏览器模式破坏了.
javascript css internet-explorer quirks-mode internet-explorer-10
它看起来像在的构造函数的"网格"选项可拖动的相对绑定到元素的原始坐标被拖动-所以简单地说,如果你有三个可拖动的div的顶部分别设置为100,200,254个的像素相对给他们的父母:
<div class="parent-div" style="position: relative;">
    <div id="div1" class="draggable" style="top: 100px; position: absolute;"></div>
    <div id="div2" class="draggable" style="top: 200px; position: absolute;"></div>
    <div id="div3" class="draggable" style="top: 254px; position: absolute;"></div>
</div>
当'grid'设置为[1,100]时,所有这些都被启用拖动:
draggables = $('.draggable');
$.each(draggables, function(index, elem) {
    $(elem).draggable({
                       containment: $('#parent-div'),
                       opacity: 0.7,
                       revert: 'invalid',
                       revertDuration: 300,
                       grid: [1, 100],
                       refreshPositions: true
    });
});
这里的问题是,只要你拖动div3,比如说,向下,它的顶部会增加100,将它移动到354px,而不是仅仅增加46px(254 + 46 = 300),这将使它到达下一站在网格中 - 300px,如果我们将parent-div视为参考点和"网格持有者".
我查看了可拖动的源代码,它似乎是一个内置的缺陷 - 它们只是相对于可拖动元素的原始位置进行所有计算.
我想避免猴子修补可拖动库的代码,我真正想要的是如何使Draggable计算相对于包含父级的网格位置.但是,如果猴子修补是不可避免的,我想我将不得不忍受它.
我在怪异模式下使用IE8 ...
我有从我的Firefox样式表级联的样式,其中包括:
#container {position:relative; width:1007px; margin-right:auto; margin-left:auto;}       
#textbin {width:720px; position:relative; margin-right:auto; margin-left:auto;}
显然我没有做正确的事情,或者自动保证金在IE8中不起作用.是这样的吗?如果是这样,我该如何解决这个限制?我尝试了没有定位,绝对定位,甚至添加了我的IE8样式表的相对位置.此外,当我手动居中div时,IE8会在页面底部添加边距...
顺便说一下,我是初学者,所以如果需要更多信息,请告诉我!
我正在研究一个内部网应用程序,该应用程序多年来一直致力于所有主流浏览器中的怪异模式.目标是让它在标准模式下工作而不会破坏任何东西,以便我们可以使用一些jQuery包.无论如何我的问题是在标准模式下,当单元格内有iframe时,Firefox和Chrome会向表格单元格添加2px底部填充.这不会发生在IE中.
当我切换到quirks模式时,填充在Firefox和Chrome中消失.
当我添加div而不是iframe时,填充消失了.
将表cellpadding和cellspacing设置为零无济于事.
iframe src页面也处于标准模式.
这是一个测试用例,供您查看:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head><title>Test</title></head>
<body style="background:#FFF;">
<table cellpadding="0" cellspacing="0" border="0">
      <tr>
            <td id='browser_td' style='width:1000px; height:500px; margin:0px; padding:0px; background:#000; border-bottom:0px;'>
                  <iframe id='browser_iframe' name='browser_iframe' src="http://houston.craigslist.org/" width='1000' height='500' frameborder="0" hspace="0" vspace="0"></iframe>
            </td>
      </tr>
</table>
</body>
</html>
如果您在现代浏览器(Chrome,Firefox或IE的最新稳定版本)中查看此页面,您会看到文本的大小增加.看一下源代码,似乎是由于<h3>代码中未关闭的s.
但是,我记得大多数浏览器只要有机会就会自动关闭标签.以下代码(与损坏的网站相同的doctype)适用于所有标记关闭:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
  <head></head>
  <body>Hello
    <h3>My
    <h3>Name
    <h3>Is
    <h3>Manish
  </body>
</html>
因此,未<h3>公开的可能不是(或可能只是其中一部分)问题.
所以,我的问题是,为什么浏览器不会在那里自动关闭标签?
我正在开发一个遗留的Web应用程序,需要使用Internet Explorer的"IE5 Quirks Mode"(使用设置X-UA-Compatible: IE=5).
应用程序中的许多文本字段都有(应用程序生成的)"x"按钮来清除内容.在IE10中,IE还会生成一个"x"按钮来清除该字段,因此用户可以看到其中的两个.
如本问题所述,您可以使用::-ms-clearCSS伪元素删除IE生成的"x" .不幸的是,这似乎不适用于IE5 Quirks模式:::-ms-clear伪元素的样式显示在开发人员工具中:unknown,并且IE生成的'x'继续出现.
除了重写应用程序以使用现代浏览器模式,有没有办法摆脱IE生成的'x'?
以下是在IE10下运行时在IE5 Quirks模式下重现问题的测试页:
<html>
    <head>
        <meta http-equiv="X-UA-Compatible" content="IE=5">
        <style type="text/css">
            ::-ms-clear { width: 0; height: 0; }
        </style>
    </head>
    <body>Enter some text:<input></body>
</html>
我有一个包含WebView的应用程序.如果<!DOCTYPE html>未在HTML页面中定义,则会产生意外错误,因为我运行的片段仅与HTML5兼容.
因此<!DOCTYPE html>,我不是每次都写,而是简单地设置默认的怪癖(quirk是一个默认的HTML声明,如果没有指定页面的HTML版本,将使用它).
因此,如果未指定页面的HTML声明,它将自动在HTML5中呈现.
关于如何做到这一点的任何想法?主流浏览器使用此技术(包括Android版Chrome).
编辑
使用直接嵌入式SVG 等我有500多个这样的片段-
<svg width="300" height="200">
    <polygon points="100,10 40,198 190,78 10,78 160,198"
             style="fill:lime;stroke:purple;stroke-width:5;fill-rule:evenodd;" />
</svg>
这些代码段在其他版本的HTML上运行不佳.我实际上并没有<!DOCTYPE html>在每个页面上写任何问题,但我担心我的客户可以查看,编辑和修改我的代码段,甚至创建一个新的代码段.
我把我的应用程序交给了我的朋友进行测试,他们中的许多人抱怨他们创建的代码片段运行不正常,我认为我的客户也会发生同样的事情.
请帮忙
quirks-mode ×10
css ×5
html ×5
android ×1
browser ×1
dtd ×1
html-table ×1
html5 ×1
iframe ×1
java ×1
javascript ×1
jquery ×1
rendering ×1
webview ×1