每个 HTML 文档中,都有一个不可或缺的标签:<head>
,它做为一个容器,主要包含了用于描述 HTML 文档自身信息(元数据)的标签,这些标签通常不会在页面中被显示出来,大多状况下是给浏览器和搜索引擎看的。javascript
能够用在 <head>
里面的标签有: <title>
, <base>
, <link>
, <style>
, <meta>
, <script>
, <noscript>
。css
<title>
定义文档的标题,显示在浏览器的标题栏或标签页上,通常会完整地归纳整个网页的内容。html
<base>
给页面上全部相对 URL 的提供一个基础。一份文档中只能有一个 <base>
标签。java
目前我只观察到「淘宝网」使用了这个标签。浏览器
<link>
规定外部资源与当前文档的关系,常于连接样式表,以下所示:cookie
<link rel="stylesheet" href="xxx.css" type="text/css">
复制代码
固然还有不少其余的做用:app
<link rel="canonical" href="...">
复制代码
在网站中常有多个 url 指向同一个页面的状况,上述标签告知搜索引擎页面的主 url 是什么,以便搜索引擎保留主要页面而去除其余重复页面。async
<link rel="alternate" type="application/rss+xml" title="RSS" href="...">
复制代码
上述标签除搜索引擎能够看懂之外,也能被不少浏览器插件识别。性能
<link rel="icon" href="https://xxx.png">
复制代码
多数浏览器会读取这个 link 的资源并展现在页面上。学习
<link rel="dns-prefetch" href="//xxx.com">
复制代码
提早对一个域名作 dns 查询。强制对域名进行预读取在有的状况下颇有用,。
好比, 在网站的主页上,强制在整个网站上对频繁引用的域名作预解析处理,即便它们不在主页自己上使用。虽然主页的性能可能不受影响,可是会提升站点总体性能。
<style>
包含文档的样式信息。
<meta>
一种通用的元数据信息表示标签,通常以键值对出现,如:<meta name="xxx" content="yyy">
<meta charset="UTF-8">
复制代码
从 HTML5 开始,上述写法被推荐使用,用于声明当前文档所使用的字符编码,推荐放在 <head>
中的第一位。
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
复制代码
在 HTML4 中,上述代码用于声明字符集,可是如今已不被推荐。
除了 content-type ,还有其余几个值:
content-language (已过期)、set-cookie (已过期)、default-style 、refresh 、content-security-policy
由于不经常使用,因此就不一一介绍了,也挺容易理解,感兴趣能够点击 这里 了解。
其实 标签能够被自由定义,只要读取和写入的双方约定好 name 和 content 的格式就能够了。来看一个例子:
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no">
复制代码
上面这种用法并不在 HTML 标准中,可是却移动端开发的事实标准。这里来解释一下 content 中的内容:
name 属性的值除了能够是 viewport 以外,还有至关多的值:
application-name 、author 、description 、generator 、keywords 、referrer 、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 标签里都有什么,遇到没见过的就去搜索一下,熟悉起来会很快。
我这边看过的网站有:「淘宝网」、「阿里巴巴」、「京东」、「网易严选」、「起点中文网」等。
(完)