Middle
52
questionbank

Что такое режим совместимости (quirks mode) в браузерах?

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech

Режим совместимости — это режим работы браузера, в котором он эмулирует поведение более старых версий, игнорируя современные веб-стандарты (HTML5, CSS3). Это нужно для корректного отображения старых веб-страниц, написанных без соблюдения стандартов или для определённых версий Internet Explorer.

Браузер определяет режим рендеринга по наличию и содержимому DOCTYPE:

  • Quirks mode: Активируется, если DOCTYPE совсем отсутствует или имеет некорректный формат (например, устаревшие DOCTYPE для HTML 4.01 Transitional без URI системного идентификатора). В этом режиме браузер применяет нестандартные правила рендеринга, например, обрабатывает width и height для box-sizing как border-box, даже без явного указания.
  • Standards mode: Активируется при наличии валидного DOCTYPE (например, <!DOCTYPE html>). Браузер строго следует веб-стандартам.
  • Almost standards mode: Промежуточный режим, активируется при определённых DOCTYPE (например, для HTML 4.01 Transitional с URI системного идентификатора). Близок к стандарту, но имеет незначительные отличия (например, обработка вертикальных отступов табличных ячеек).

Примеры некорректного DOCTYPE, вызывающие quirks mode:

html
html

Пример валидного DOCTYPE, вызывающий standards mode:

html

Работа в режиме совместимости крайне нежелательна для современной разработки, так как приводит к непредсказуемому поведению CSS, JavaScript и проблемам с отображением в разных браузерах. Всегда необходимо использовать <!DOCTYPE html>.