4

我使用 Dreamweaver 开发网站。我广泛使用模板功能,因为它有助于使事情更容易保持一致性。

但是,我注意到 Dreamweaver 在 doctype 之前添加了以下代码:

<!-- InstanceBegin template="/templates/web-public-user-home.dwt" codeOutsideHTMLIsLocked="false" -->

出于明显的原因(即在文档类型之前进行注释),这将我的 IE 置于 Quirks 模式。有没有办法解决这个问题?!下面是我的文档类型。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

问候,

4

2 回答 2

3

好的,我想通了。

由于我正在进行广泛的 IE 合规性调整,我使用了条件注释。但是,我在 html 标签上使用它们。原则上这没有什么问题,但是当您执行此操作时,Dreamweaver 不会正确处理您的实时模板更新(它会将特定于 Dreamweaver 的模板锁定代码放在 doctype 之前,从而确保您的页面将在 IE 中抛出 Quirks 模式) .

所以我所做的就是将我的条件注释系统从 html 标记中移开,而是在您的开始正文标记之后和您的结束正文标记之前立即使用它们,如下所示:

<body>
<!--[if IE 6 ]> <div id="ie" class="ie6"> <![endif]-->
<!--[if IE 7 ]> <div id="ie" class="ie7"> <![endif]-->
<!--[if IE 8 ]> <div id="ie" class="ie8"> <![endif]-->
<!--[if gt IE 8 ]> <div id="ie"> <![endif]-->
<!--[if !IE]><div id="not-ie"> <![endif]-->

{YOUR HTML CODE}

  </div>
</body>

这样,Dreamweaver 将 doctype 和 html 标记放在模板锁定代码之前,您生成的页面将在 IE 上以标准模式显示(一切正常)。

干杯。

于 2011-06-09T15:55:53.727 回答
2

只有当Dreamweaver(包括 CS6)无法在您的模板中找到开始标记时,才会<!-- InstanceBegin template="...将注释放在doctype标记前面!当您完全忘记该标签时会发生这种情况,而且当将该标签放置在如下条件注释中时也会发生这种情况:<html>

<!--[if IE 8]> <html class="ie8"> <![endif]-->

为避免这种情况,您必须避免将<html>标签包含在条件注释中。<html>当您在模板代码中 使用普通的不加掩饰的标签时,Dreamweaver 将自动将该标签<!-- InstanceBegin template="... 之后<html>放置在从该模板派生的所有文件中,并且 IE 不会陷入怪癖模式。

于 2013-02-08T11:09:38.950 回答