base标签是HTML中用于定义页面内所有相对URL基准地址的标签,在html4规范中就已经被纳入标准。很多开发者在接触旧项目或者学习不同版本HTML时,都会关心html4的base标签在html5里是否还能继续使用,它的作用是否发生了改变。

base标签在html5中的兼容性
base标签在html5中仍然属于标准标签,完全可以使用,不存在被废弃的情况。html5规范保留了base标签的所有原有功能,同时对其使用规则做了更明确的约束,只要按照规范使用,在html5页面中base标签可以正常生效。
需要注意的是,base标签必须放在<head>区域内,且一个HTML页面最多只能存在一个base标签,如果出现多个base标签,只有第一个会被浏览器识别生效,后续的base标签会被忽略。
html4和html5中base标签的作用对比
base标签的核心作用在两个版本中没有本质变化,都是为页面内的相对路径提供基准URL,同时可以设置页面内所有链接的默认打开方式。具体的作用对比如下:
| 对比项 | html4中的base标签 | html5中的base标签 |
|---|---|---|
| 基准URL设置 | 支持通过href属性设置相对路径的基准地址 | 同样支持href属性设置基准地址,规则一致 |
| 链接打开方式 | 支持通过target属性设置默认打开方式 | 同样支持target属性,新增了对target属性值的更明确规范 |
| 使用限制 | 仅要求放在head区域,无明确数量限制说明 | 明确要求放在head区域,且一个页面只能有一个base标签 |
base标签的使用示例
下面是一个在html5页面中使用base标签的示例,设置了基准URL为ipipp.com的静态资源目录,同时默认链接在新窗口打开:
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>base标签示例</title>
<!-- 设置基准URL和默认链接打开方式 -->
<base href="https://ipipp.com/static/" target="_blank">
</head>
<body>
<!-- 这里的图片路径会基于base的href拼接,实际请求地址为https://ipipp.com/static/images/logo.png -->
<img src="images/logo.png" alt="logo">
<!-- 这里的链接会基于base的href拼接,且默认在新窗口打开 -->
<a href="pages/about.html">关于我们</a>
</body>
</html>
使用base标签的注意事项
- base标签的href属性值如果以斜杠结尾,拼接相对路径时会直接拼接;如果不以斜杠结尾,浏览器会先去掉href最后一段路径再拼接相对路径,建议href值统一以斜杠结尾,避免路径拼接错误。
- base标签的target属性仅对页面内的<a>、<form>、<img>等标签的链接生效,不会影响JavaScript中动态生成的路径。
- 如果页面中同时存在绝对路径和相对路径,绝对路径不会受base标签的影响,只有相对路径会基于base的href进行拼接。
- 不要在base标签的href中使用相对路径,否则基准地址会基于当前页面的URL再次计算,容易出现不符合预期的基准地址。
常见问题解答
base标签对JavaScript中的路径生效吗
base标签仅对HTML标签中定义的相对路径生效,JavaScript中通过字符串定义的路径不会自动基于base的href拼接,需要开发者手动处理路径逻辑。
html5中base标签支持哪些target属性值
html5中base标签的target属性支持_self、_blank、_parent、_top这几个标准值,也支持自定义的iframe名称,规则和html4一致,没有新增或废弃的属性值。