Вебсправочник
Ваш первый сайт

Урок: проверить поле без поддержки field-sizing

Современное CSS-улучшение должно оставлять поле пригодным для ввода в неподдерживающей среде. В уроке вы проверите запасное оформление отдельно от успешного срабатывания нового свойства.

Назначение

Современное CSS-улучшение должно оставлять поле пригодным для ввода в неподдерживающей среде. В уроке вы проверите запасное оформление отдельно от успешного срабатывания нового свойства.

Как это работает

Создайте textarea id fallback-note с rows, обычной шириной и ограничениями размера. Применяйте field-sizing:content только внутри @supports. Код читает признак поддержки и текущую геометрию, не меняя поле.

Пример

const field = document.querySelector("#fallback-note");
console.log("Поддержка:", CSS.supports("field-sizing", "content"));
console.log({height:field.getBoundingClientRect().height, scrollHeight:field.scrollHeight});

Что должно получиться

Поддержка синтаксиса выводится отдельно от размеров. После отключения улучшения в инспекторе обычное поле должно по-прежнему показывать текст и позволять добраться до его конца.

Граница применения и частая ошибка

CSS.supports не проверяет удобство компонента и не гарантирует отсутствие браузерных особенностей. Отключение одного правила в новом браузере не полностью заменяет тест старого движка. Не делайте доступность ввода зависимой от результата feature detection.

Самостоятельная проверка

Проверьте пустое поле, десять строк и длинное слово с включённым и выключенным правилом. Сравните ручное изменение размера, прокрутку и масштаб. Запишите оставшиеся ограничения проверки и протестируйте реальные целевые браузеры.

Самостоятельный учебный материал. Техническая документация: первоисточник по теме ↗. Если результат отличается, проверьте код и версию браузера.