Почему сайт работает в режиме причуд IE?

У меня есть сайт: http://www.sucramma.dk Когда я нахожусь в FF, Chrome, или Safari, сайт отображается так, как должен, но в IE сайт выровнен по левому краю и работает в режиме совместимости. Почему? Тип документа установлен!


person nickycdk    schedule 21.02.2011    source источник
comment
Как узнать, что он в режиме причуд?   -  person BoltClock    schedule 21.02.2011
comment
В IE нет режима под названием quirks mode. Вы имеете в виду представление о совместимости? IE 9 RC не говорит, что отображает ваш сайт в режиме совместимости.   -  person In silico    schedule 21.02.2011
comment
@In silico: он имеет в виду этот en.wikipedia.org/wiki/Quirks_mode   -  person Eineki    schedule 21.02.2011
comment
@Eineki: Я знаю, что имел в виду OP. Я говорил, что в IE нет того, что называется режимом причуд, а скорее называется представлением совместимости.   -  person In silico    schedule 21.02.2011
comment
@Insilico да, в IE есть режим совместимости.   -  person Wirone    schedule 08.02.2013
comment
Возможно, это немного поздно, но ... какие версии IE тестировались здесь, в результате чего спецификация запускала режим причуд?   -  person MrWhite    schedule 14.01.2014
comment
Вопрос стал бессмысленным, так как контент был указан только по URL, а контент, видимо, изменился на что-то совершенно другое.   -  person Jukka K. Korpela    schedule 14.01.2014


Ответы (5)


введите описание изображения здесь

Это метка порядка байтов, которая невидима для большинства текстовых редакторов. Попробуйте использовать VIM и убить его или как-нибудь найти другой текстовый редактор и убить все до <!DOCTYPE html>

Вы можете просто скопировать <!DOCTYPE HTML> и все, что находится под ним, в новый файл и сохранить поверх него, что означает, что вы не будете копировать спецификацию, поступившую до нее, для решения этой проблемы; Я сталкивался с этим много раз.

person meder omuraliev    schedule 21.02.2011
comment
Повторите первую правку, да, Eineki пропустил ее через валидатор и кое-что нашел. - person BoltClock; 21.02.2011
comment
Перед типом документа нет пробелов, я проверил 3 разных редактора и не могу удалить пробелы :( - person nickycdk; 21.02.2011
comment
Используйте VIM, и вы кое-что увидите. Это связано с спецификацией. - person meder omuraliev; 21.02.2011
comment
@nick как ты загрузил файл на сервер? Как вы вносите изменения? - person Shadow Wizard Wearing Mask V2; 21.02.2011
comment
У меня было зудящее ощущение, что это спецификация ... действительно так :) - person BoltClock; 21.02.2011
comment
Анализ неверен. В начале есть что-то еще, кроме спецификации, по-видимому, разрыв строки. Тогда U + FEFF больше не является спецификацией. - person Jukka K. Korpela; 14.01.2014
comment
Сообщение об ошибке валидатора, указанное в ответе @Eineki, доказывает, что это не спецификация. Валидатор всегда принимал спецификацию (которая действительна). То же самое с разрывом строки, но разрыв строки + U + FEFF - это совсем другое. - person Jukka K. Korpela; 14.01.2014

http://validator.w3.org/check?uri=www.sucramma.dk&charset=%28detect+automatically%29&doctype=Inline&group=0

Проверка не удалась, см. Первую ошибку:

Строка ошибки 1, столбец 1: обнаружены непробельные символы, в которых сначала не указан тип документа. Ожидал .

Тип документа недостаточен, чтобы перевести браузер в стандартный режим. При обнаружении ошибки рендеринг возвращается в режим причуд.

Исправьте ошибки и попробуйте еще раз, все готово

person Eineki    schedule 21.02.2011
comment
Очень-очень хорошо, я не думаю, что кто-то еще, кроме валидатора, мог заметить этого таинственного персонажа. +1 - person BoltClock; 21.02.2011
comment
Да, но странно то, что перед типом документа нет символов, а также пробелов: S - Не знаю, почему проверка говорит это - person nickycdk; 21.02.2011
comment
@nickycdk - используйте vim, чтобы отредактировать или скопировать все, что начинается с <!DOCTYPE HTML>, создать новый файл и повторно сохранить его. - person meder omuraliev; 21.02.2011
comment
@nickycdk: это bom, обычно редакторы его игнорируют и не показывают. Это хорошо известная мне чума utf-8 - person Eineki; 21.02.2011
comment
Больше невозможно проанализировать, что содержалось на проблемной странице, но, вероятно, она начиналась с разрыва строки и символа U + FEFF. По крайней мере, такая комбинация вызывает указанное сообщение об ошибке. - person Jukka K. Korpela; 14.01.2014

На сайте нет DOCTYPE, поэтому он будет работать в режиме причуд, потому что не знает, какой DTD использовать ...

РЕДАКТИРОВАТЬ: Как указано BoltClock, у него есть DOCTYPE (я просто еще не до царапин на HTML5). Мои извенения.

Подробнее читайте здесь: http://www.w3schools.com/tags/tag_doctype.asp

person JamesHalsall    schedule 21.02.2011
comment
У него действительно есть доктайп. Посетите сайт и просмотрите источник. - person BoltClock; 21.02.2011
comment
@Bolt, насколько я знаю, <!DOCTYPE html> недействителен. - person Shadow Wizard Wearing Mask V2; 21.02.2011
comment
@Shadow Wizard: это тип документа HTML5, и я считаю, что IE распознает его как тип документа. - person BoltClock; 21.02.2011
comment
@BoltClock Да, это я не в курсе HTML5, да! - person JamesHalsall; 21.02.2011
comment
IE должен уметь распознавать тип документа html5. - person nickycdk; 21.02.2011

Попробуйте использовать полное объявление документа (и без пробела в начале)

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

person ufoq    schedule 21.02.2011
comment
<!DOCTYPE html> - это действительное объявление типа документа HTML5. - person BoltClock; 21.02.2011
comment
Не могу использовать это, я запускаю html5 - person nickycdk; 21.02.2011

У меня была эта проблема, которую я изменил на <!DOCTYPE html>, и она исправила ее

person Nick    schedule 27.08.2013