ПРИХОДИТЕ УЧИТЬСЯ НОВОЙ ПРОФЕССИИ ЛЕТОМ СО СКИДКОЙ ДО 70%Забронировать скидку

Общий header/footer в статическом HTML без PHP

Пройдите тест, узнайте какой профессии подходите и получите бесплатную карьерную консультацию
В конце подарим скидку до 55% на обучение
Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Для встраивания единых заголовков и подвалов используйте fetch в JavaScript. Создайте отдельные .html файлы для этих элементов, которые затем при помощи указанного ниже кода разместятся в соответствующих разделах страницы:

HTML
Скопировать код
<script>
  // Загрузка заголовка...
  fetch('header.html')
    .then(response => response.text())
    .then(html => document.getElementById('header').innerHTML = html);

  // Загрузка подвала...
  fetch('footer.html')
    .then(response => response.text())
    .then(html => document.getElementById('footer').innerHTML = html);
</script>
<div id="header"></div>
<div id="footer"></div>

В результате этого заголовок и подвал будут динамически подключаться к каждой статичной странице, обеспечивая её структурное единообразие и упрощая процесс управления сайтом.

Пройдите тест и узнайте подходит ли вам сфера IT
Пройти тест

Применение переиспользования: наилучшие практики

Серверные включения (SSI) — эффективное средство

Server Side Includes (SSI) — это функциональность, которая облегчает управление статическим контентом и снижает зависимость от скриптовых языков. Стоит отметить, что различные веб-серверы, такие как Apache или NGINX, реализуют SSI по-разному, поэтому не забудьте прочитать документацию вашего сервера для корректной настройки.

jQuery делает процесс более комфортным

Для тех, кто отдает предпочтение работе на клиентской стороне, метод .load() из jQuery будет идеальным решением благодаря его простоте и эффективности:

JS
Скопировать код
// Загрузка заголовка и подвала...
$("#header").load("header.html");
$("#footer").load("footer.html");

Однако, помните, что применение jQuery делает ваш проект зависимым от данной библиотеки.

Внедрение контента при помощи HTML-тегов

Теги <object> или <embed> идеально подходят для строго контролируемого внедрения контента. Эти теги, возможно, не являются самыми популярными для решения данной задачи, но они безупречно подходят для стандартизированного содержимого:

HTML
Скопировать код
<!-- Пример внедрения заголовка -->
<object type="text/html" data="header.html"></object>
<!-- Пример внедрения подвала -->
<object type="text/html" data="footer.html"></object>

JavaScript без использования фреймворков и библиотек

Прямое использование JavaScript с помощью методов типа document.write() или модулей позволяет избежать лишних зависимостей:

JS
Скопировать код
// Да, это именно тот HTML, который вы ищете...
document.write('<header>...Здесь ваш заголовок...</header>');

Это удобный метод, но стоит помнить о возможных недостатках, таких как перерисовка документа и влияние на SEO.

Визуализация

Структура веб-страницы имеет схожесть со структурой дома:

Markdown
Скопировать код
      [🏠: Структура Веб-страницы]      
      /🔝\     [ЗАГОЛОВОК]                 
     /     \      общий      
 🚪[Здесь ваш уникальный контент]🚪         
     \     /      для всех    
      \🔻/     [ПОДВАЛ]

Крыша (ЗАГОЛОВОК) и фундамент (ПОДВАЛ) сохраняются неизменными на всех страницах, не важно в какой "комнате" (КОНТЕНТЕ) вы находитесь.

Навигация между ограничениями и препятствиями

Будьте внимательны с SEO при использовании JavaScript

Применение JavaScript для вставки заголовков и подвалов может затруднить SEO. Поисковые системы не всегда корректно обрабатывают JavaScript, что усложняет индексацию контента. Рассмотрите возможность использования серверных или гибридных решений, чтобы избежать возникновения проблем.

Совместимость и поддержка браузеров для встроенных тегов

Если вы используете <embed> или <object>, убедитесь в их совместимости с различными браузерами и устройствами. Не смотря на то, что современные браузеры широко поддерживают эти теги, иногда могут встречаться исключения.

Двойная роль JavaScript

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

Выбор решения в зависимости от потребностей

Каждый метод внедрения общих элементов имеет свои преимущества и недостатки:

  • Серверные включения (Includes) оперативны с точки зрения производительности и SEO, но требуют доступа к настройкам сервера.
  • Клиентские включения (Includes) удобны и просты в настройке, но могут негативно отразиться на SEO и создают зависимости.
  • Прямое внедрение менее распространено, но при должной поддержке браузера работает стабильно.

    Ваш выбор должен учитывать технические ограничения, пожелания целевой аудитории и SEO-требования, а также стремиться к оптимальной надежности, функциональности и удобству управления веб-сайтом.

Полезные материалы

  1. Как включить HTML — Подробное руководство по вставке заголовков и подвалов в HTML.
  2. Веб-компоненты – Веб-API | MDN — Обзор использования переиспользуемых компонентов HTML.
  3. PHP: include – Руководство
  4. Шаблонные строки – JavaScript | MDN — Применение шаблонных строк в JavaScript для создания динамических HTML-шаблонов.
  5. jQuery — Введение в функциональность jQuery.
  6. <iframe>: элемент встроенного фрейма – HTML | MDN — Инструкция по интеграции iframe в HTML.