HTML 标签是否也被脚本和CSS所认可?

问题描述 投票:35回答:2

base HTML元素为HTML中的相对URI提供了基础。 JavaScript和CSS还必须尊重它们中发布的相对URI:

例如

JavaScript:

location.href = "mypage.htm"` 

CSS:

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

(在任何浏览器中?)

javascript html css uri relative-path
2个回答
38
投票

CSS路径始终是相对于样式表本身的,并且不依赖于HTML位置(除非IE6有错误和笨拙,并且尝试加载相对于文档的CSS .htc属性中指定的behavior文件)。对于其他内容,<base>将影响HTML的当前目录,就像文件位于base定义的目录中一样。因此,它确实会影响location.href=...;之类的东西。顺便说一下,<style>元素中的内联样式和样式信息是相对于文档位置加载的。这些当然会受到<base>标签的影响。


12
投票

base标记实际上仅受HTML文档itself中的相对链接的尊重。

但是,在HTML中使用<base>标记时(在XHTML中不是),确实需要考虑到IE6特定的错误。 HTML中记录的<base>标签没有结束标签</base>,但是IE6错误地将其假定为true,这将导致<base>标签的整个内容被放置为child] > <base>标记在其HTML DOM树中。乍一看,这可能会导致Javascript / jQuery / CSS中无法解释的问题,即在特定选择(例如html>body)中元素完全不可访问,直到您发现它们之间确实存在base正常的IE6修复程序使用条件注释来包含结束标记:

<base href="http://example.com/"><!--[if lte IE 6]></base><![endif]-->

© www.soinside.com 2019 - 2024. All rights reserved.