#dreamweaver #quirks-mode
#dreamweaver #режим причуд
Вопрос:
Я использую Dreamweaver для разработки веб-сайтов. Я широко использую функцию шаблонов, поскольку это помогает упростить поддержание соответствия.
Однако я замечаю, что Dreamweaver добавляет следующий код перед doctype:
<!-- InstanceBegin template="/templates/web-public-user-home.dwt" codeOutsideHTMLIsLocked="false" -->
Это переводит мой IE в режим причуд по очевидным причинам (т. Е. Комментарий перед типом документа). Есть ли способ справиться с этим?! Ниже приведен мой документ.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
С уважением,
Ответ №1:
Хорошо, я понял это.
Из-за обширной настройки соответствия IE, которую я выполняю, я использовал условные комментарии. Тем не менее, я использовал их в теге html. В принципе, в этом нет ничего плохого, но Dreamweaver не будет должным образом обрабатывать ваши текущие обновления шаблонов, когда вы это сделаете (он поместит специфичный для Dreamweaver код блокировки шаблона сначала перед doctype, тем самым гарантируя, что ваши страницы будут запускать режим Quirks в IE).
Итак, что я сделал, так это убрал мою систему условных комментариев из html-тега, вместо этого используя их сразу после вашего открывающего тега body и непосредственно перед вашим закрывающим тегом body вот так:
<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 (все в обычном режиме).
Приветствия.
Комментарии:
1. Почему вы поместили комментарий ‘if IE’ с
</div>
И a ‘! IE ‘комментарий с</div>
в конце? Конечно, их можно заменить просто</div>
….2. @ClarkeyBoy Ты прав. Я давно этим занимался, должно быть, я пытался сделать что-то еще, потому что это условие с двойным положительным значением выглядит так, как будто оно было написано Гомером Симпсоном. Я отредактировал код. Приветствия.
3. Lol @ комментарий Гомера Симпсона .. 🙂
Ответ №2:
Dreamweaver (вкл. CS6) помещает <!-- InstanceBegin template="...
комментарий перед doctype
тегом только в том случае, если он не может найти открывающий <html>
тег в вашем шаблоне! Это происходит, когда вы вообще забыли этот тег, а также когда этот тег помещается в условные комментарии, подобные этому:
<!--[if IE 8]> <html class="ie8"> <![endif]-->
Чтобы избежать этого, вы должны воздержаться от включения <html>
тега в условные комментарии. Когда вы используете обычный неприкрытый <html>
тег в коде вашего шаблона, Dreamweaver автоматически поместит тег <!-- InstanceBegin template="...
после этого <html>
тега во все файлы, производные от этого шаблона, и IE не перейдет в режим quirks.