Атрибут class тега <frameset>
Описание
Атрибут class позволял назначать CSS-классы элементу <frameset>. Однако важно понимать, что сам элемент <frameset> является устаревшим (deprecated) и был полностью удалён из спецификации HTML5.
<frameset class="main-layout" cols="25%,75%">
<frame src="nav.html">
<frame src="content.html">
</frameset>
Ограничения стилизации frameset:
| CSS-свойство | Поддержка в <frameset> |
|---|---|
| width/height | ❌ Управлялось атрибутами cols/rows |
| border | ❌ Использовались frameborder, bordercolor |
| background | ⚠️ Ограниченная поддержка |
| margin/padding | ❌ Не применялись |
Современная альтернатива с CSS Grid:
<div class="grid-layout">
<nav class="sidebar">
<!-- Контент меню загружается через AJAX -->
</nav>
<main class="content">
<!-- Основной контент -->
</main>
</div>
<style>
.grid-layout {
display: grid;
grid-template-columns: 25% 75%;
height: 100vh;
}
.sidebar {
background: #f8f9fa;
border-right: 1px solid #dee2e6;
}
</style>
Почему следует избегать frameset:
- Полностью удалён из HTML5 стандарта
- Создаёт проблемы для SEO и доступности
- Ограниченные возможности стилизации
- Не адаптируется для мобильных устройств
- Нарушает принцип разделения структуры и оформления
Рекомендации по миграции:
- Замените
<frameset>на CSS Grid или Flexbox - Используйте семантические HTML5-элементы
- Для динамического контента применяйте AJAX/SPA подходы
- Перенесите стили классов на современные элементы
- Используйте медиазапросы для адаптивного дизайна
Примечание: Хотя атрибут class технически работал с <frameset>, в современной веб-разработке следует полностью отказаться от фреймов в пользу семантической разметки и CSS-технологий, которые обеспечивают лучшую гибкость, доступность и производительность.