Если верстаешь несколько страниц, в которых есть повторяющиеся блоки, то как их инклюдить?
Возник немного необычный вопрос. Занимаюсь версткой очередного сайта. Страниц много. И во всех них есть одинаковые блоки, например, шапка, подвал, меню и т.д. И верстая каждую страницу приходится туда вставлять один и тот же код. А если, не дай бог, что-то приходится изменить в шапке, например, то приходится менять во всех страницах. Как на этапе верстке оптимизировать свою работу чтобы не делать повторных действий? Я вижу только вариант - верстать не в .html а в .php и с помощью оператора include подключать во всех макетах одинаковые блоки. Но на этапе верстки это не очень удобно, т.к. во-первых, для запуска таких макетов нужен сервер, а во-вторых, неудобно такую верстку демонстрировать клиенту (опять же по причине надобности сервака). Случайно в html не предусмотрено никаких механизмов для подключения отдельных блоков? Или может хитрости какие-нибудь?
includeHTML - Loading HTML parts via HTML tag (pure js)
Supported protocols: http://, https://, file:///
Supported browsers: IE 9+, FF, Chrome (and may be other)
Максим Жаров: ну так для этого и написано... чтобы блоки инклудить HTML-файлы в блоки, если нужно блоки из HTML - нужно парсить контент уже.. я этого не создавал. (пока даже не могу понять: зачем такое может потребоваться?..)
Максим Жаров: ну если вам не нужна работа по протоколу file:/// и интересно Вам кодить на js, думать что jquery работает быстрее - тогда да...
Иначе - без вариантов)
Максим Жаров: я делал, чтобы по клику на HTML-файле, сразу собирался шаблон. Это в помощь тем, кто делает вёрстку макетов или создаёт прототип этого шаблона. Чтобы максимально исключить js при сборке.
Также, можно создавать по клику переключение страниц и т.д. (т.е. минимум)
Максим Жаров: Это срабатывает только при локальном запуске. Подсказку даёт для Win, да. Для других ОС - я не тестил и как там будет - не знаю. В любом случае - флаг тот же самый должен быть.
xmoonlight: не кроссплатформенно , но задумка Жесть , load() и также parsing не работает без localhost , и потому наверно не интересен мне этот момент , самое лучшее это все тренировки делать на локальном сервере - так работает ВСЁ
xmoonlight: я вот только ради тренировки накидал этот load() на jQuery за 4 минуты , без проблем , и на днях парсил (тоже) для тренировки контент с какого то левого сайта который не отдаёт заголовки , и в итоге сработало Но работа с file:/// не интересна мне только из за ограничений со стороны js и с php -
xmoonlight: я даже не правильно написал , парсить то и не надо , просто инклуде на php и делов то ! но ваше решение для работы без локального сервера , excellent
Действительно, вы бы хотя б погуглили здесь на сайте, через день подобный вопрос.
В практике верстки давно уже существует понятие препроцессоров, возьмем к примеру gulp. В gulp используем плагин gulp-rigger, благодаря которому имеем: header.html и footer.html и тому подобные, которые подключаем на нужные страницы с помощью команды:
//= template/header.html
И не важно сколько у вас страниц, созданный блок инклюдите в том месте где нужно, это касается не только header и footer, это можно использовать с любым повторяющемся блоком.
Знакомьтесь с препроцессорами и удачи.