Что такое режим совместимости (quirks mode) в браузерах?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Режим совместимости — это режим работы браузера, в котором он эмулирует поведение более старых версий, игнорируя современные веб-стандарты (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:
<!-- Отсутствие DOCTYPE -->
<html>
<body></body>
</html>
<!-- Неполный DOCTYPE -->
<!DOCTYPE html SYSTEM "http://www.w3.org/TR/html4/loose.dtd">
<html>
<body></body>
</html>
Пример валидного DOCTYPE, вызывающий standards mode:
<!DOCTYPE html>
<html>
<body></body>
</html>
Работа в режиме совместимости крайне нежелательна для современной разработки, так как приводит к непредсказуемому поведению CSS, JavaScript и проблемам с отображением в разных браузерах. Всегда необходимо использовать <!DOCTYPE html>.