HTML-редактор с предпросмотром

Начните с небольшого примера. Запускайте код осознанно, проверяйте результат и сохраняйте редактируемую копию.

От ввода к проверенному результату

Начните с небольшого примера. Запускайте код осознанно, проверяйте результат и сохраняйте редактируемую копию.

Шаг 1

Выберите код

<button id="n">1</button>
#n { padding: 1rem; }
console.log(1);

Используйте шаблон, вставьте фрагмент или импортируйте HTML либо проект JSON. Скрипты и сеть изначально отключены.

Шаг 2

Проверьте результат

Запустите предпросмотр, сравните ширину и изучите проверки. Разрешайте только доверенный код и необходимые внешние запросы.

Шаг 3

Сохраните проект

.html
.json

HTML объединяет страницу, а JSON сохраняет отдельные вкладки. Ссылка для передачи содержит код, а не только его изображение.

Практические задачи

Воспроизвести ошибку адаптивной вёрстки

В сообщении об ошибке говорится, что на телефоне исчезает третья колонка тарифов. Оставьте только относящиеся к ней HTML и CSS, отключите скрипты и сеть и сравните 390 с 768 CSS-пикселями при масштабе 100%. Подставьте самые длинные реальные подписи вместо коротких заглушек. Если ошибка исчезла без правила родительского контейнера, верните именно его. Сохраните сокращённый проект JSON с проблемной шириной и ожидаемым результатом: такой пример проще разобрать вместе с коллегой.

Разобрать небольшую интерактивную задачу

Откройте шаблон счётчика и прочитайте обработчики, прежде чем разрешать скрипты. Дважды увеличьте значение, один раз уменьшите и сбросьте: ожидаются 2, 1 и 0. Сравните показания с консолью. Замена шага увеличения на 2 позволяет сначала предсказать результат, затем проверить его. Каждый новый запуск создаёт документ заново и обнуляет состояние. Сохранение проекта сохраняет исходник, а не значение переменной в памяти.

Проверить документ или форму перед передачей

Импортируйте HTML без конфиденциальных данных и изучите head, подписи полей и адреса ресурсов при отключённом выполнении. Шаблон формы показывает обязательные поля и встроенную проверку email, а со скриптами выводит локальное сообщение. Письма он не отправляет. Проверьте клавиатурный фокус и ошибочный ввод и запишите, какой реальный обработчик отправки и какие серверные проверки ещё нужны.

Собственные HTML и CSS ClockTools рядом с вручную обновлённым предпросмотром
Кнопка запуска обновляет предпросмотр по собственным HTML и CSS ClockTools. JavaScript и автоматический запуск в этом примере отключены: редактирование кода отделено от обновления просмотра.

Граница предпросмотра

Исходные файлы
Песочница с непрозрачным источником
Результат в браузере
Предпросмотр отделён от приложения. Доступ к сети разрешается отдельно; изоляция не заменяет проверку на вредоносный код.

Пример: кнопка может переноситься при ширине 390 пикселей и помещаться при 768. Это различие ширины, а не доказательство совместимости со всеми телефонами.

Из трёх вкладок исходника в один документ браузера

Подсветка синтаксиса, номера строк, парные скобки, сворачивание и дополнение помогают ориентироваться в небольшом файле, но не доказывают его работу. Копирование активного файла берёт одну вкладку, полного HTML — собранный документ. Импорт принимает файлы в пределах 2 MiB. Соседним изображениям всё равно нужны доступные адреса: импорт HTML не загружает всю папку.

HTML задаёт структуру, CSS оформление, JavaScript обычное поведение в браузере. Фрагмент вроде <main><h1>Заметки</h1></main> получает оболочку документа. Полный HTML сохраняет свои head и body; CSS вкладки добавляется в head, JavaScript ближе к концу body. Уже встроенные стили и скрипты остаются в импортированном файле. Если продублировать их в отдельной вкладке, одно действие может выполняться дважды.

Редактирование, просмотр и проверка поведения — разные этапы. Напишите или отформатируйте код, изучите вид страницы, затем выполните действие и прочитайте диагностические сообщения. Запуск использует текущий черновик. Без автозапуска во время правок может показываться предыдущая версия. Автозапуск удобен для доверенных CSS-экспериментов; ручной режим лучше для незаконченного обработчика или побочного эффекта. Форматирование касается активной вкладки и улучшает читаемость, но не исправляет смысл.

