推荐一个学习HTML标签的网址以及介绍head标签里都有什么

1,411 阅读1分钟

HTML reference

首先推荐一个学习 HTML 标签的网站:

htmlreference.io/

像这样,

image.png

它对每个 HTML 标签及其属性都有介绍,并且可以方便地跳转到对应的 MDN 页面。

image.png

head 标签里有什么?

每一个 HTML 文档中,都有一个不可或缺的标签:<head> ,它作为一个容器,主要包含了用于描述 HTML 文档自身信息(元数据)的标签,这些标签一般不会在页面中被显示出来,大多情况下是给浏览器和搜索引擎看的。

可以用在 <head> 里面的标签有: <title> , <base> , <link> , <style> , <meta> , <script> , <noscript>

元信息标签介绍

<title>

HTML 元素定义文档的标题,显示在浏览器的标题栏或标签页上。它只应该包含文本,若是包含有标签,则它包含的任何标签都将被忽略。

<base>

给页面上所有相对 URL 的提供一个基础。一份文档中只能有一个 <base> 标签。

目前我只观察到「淘宝网」使用了这个标签。

<link>

  1. 规定外部资源与当前文档的关系,常于链接样式表:
<link rel="stylesheet" href="xxx.css" />
  1. 用于 SEO,主要给搜索引擎看的:
<link rel="canonical" href="https://www.bilibili.com/" />
<!-- 来自 哔哩哔哩官网 -->

在网站中常有多个 url 指向同一个页面的情况,上述标签告知搜索引擎页面的主 url 是什么,以便搜索引擎保留主要页面而去除其他重复页面。

  1. 提供 rss 订阅的:
<link rel="alternate" type="application/atom+xml" title="Recent Entries" href="<https://feeds.feedburner.com/ruanyifeng>" />
<!-- 来自 阮一峰的网络日志 -->

该标签除搜索引擎可以看懂以外,也能被很多浏览器插件识别。

  1. 表示页面 icon 的:
<link rel="apple-touch-icon" href="//static.hdslb.com/mobile/img/512.png" />
<link rel="shortcut icon" href="https://www.bilibili.com/favicon.ico?v=1" />
<!-- 来自 哔哩哔哩官网 -->

多数浏览器会读取这个 link 的资源并展示在页面上。

  1. 对页面提供预处理的:
<link rel="dns-prefetch" href="//xxx.com" />

提前对一个域名做 dns 查询。强制对域名进行预读取在有的情况下很有用。

比如, 在网站的主页上,强制在整个网站上对频繁引用的域名做预解析处理,即使它们不在主页本身上使用。虽然主页的性能可能不受影响,但是会提高站点整体性能。

在这里可以查到 link 标签 rel 属性支持的所有值:

developer.mozilla.org/en-US/docs/…

<style>

包含文档的样式信息,不做赘述。

<meta>

一种通用的元数据信息表示标签,一般以键值对出现,如:<meta name="xxx" content="yyy">

charset 属性

<meta charset="UTF-8" />
<meta charset="utf-8" />

从 HTML5 开始,上述写法被推荐使用,用于声明当前文档所使用的字符编码,推荐放在 <head> 中的第一位。

http-equiv 属性

<meta http-equiv="content-type" content="text/html; charset=UTF-8" />

在 HTML4 中,该代码用于声明字符集,现在已不被推荐。

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<!-- 来自 淘宝网 -->

除此之外,还有其他几个值: default-style 、refresh 、content-security-policy

因为不常用,就不介绍了,也挺容易理解,感兴趣可以点击 这里 了解。

name 属性

  1. viewport

其实 <meta> 标签可以被自由定义,只要读取和写入的双方约定好 name 和 content 的格式就可以了。来看一个例子:

<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no">

