Атрибут contenteditable тега <main>
Описание
Атрибут contenteditable позволяет сделать содержимое элемента <main> редактируемым прямо в браузере. Это глобальный атрибут, который может применяться к любому HTML-элементу, включая основной контейнер содержимого страницы.
<main contenteditable="true">
<h1>Редактируемый заголовок</h1>
<p>Вы можете изменить этот текст прямо в браузере.</p>
<ul>
<li>Редактируемый список</li>
<li>Добавляйте или удаляйте элементы</li>
</ul>
</main>
Значения атрибута:
| Значение | Описание | Поведение |
|---|---|---|
true или пустая строка |
Разрешает редактирование | Контент можно изменять |
false |
Запрещает редактирование | Контент нельзя изменить (по умолчанию) |
Особенности работы с <main>:
- Изменения сохраняются только в браузере (не на сервере)
- Для сохранения нужно использовать JavaScript
- Поддерживает базовое форматирование текста
- Может конфликтовать с некоторыми CSS-свойствами
Пример с сохранением содержимого:
<main id="editable-main" contenteditable="true">
<h1>Мои заметки</h1>
<p>Редактируйте это содержимое...</p>
</main>
<button onclick="saveContent()">Сохранить</button>
<script>
// Загрузка сохраненного содержимого
document.getElementById('editable-main').innerHTML =
localStorage.getItem('savedContent') || '<h1>Мои заметки</h1><p>Редактируйте это содержимое...</p>';
function saveContent() {
const content = document.getElementById('editable-main').innerHTML;
localStorage.setItem('savedContent', content);
alert('Содержимое сохранено!');
}
</script>
Стилизация редактируемой области:
<style>
main[contenteditable="true"] {
border: 2px dashed #ccc;
padding: 15px;
min-height: 200px;
}
main[contenteditable="true"]:focus {
border-color: #4CAF50;
outline: none;
}
</style>
<main contenteditable="true">
Наведите курсор и начните редактирование...
</main>
Рекомендации по использованию:
- Используйте для простых редакторов контента
- Для сложных редакторов рассмотрите специализированные библиотеки
- Всегда предусматривайте способ сохранения изменений
- Сочетайте с
spellcheckдля проверки орфографии - Учитывайте ограничения доступности
Примечание: Хотя contenteditable предоставляет быстрый способ создать редактируемую область, для production-решений часто лучше использовать специализированные редакторы (TinyMCE, CKEditor и др.), которые предлагают больше возможностей и лучшую кросс-браузерную поддержку.