Атрибут contenteditable тега <th>
Описание
Атрибут contenteditable в теге <th> позволяет сделать содержимое заголовка таблицы редактируемым прямо в браузере. Это булевый атрибут, который может быть полезен для интерактивных таблиц с возможностью редактирования данных.
<table border="1">
<tr>
<th contenteditable="true">Редактируемый заголовок</th>
<th>Обычный заголовок</th>
</tr>
<tr>
<td contenteditable="true">Редактируемая ячейка</td>
<td>Обычная ячейка</td>
</tr>
</table>
Значения атрибута:
| Значение | Описание | Поведение |
|---|---|---|
true |
Разрешает редактирование | Заголовок можно редактировать |
false |
Запрещает редактирование | Заголовок нельзя редактировать (по умолчанию) |
| (пусто) | Эквивалентно true | Заголовок можно редактировать |
Особенности работы:
- Изменения сохраняются только в DOM (не автоматически на сервер)
- Работает во всех современных браузерах
- Можно комбинировать с другими атрибутами таблицы
- Поддерживает стандартные команды редактирования (Ctrl+B, Ctrl+I и т.д.)
Рекомендации:
- Используйте JavaScript для сохранения изменений
- Добавляйте визуальные подсказки для редактируемых ячеек
- Ограничивайте редактирование только нужными ячейками
- Проверяйте вводимые данные перед сохранением
Ограничения:
- Нет встроенной возможности отмены изменений (undo)
- Ограниченное форматирование при редактировании
- Изменения не сохраняются автоматически
- Может конфликтовать с некоторыми CSS-стилями
Пример с CSS-оформлением:
<style>
[contenteditable="true"] {
background-color: #fff8e1;
padding: 5px;
border: 1px dashed #ffc107;
}
[contenteditable="true"]:focus {
background-color: #fff;
border: 1px solid #ffc107;
outline: none;
}
</style>
<table border="1">
<tr>
<th contenteditable="true">Редактируемый заголовок</th>
<th>Обычный заголовок</th>
</tr>
</table>
Примечание: Для сложных редакторов таблиц рассмотрите:
- Специализированные библиотеки (Handsontable, Tabulator)
- Реализацию более сложного управления через JavaScript
- Систему проверки вводимых данных