Выбирайте шаблон по нужному приёму. Blank HTML5 и Semantic Article помогают со структурой документа; Responsive Landing, CSS Grid Dashboard и Flexbox Pricing показывают варианты раскладки. Interactive Card и JavaScript Counter раскрывают события. CSS Animation содержит правило уменьшения движения. Accessible Form связывает подписи и статус. Это исходные примеры, а не подтверждение качества после ваших изменений.

Не путать ширину макета с масштабом просмотра

Режим подгонки следует размеру панели; фиксированные режимы используют 390, 768 и 1280 CSS-пикселей. Это ширина области вёрстки, не эмуляция модели телефона. Масштаб меняет видимый размер внутри редактора. Он помогает рассмотреть широкую страницу, но уменьшенная картинка не доказывает, что содержимое помещается в узком viewport. Начните со 100%, сравните режимы и проверьте собственные границы медиазапросов средствами браузера.

Правило на 720 пикселях может показывать три колонки при 768 и одну при 390, не обнаруживая сбой при 721. Проверьте длинные заголовки, пустое состояние и сообщение об ошибке, а не только аккуратный шаблон. Фиксированная ширина дочернего элемента, неразрывная URL или большие внутренние отступы способны вызвать переполнение даже в адаптивной сетке. Убирайте по одному ограничению и запускайте снова.

Сравнение ширин отвечает на вопрос о раскладке. Оно не проверяет касания, экранную клавиатуру, плотность пикселей, производительность телефона или другой движок. Испытайте экспорт с клавиатурой, увеличенным текстом и реальными устройствами. Полный экран даёт место редактору, отдельная вкладка облегчает просмотр. Ни одна из этих команд не публикует страницу.

Что можно узнать из сравнения режимов
НастройкаПолезное наблюдениеЧто проверить отдельно
390 CSS-пикселейУзкие переносы и одна колонкаСенсорный ввод и мобильный браузер
768 CSS-пикселейПромежуточная сетка и навигацияШирины около ваших медиазапросов
1280 CSS-пикселейШирокий макет и длина строкДругие браузерные движки
Масштаб просмотраКрупное или уменьшенное изображениеПерекомпоновка при иной ширине

Искать причину через консоль и проверки документа

В полном документе проверьте <!doctype html>, язык, UTF-8, адаптивный viewport и содержательный title. Поставьте язык текста, не оставляйте английский шаблон автоматически. Отмечаются также скачки уровней заголовков, отсутствие типа кнопки и встроенные события. Очистка консоли удаляет старые сообщения без изменения кода; после неё проще наблюдать одно действие.

Если кнопка не работает, сначала убедитесь, что скрипты разрешены и текущий черновик запущен. Найдите первую ошибку после нового запуска. Значение null у querySelector часто означает несовпадение селектора с ID или отсутствие элемента. Выведите небольшое значение возле проблемной ветви, а не весь конфиденциальный объект. Ограниченная консоль собирает обычные сообщения, ошибки и отклонённые Promise; это не отладчик с точками останова и не полная трасса.

Проверки анализируют собранный документ: недостающие сведения, повторяющиеся ID, картинки без alt, поля без подписей, действия без имени и подозрительные ссылки. Ошибка требует изучения контекста, рекомендация может быть вопросом дизайна. Для декора допустим alt="", для содержательной картинки нужно полезное описание. Несколько H1 не становятся недопустимыми только потому, что предлагается один ясный главный заголовок.

Рекомендации W3C по подписям формы объясняют пользу видимой подписи, связанной с полем. Исчезающий при вводе placeholder не заменяет её. После исправления пройдите форму клавишей Tab и проверьте фокус и сообщения. Эти проверки не подтверждают контраст, порядок чтения, работу со скринридером или полное соответствие HTML. Дополните их валидатором и проверкой доступности конкретного сценария.

Проверьте объём загрузки, прежде чем доводить оформление. Для доверенных внешних ресурсов откройте полноценные сетевые инструменты браузера до повторной загрузки примера. Сравните загрузку без файлов в кеше с повторной загрузкой. Проверьте неудачные запросы, переданные байты, крупные изображения и библиотеки, а также запросы, запускающие загрузку зависимостей. Справочник сетевых инструментов Chrome различает объём передачи и больший размер распакованного ресурса. Небольшой HTML-файл может зависеть от нескольких мегабайт изображений или скриптов. Удалите ненужный ресурс либо уменьшите слишком большое изображение и повторите тот же опыт. Быстрый предпросмотр из кеша не доказывает хорошую работу при медленном соединении.

