Подтвердить что ты не робот

Является ли HTML <base> тегом также соблюдение сценариев и CSS?

base HTML-элемент предоставляет базу для относительных URI в HTML. Обязательно, чтобы JavaScript и CSS соблюдали это для относительных URI, выпущенных в них:

например.

JavaScript:

location.href = "mypage.htm"` 

CSS

h4 { 
    background-image: url(myimage.gif) 
}

(в любом браузере?)

4b9b3361

Ответ 1

Пути CSS всегда (за исключением случаев, когда IE6 является ошибкой и глупостью и пытается загрузить файлы .htc, указанные в атрибутах CSS behavior по отношению к документу) относительно самой таблицы стилей и не зависит от местоположения HTML. Для других вещей <base> будет влиять на воспринимаемую текущую директорию HTML, как если бы файл находился в каталоге, определенном базой. Следовательно, это влияет на такие вещи, как location.href=...;. Кстати, встроенные стили и информация о стиле в элементе <style> загружаются относительно местоположения документа. Конечно, тег тега <base>, конечно.

Ответ 2

Тег base действительно соблюдается только относительными ссылками внутри самого документа HTML.

Однако существует специфическая ошибка IE6, которую вам действительно нужно учитывать при использовании тега <base> в HTML (а не в XHTML). Тег <base> в HTML документирован как не имеющий конечный тег </base>, но IE6 неправильно принял его для true, что приведет к тому, что весь контент после тега <base> будет помещен как дочерний тега <base> в его дереве HTML DOM. Это может вызвать на первый взгляд необъяснимые проблемы в Javascript/jQuery/CSS, т.е. Элементы полностью недоступны в определенных вариантах выбора (например, html>body), пока вы не обнаружите, что между ними есть base.

Обычное исправление IE6 использует условные комментарии для включения конечного тега:

<base href="#" onclick="location.href='http://example.com/'; return false;"><!--[if lte IE 6]></base><![endif]-->