上面这种用法并不在 HTML 标准中,但是却移动端开发的事实标准。这里来解释一下 content 中的内容:

  • width :页面宽度,可以是一个正整数;也可以一个字符串 "device-width" ,表示跟设备宽度相等。

  • height :页面高度,可以是一个正整数;也可以一个字符串 "device-height" ,表示跟设备高度相等。

  • initial-scale :初始缩放比例。

  • minimum-scale : 最小缩放比例。

  • maximum-scale : 最大缩放比例。

  • user-scalable :是否允许用户缩放。

  • viewport-fit : 与安全区域有关的属性 点击查看更多

国内的双核浏览器有此代码控制渲染模式。

<meta name="renderer" content="webkit" />
  1. referrer

控制由当前文档发出的请求的 HTTP Referer 请求头。

<meta name="referrer" content="no-referrer-when-downgrade" />

以下为 MDN 的解释:

no-referrer不发送 HTTP Referer 请求头。
origin只发送当前文档的 origin
no-referrer-when-downgrade如果请求目标与当前页面一样安全或者更加安全(HTTP(S)→HTTPS),则发送完整 URL;如果请求目标更加不安全(HTTPS→HTTP),则不发送  referrer。这是默认行为。
origin-when-cross-origin对同源请求发送完整 URL(不含 URL 参数),其他情况下,只发送 origin。
same-origin对同源请求发送完整 URL(不含 URL 参数),其他情况下,请求不包含 referrer 请求头。
strict-origin如果请求目标与当前页面一样安全或者更加安全(HTTP(S)→HTTPS),则发送 origin;如果请求目标更加不安全(HTTPS→HTTP),则不发送  referrer。
strict-origin-when-cross-origin对同源请求发送完整 URL(不含 URL 参数);其他情况下,如果请求目标与当前页面一样安全或者更加安全(HTTP(S)→HTTPS),则发送 origin;如果请求目标更加不安全(HTTPS→HTTP),则不发送  referrer。
unsafe-URL对同源请求和跨源请求发送完整 URL(不含 URL 参数)。

name 属性还有相当多的值:

application-name 、author 、keywords 、 description 、generator 、robots 等。

同样的,就不逐一介绍了,感兴趣可以点击 这里 了解。

<script>

用于嵌入或引用可执行脚本。来看几个 script 标签常见的全局属性:

  • async

    使浏览器使用另一个线程下载脚本,这时不会阻塞页面渲染。当脚本下载完成后,浏览器会暂停渲染,执行脚本,执行完毕后继续渲染页面。

    async 无法保证脚本的执行顺序,哪个脚本先下载结束就会先执行。

  • defer

    同样会使浏览器并行下载脚本,但是下载完毕不会立即执行,而是会等到 DOM 加载完成后(即刚刚读取完 </html> 标签)再执行脚本。

    defer 可以保证脚本的执行顺序就是它们在页面上出现的顺序。

  • src

    定义引用外部脚本的地址,指定此属性的 script 标签内不应再有嵌入的脚本。如果脚本文件使用了非英语字符,还应该注明字符的编码。如:

    <script charset="utf-8" src="https://www.example.com/script.js"></script>
    
  • type

    默认值是 text/javascript

想了解更多关于 <script> 标签的详细内容可以点击 这里

<noscript>

如果页面上的脚本类型不受支持或者当前在浏览器中关闭了脚本,则在此中定义脚本未被执行时的替代内容。

总结

本文到这里就结束了,其实关于 link 和 meta 标签还有很多没有介绍到,很多相关标签都是有特殊的需求,只有在特定情况下才会使用,比如移动端开发就会用许多在 PC 上并不需要的标签。

当然平时使用也主要是看需求,就拿我目前来说,只是些许用到过一些与 viewport 和 SEO 相关的标签。

鉴于此我推荐一个不错的学习方法,就是去各大网站查看它们的 head 标签里都有什么,遇到没见过的就去搜索一下,熟悉起来会很快。

我这边看过的网站有:[哔哩哔哩]、「淘宝网」、「阿里巴巴」、「京东」、「网易严选」、「起点中文网」、[阮一峰的网络日志]、[张鑫旭的个人主页] 等。

参考链接

  1. segmentfault.com/a/119000000…
  2. developer.mozilla.org/en-US/docs/…

(完)