Проследите за появлением содержимого и его смещениями. Руководство по CSS, блокирующему отрисовку, объясняет, почему необходимая таблица стилей может задержать первое оформленное представление: размер загрузки не определяет все затраты. Исследуйте загрузку и долгие операции JavaScript средствами анализа производительности браузера; Console и Checks не заменяют профилировщик. Если заголовок смещается после появления изображения, шрифта или встроенного содержимого, используйте рекомендации по сдвигам макета. Заранее выделите нужное место с правильными значениями width/height или aspect-ratio и снова проверьте загрузку. Передавая пример, укажите зависимости и условия проверки. Такой сокращённый опыт не воспроизводит кеш, ответы будущего сервера и производительность всех устройств.

Осознанно подключать внешние ресурсы

Настройки ресурсов принимают HTTP- и HTTPS-адреса CSS и готовых браузерных скриптов, а также базовую URL. Указывайте адрес на отдельной строке. При базе https://example.org/demo/ путь images/logo.png относится к этому каталогу, а /images/logo.png начинается с корня origin. Стандарт HTML описывает такое разрешение адресов. База не является папкой загрузки и не делает локальные файлы доступными в интернете.

Если после импорта пропали шрифт или изображение, проверьте адрес прежде CSS. Он может относиться к другому каталогу, требовать входа, блокироваться сетевым переключателем или удалённым сервером. Разрешение сети допускает попытку, не гарантирует ответ. Выполнение скриптов разрешается отдельно: внешнему JavaScript нужны и ресурс, и разрешение выполнения.

Готовый браузерный файл CDN может подойти для небольшого опыта. Имя пакета npm, JSX, TypeScript, Sass или PHP здесь не превращаются в исполняемую программу. Нет установки пакетов, компиляции, базы данных или посредника для закрытого API. Для фреймворков и приложений с авторизацией нужна соответствующая среда, затем проверка под настоящими политиками будущего сайта.

Что защищает граница предпросмотра?

Правила sandbox WHATWG описывают изолированный origin iframe без разрешения same-origin. Предпросмотр его не выдаёт. Скрипты и сеть изначально выключены и разрешаются независимо; импорт также выключает автозапуск. Для статической вёрстки оставьте оба выключенными. Доверенному счётчику нужны скрипты, но не внешние запросы.

Изоляция ограничивает доступ, а не оценивает доверие. Цикл может расходовать ресурсы, скрипт нарисовать обманную форму входа, а разрешённый ресурс отправить запрос на свой сервер. Не вводите учётные данные в предпросмотр. Ограничения консоли уменьшают обычный поток сообщений, но не гарантируют защиту от зависания вкладки из-за враждебного кода.

Отдельная вкладка предпросмотра сохраняет iframe и выбранные разрешения. Скачанный полный HTML отличается: код и ресурсы находятся в нём без ограничений выполнения редактора. Прямое открытие может запустить скрипты. Изучите файл перед открытием и пересылкой, особенно если источник незнаком.

Сохранить подходящий файл для следующего шага

Проект JSON сохраняет название, отдельные вкладки, базовую URL и списки ресурсов. Полный HTML — собранный документ, не автономный архив всех удалённых изображений и библиотек. При повторном импорте весь HTML остаётся в своей вкладке, исходное разделение не восстанавливается. Храните JSON для дальнейших правок, HTML для просмотра результата.

Для диагностики удобнее неминифицированный HTML. Минификация удаляет комментарии и сжимает поддерживаемый код; сравните результат и оставьте оригинал. Черновик принадлежит локальному профилю, это не облачная копия и не история версий. Хранилище бывает запрещено или очищено. При сообщении о повреждении сохраните нужное до сброса: сознательное сохранение или сброс может заменить прежний черновик.

Поделиться помещает сжатый проект во фрагмент URL, включая код и настройки ресурсов. Это не секрет с контролем доступа и не размещённая в интернете рабочая страница. Получатель может изучить и переслать ссылку. Если проект превышает лимит ссылки, скачайте JSON. Импорт принимает HTML/HTM и поддерживаемый JSON в пределах размера, не целую папку файлов.

Почему структура документа по-прежнему важна

