您现在的位置是:网站首页 > <link>-资源链接文章详情

<link>-资源链接

<link> 标签是 HTML 中用于定义文档与外部资源关系的元素,通常出现在 <head> 部分。它不渲染任何内容,但对页面样式、图标、预加载等功能的实现至关重要。

<link> 标签的基本语法

<link> 是一个空元素,不需要闭合标签。它的核心属性包括 relhreftype,其中 relhref 是必填项。基本语法如下:

<link rel="stylesheet" href="styles.css" type="text/css">
  • rel:定义当前文档与链接资源的关系(如 stylesheeticon)。
  • href:指定资源的 URL。
  • type(可选):资源的 MIME 类型(如 text/cssimage/x-icon)。

常见用途与示例

1. 引入外部样式表

最常见的用途是链接 CSS 文件:

<link rel="stylesheet" href="theme.css">

如果样式表针对特定媒体(如打印),可添加 media 属性:

<link rel="stylesheet" href="print.css" media="print">

2. 设置网站图标(Favicon)

通过 rel="icon" 指定浏览器标签页图标:

<link rel="icon" href="favicon.ico" type="image/x-icon">

现代浏览器支持多种图标格式,还可指定尺寸:

<link rel="icon" href="icon-192.png" type="image/png" sizes="192x192">

3. 预加载关键资源

使用 rel="preload" 提前加载重要资源(如字体、脚本):

<link rel="preload" href="font.woff2" as="font" type="font/woff2" crossorigin>

as 属性告知浏览器资源类型,优化加载优先级。

4. 定义规范 URL

防止重复内容 SEO 问题,指定页面的权威链接:

<link rel="canonical" href="https://example.com/page">

5. 替代样式表

提供用户可切换的样式(需浏览器支持):

<link rel="alternate stylesheet" href="dark.css" title="Dark Mode">

高级用法与属性

跨域资源处理

通过 crossorigin 属性处理跨域请求(如字体文件):

<link rel="stylesheet" href="https://cdn.example.com/style.css" crossorigin="anonymous">

响应式设计适配

结合 media 属性实现条件加载:

<link rel="stylesheet" href="mobile.css" media="screen and (max-width: 600px)">

多平台图标配置

适配不同设备的主屏幕图标:

<link rel="apple-touch-icon" href="apple-icon-180x180.png">
<link rel="manifest" href="site.webmanifest">

实际开发中的注意事项

  1. 性能优化
    避免过多 <link> 请求,合并 CSS 或用 preload 优化关键路径。

  2. 缓存控制
    对静态资源添加版本号或哈希:

    <link rel="stylesheet" href="styles.a1b2c3.css">
    
  3. 失效备选方案
    当 CDN 资源不可用时回退本地文件:

    <link rel="stylesheet" href="https://unstable-cdn.com/style.css">
    <script>
      window.onload = function() {
        if (!document.querySelector('link[href*="unstable-cdn"]').sheet) {
          const fallback = document.createElement('link');
          fallback.rel = 'stylesheet';
          fallback.href = 'local-style.css';
          document.head.appendChild(fallback);
        }
      };
    </script>
    

与其他标签的协作

<link> 常与 <meta><script> 配合使用。例如,预加载后立即执行脚本:

<link rel="preload" href="critical.js" as="script">
<script src="critical.js" defer></script>

浏览器兼容性差异

  • preload 在旧版浏览器中可能无效,需用 polyfill:

     <link rel="preload" href="image.webp" as="image" type="image/webp">
     <!-- 回退 -->
     <link rel="prefetch" href="image.webp">
    
  • Safari 对某些 rel 值(如 modulepreload)支持较晚。

我的名片

网名:~川~

岗位:console.log 调试员

坐标:重庆市-九龙坡区

邮箱:cc@qdcc.cn

沙漏人生

站点信息

  • 建站时间:2013/03/16
  • 本站运行
  • 文章数量
  • 总访问量
微信公众号
每次关注
都是向财富自由迈进的一步