Наш чат в Telegram для обмена идеями, проектами, мыслями, людьми в сфере ИТ г.Ростова-на-Дону: @it_rostov

Тег <base>

Тег <base> задает базовый адрес (URL) для гипертекстовых ссылок документа, заданных в относительной форме. Кроме того, <base> позволяет способ открытия ссылок по умолчанию.

Разметка гипертекстовых ссылок обычно выполняется как разметка в частично заданных (относительных) адресах, когда URL задается относительно текущего местоположения документа. Например:

<a href="../next_level/document.html">...</a>

В этом случае в качестве базы по умолчанию выбирается каталог, в котором размещен HTML-документ.

Такой стиль разметки удобен тем, что при переносе всего дерева документов в другое место не потребуется менять систему гипертекстовых ссылок внутри документов. Кроме того, распространению этого стиля способствует и сама архитектура World Wide Web. Наиболее тесные связи между документами задаются только в рамках одного сайта. Связей данного сайта с остальными существенно меньше, и их можно прописать непосредственно в ссылках в абсолютных адресах.

Тег <base> может быть только один и размещается он в области заголовка в контейнере <head>...</head>. Например:

<html>
<head>
    ...
    <base href="http://htmlweb.ru/html/">
    ...
</head>
<body>
    ...
    <a href="doctype.php">
    ...
</body>
<html>

Тег <base> содержит обязательный атрибут href и может содержать необязательный атрибут target.

Атрибуты тега <base>

href
Определяет базу для относительных ссылок.
target
Определяет способ открытия ссылок по умолчанию. Возможные значения:
  • _blank – документ откроется в новой вкладке,
  • _parent – документ откроется во фрейме-родителе (если такого нет, то в текущей вкладке),
  • _self – документ откроется в текущей вкладке (по умолчанию),
  • _top – отменяет все фреймы и загружает страницу в полном окне браузера (если фреймов нет, то в текущей вкладке),
  • имя фрейма.

Наиболее часто тег <base> встречается на страницах сайтов, которые имеют "зеркала". Часть документов основного сайта по разным причинам на "зеркальный" сайт не переносится. В этом случае документ с принудительно заданным базовым URL всегда будет ссылаться на основной сервер. Он оказывается "белой вороной" среди прочих документов сайта. При этом такая схема часто используется в совокупности с запретом на кэширование данного документа как клиентом (браузером), так и proxy-серверами.

Существуют различия и при определении базового URL по умолчанию при обращении к страницам, которые различны по своей природе. Если для обычного файла базовым адресом по умолчанию является адрес каталога, где хранится данный файл, то для страниц, которые генерируются "на лету", возможны и другие базовые адреса по умолчанию. Например, для страниц, сгенерированных CGI-скриптом, адресом по умолчанию является URL данного скрипта. Если из такой страницы снова вызвать скрипт, как частично заданную ссылку, то имя скрипта будет передано в качестве параметра скрипту, который сгенерировал данную страницу.

<a href="http://htmlweb.ru/analiz/sitemap.php?url=htmlweb.ru">...</a>

Базовый адрес: http://htmlweb.ru/analiz/sitemap.php

Если скрипт вызовет сам себя по частично заданной ссылке, то он себя не найдет (sitemap.php?url=htmlweb.ru).

Возможность определения окна загрузки в теге <base> позволяет не указывать атрибут target в теге ссылки <a>:

<a href="sitemap.php" target="left">intuit</a>

Потребность в этом возникает при организации постоянно отображаемых меню. Такое меню может быть реализовано либо во фрейме, либо в окне. При этом информационные страницы Web-узла, которые загружаются при активизации гипертекстовых ссылок, будут загружаться в другое окно или фрейм.

Особенно полезен атрибут target на страницах с вызовом скриптов, если результат работы скрипта нужно загрузить в определенное окно (фрейм).

Использование атрибута target осуждается спецификацией HTML, валидный код получается только при использовании переходного <!DOCTYPE>.

Синтаксис тега <base> в общем виде выглядит следующим образом:

<base href="http://www.intuit.ru/intro.html">
<base href="http://www.intuit.ru/intro.html" target="_blank">

Применение тега <base> в современных документах ограничено в силу разных причин. В сложных случаях можно пользоваться указаниями URL в полной форме, т.е. абсолютными адресами.

Читать дальше: Текст в html


.