История появления Web от CERN связывает его с работой Тима Бернерса-Ли в 1989 году над обменом связанной информацией. Документный подход полезен и сейчас: заголовки объясняют отношения, ссылки ведут к значимым целям, формы собирают сведения с понятной целью. Красивые общие блоки ещё не делают документ понятным.

В примере для документации сначала решите, что должен узнать читатель. Для действия выбирайте настоящую кнопку, для перехода ссылку. Объясняйте столбцы таблицы, не полагайтесь на цвет. Такие решения делают небольшой пример понятнее и облегчают перенос в другой проект.

Полезная передача фиксирует исходник, последнюю проверенную ширину, браузер, разрешения и ожидаемое поведение. Работа счётчика в этом опыте отличается от готовности приложения к размещению. Быстрый тест сохраняет пользу, не заявляя доказательства серверной работы, безопасности production или всех устройств.

Методика, ограничения и исправления

Методика: Документ объединяет HTML, CSS и JavaScript вкладок. Проверки выявляют типовые проблемы, но не подтверждают полное соответствие стандартам. Ручной и автоматический предпросмотр остаются изолированными.

Ограничения: Внешние ресурсы могут не загрузиться и раскрыть запросы своим владельцам. Повреждённый черновик сохраняется до явного сохранения или сброса. При недоступном хранилище скачайте копию.

Исправления: Подготовьте минимальный пример. Укажите браузер, ширину и ожидаемое и фактическое поведение, удалив конфиденциальные данные.

МетодикаИсправления

Частые вопросы

Почему правки не меняют предпросмотр?

Автозапуск изначально выключен. Запустите текущий черновик вручную или включите его для доверенного примера. Шаблоны и импорт могут обновлять статический вид без скриптов. Если различие осталось, проверьте вкладку нужного правила и встроенные стили, которые его перекрывают.

Почему счётчик сбрасывается после запуска?

Создаётся новый документ. Переменные и DOM-изменения восстанавливаются из кода. Сохранение хранит исходник, не текущее состояние счётчика. Долговременное состояние нужно отдельно проверять в готовом приложении.

Можно ли просмотреть целый сайт по URL?

Базовая URL лишь разрешает относительные ресурсы. Она не загружает целый сайт и не воспроизводит его сервер, сессию и API. Импортируйте разрешённый фрагмент с доступными ресурсами или сократите ошибку до автономного примера без закрытых данных.

Почему запрос не проходит при разрешённой сети?

Сервис может требовать входа, отвергать непрозрачный origin, быть недоступным или применять браузерные политики. Переключатель не обходит CORS и авторизацию. Изучите URL и инструменты разработчика; не вставляйте секретные токены ради демонстрации.

Выключение скриптов удаляет их из экспорта?

Нет. Оно ограничивает предпросмотр, но HTML может содержать script и событийные атрибуты. Полный экспорт сохраняет код без этих ограничений. Прочитайте весь файл перед открытием и отправкой.

Что отправить для дальнейшего редактирования?

JSON сохраняет вкладки и ресурсы. Неминифицированный HTML даёт браузерный документ. Укажите удалённые зависимости и минимальный ожидаемый результат. Ни один формат не является полным архивом ресурсов или пакетом развёртывания.

Почему форматирование не удалось?

Парсер активной вкладки должен понимать синтаксис. Проверьте скобки, атрибуты и код фреймворка в обычном JavaScript. Форматирование не компилирует. Сохраните черновик, исправьте первую синтаксическую ошибку и запустите снова; аккуратный код всё ещё может быть логически неверным.

Достаточно ли проверок перед публикацией?

Нет. Они находят типовые пропуски. Проверьте клавиатуру, увеличение текста, полезность описаний и реальные состояния. Валидируйте экспорт, целевые браузеры и сервер отправки. Пустой список замечаний не сертифицирует доступность или безопасность.

Общий проект автоматически заменит мой черновик?

Корректная ссылка открывает проект без автоматической замены сохранённого черновика. Сознательное сохранение или сброс могут заменить его. Сначала скачайте копию, если она важна. Некорректные данные ссылки не являются надёжной резервной копией.

Можно ли проверять здесь HTML-письма?

Можно изучить разметку и браузерный вид. Почтовые клиенты могут удалять стили, блокировать картинки и иначе обрабатывать таблицы. Нужны реальные клиенты и система отправки. Удачный браузерный вид не доказывает одинаковый показ или доставку.