Атрибут 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 и доступности
  • Ограниченные возможности стилизации
  • Не адаптируется для мобильных устройств
  • Нарушает принцип разделения структуры и оформления

Рекомендации по миграции:

  1. Замените <frameset> на CSS Grid или Flexbox
  2. Используйте семантические HTML5-элементы
  3. Для динамического контента применяйте AJAX/SPA подходы
  4. Перенесите стили классов на современные элементы
  5. Используйте медиазапросы для адаптивного дизайна

Примечание: Хотя атрибут class технически работал с <frameset>, в современной веб-разработке следует полностью отказаться от фреймов в пользу семантической разметки и CSS-технологий, которые обеспечивают лучшую гибкость, доступность и производительность.